{"id":41629,"name":"pyproj","ecosystem":"pip","repository_url":"https://github.com/pyproj4/pyproj","issues_count":36,"created_at":"2025-06-13T13:14:40.490Z","updated_at":"2025-06-13T13:14:40.490Z","purl":"pkg:pypi/pyproj","metadata":{"id":2880188,"name":"pyproj","ecosystem":"pypi","description":"Python interface to PROJ (cartographic projections and coordinate transformations library)","homepage":"https://github.com/pyproj4/pyproj","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/pyproj4/pyproj","keywords_array":["GIS","map","geospatial","coordinate-systems","coordinate-transformation","cartographic-projection","geodesic"],"namespace":null,"versions_count":65,"first_release_published_at":"2006-10-20T14:47:00.000Z","latest_release_published_at":"2025-02-16T04:27:19.000Z","latest_release_number":"3.7.1","last_synced_at":"2025-06-12T14:30:28.108Z","created_at":"2022-04-10T12:17:10.268Z","updated_at":"2025-06-12T14:30:28.108Z","registry_url":"https://pypi.org/project/pyproj/","install_command":"pip install pyproj --index-url https://pypi.org/simple","documentation_url":"https://pyproj.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 4 - Beta","Intended Audience :: Science/Research","License :: OSI Approved :: MIT License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Topic :: Scientific/Engineering","Topic :: Scientific/Engineering :: GIS","Topic :: Scientific/Engineering :: Mathematics","Topic :: Software Development :: Libraries :: Python Modules","Typing :: Typed"],"normalized_name":"pyproj"},"repo_metadata":{"uuid":"28607354","full_name":"pyproj4/pyproj","owner":"pyproj4","description":"Python interface to PROJ (cartographic projections and coordinate transformations library)","archived":false,"fork":false,"pushed_at":"2023-12-11T19:18:48.000Z","size":322974,"stargazers_count":950,"open_issues_count":30,"forks_count":211,"subscribers_count":33,"default_branch":"main","last_synced_at":"2024-01-05T07:55:46.109Z","etag":null,"topics":["cartographic-projection","coordinate-systems","coordinate-transformation","geodesic","geospatial","hacktoberfest","python"],"latest_commit_sha":null,"homepage":"https://pyproj4.github.io/pyproj","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/pyproj4.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2014-12-29T21:38:25.000Z","updated_at":"2024-01-04T15:58:34.000Z","dependencies_parsed_at":"2023-02-12T00:00:34.175Z","dependency_job_id":"b55107ba-54e7-49f6-8271-fe1123758d82","html_url":"https://github.com/pyproj4/pyproj","commit_stats":{"total_commits":1348,"total_committers":64,"mean_commits":21.0625,"dds":"0.42729970326409494","last_synced_commit":"3d0fb756497915fc5a69e72e09c0ea924c345226"},"previous_names":[],"tags_count":67,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyproj4","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":179289005,"owners_count":10795465,"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":"pyproj4","name":"pyproj4","uuid":"48302803","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/48302803?v=4","repositories_count":3,"last_synced_at":"2023-04-09T09:48:11.476Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/pyproj4","created_at":"2022-11-02T16:23:29.795Z","updated_at":"2023-04-09T09:48:11.510Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyproj4","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyproj4/repositories"},"tags":[{"name":"3.6.1","sha":"0c5159aab8c32488584ae472b3752203f1005559","kind":"commit","published_at":"2023-09-21T01:23:26.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.6.1","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.6.1/manifests"},{"name":"3.6.1rc0","sha":"36940dbbe2588be401209ae7a86536b42be0ea0f","kind":"commit","published_at":"2023-09-19T02:28:50.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.6.1rc0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.6.1rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.6.1rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.6.1rc0/manifests"},{"name":"3.6.0","sha":"32565ddf266658aebc9787b7534fdbdd06762839","kind":"commit","published_at":"2023-06-12T13:19:56.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.6.0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.6.0/manifests"},{"name":"3.6.0rc0","sha":"1ac2c9ab04a4d927599e4ea4b4a87dbcdb5a0494","kind":"commit","published_at":"2023-06-08T14:13:37.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.6.0rc0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.6.0rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.6.0rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.6.0rc0/manifests"},{"name":"3.5.0","sha":"f5466dfde6bc96bc219a855e8f2d9d04a965d12f","kind":"commit","published_at":"2023-03-28T02:35:10.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.5.0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.5.0/manifests"},{"name":"3.5.0rc0","sha":"356e45bd58a83a9aae7050a99ed0c41152048101","kind":"commit","published_at":"2023-03-25T01:52:18.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.5.0rc0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.5.0rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.5.0rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.5.0rc0/manifests"},{"name":"3.4.1","sha":"4faef1724b044ee145832591fcd7ed2639477670","kind":"commit","published_at":"2022-12-13T01:48:06.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.4.1","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.4.1/manifests"},{"name":"3.4.1rc0","sha":"e972e198b9b97fdeee642b7f1155f18490db0e61","kind":"commit","published_at":"2022-12-10T02:50:57.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.4.1rc0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.4.1rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.4.1rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.4.1rc0/manifests"},{"name":"3.4.0","sha":"49d6bdb68d1b8fa0037fbfd2ca866764959df00f","kind":"commit","published_at":"2022-09-10T01:10:09.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.4.0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.4.0/manifests"},{"name":"3.4.0rc2","sha":"f6c12a347597ae3895158bd6d30ee72b763d3005","kind":"commit","published_at":"2022-09-09T01:28:16.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.4.0rc2","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.4.0rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.4.0rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.4.0rc2/manifests"},{"name":"3.4.0rc1","sha":"fd58148751b853ceb2a70a87829633804a667c8d","kind":"commit","published_at":"2022-09-08T04:30:02.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.4.0rc1","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.4.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.4.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.4.0rc1/manifests"},{"name":"3.4.0rc0","sha":"798ffec1de43c99cd59a874efe64c3d2c04a1d79","kind":"commit","published_at":"2022-09-07T17:53:36.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.4.0rc0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.4.0rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.4.0rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.4.0rc0/manifests"},{"name":"3.3.1","sha":"fa625e1c660887f74b4bce919be32a6727cb013f","kind":"commit","published_at":"2022-04-22T01:42:29.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.3.1","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.3.1/manifests"},{"name":"3.3.1rc0","sha":"7e734ff3766fc0ac1399f2494898cd51cde2155f","kind":"commit","published_at":"2022-04-21T02:02:25.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.3.1rc0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.3.1rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.3.1rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.3.1rc0/manifests"},{"name":"3.3.0","sha":"48d922ad57316eab45d15ccfe41595c1e5e97039","kind":"commit","published_at":"2021-11-18T01:46:13.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.3.0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.3.0/manifests"},{"name":"3.3rc0","sha":"ed9248f6c5d3114279dc8d90ca1f0676d290a648","kind":"commit","published_at":"2021-11-14T01:25:25.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.3rc0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.3rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.3rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.3rc0/manifests"},{"name":"3.2.1","sha":"2c3909a12b5dca635eda1b6a776b762037278637","kind":"commit","published_at":"2021-09-18T00:47:06.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.2.1","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.2.1/manifests"},{"name":"3.2.1rc0","sha":"d435d01018582be5dfa18bebde1122c093f0459f","kind":"commit","published_at":"2021-09-15T00:33:50.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.2.1rc0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.2.1rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.2.1rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.2.1rc0/manifests"},{"name":"3.2.0","sha":"c34717f2577a679069a62019954ccf1f6caee23e","kind":"commit","published_at":"2021-09-04T00:36:32.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.2.0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.2.0/manifests"},{"name":"3.2rc0","sha":"3812a2b693aacb62387199dc9878ad0189bad103","kind":"commit","published_at":"2021-09-01T01:19:56.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.2rc0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.2rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.2rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.2rc0/manifests"},{"name":"3.1.0","sha":"5f1fbc7b38390fdb1cebf3a00863d30ebffae118","kind":"commit","published_at":"2021-05-24T20:58:39.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.1.0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.1.0/manifests"},{"name":"3.1rc1","sha":"0e924a4b30e791d7e0897f711e9c39ccbdb0ad3a","kind":"commit","published_at":"2021-05-22T00:09:35.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.1rc1","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.1rc1/manifests"},{"name":"3.1rc0","sha":"dc669ca034b5841c4f64f23e59b07af18eabd943","kind":"commit","published_at":"2021-05-19T00:09:05.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.1rc0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.1rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.1rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.1rc0/manifests"},{"name":"3.0.1","sha":"7044860d6a545d7086e0eab38bbcfcfa08d3cdbd","kind":"commit","published_at":"2021-03-05T02:54:54.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.0.1","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.0.1/manifests"},{"name":"3.0.1rc0","sha":"983ccab0e658e04ed089b419aadb9829e1104007","kind":"commit","published_at":"2021-03-02T00:51:07.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.0.1rc0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.0.1rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.0.1rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.0.1rc0/manifests"},{"name":"3.0.0.post1","sha":"ddf6abf23de4ab4eb079035fd39f80f069434aff","kind":"commit","published_at":"2020-11-05T13:35:26.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.0.0.post1","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.0.0.post1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.0.0.post1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.0.0.post1/manifests"},{"name":"3.0.0","sha":"2736787b1e420959f7cee8ae2f2881e62455f145","kind":"commit","published_at":"2020-11-05T00:28:56.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.0.0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.0.0/manifests"},{"name":"3.0.rc2","sha":"12c0fe82754e65820ee8ce590491f01c78e0793d","kind":"commit","published_at":"2020-11-04T00:14:47.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.0.rc2","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.0.rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.0.rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.0.rc2/manifests"},{"name":"3.0.rc1","sha":"915e1684ad438e10d0d98fde337982c599fb12b6","kind":"commit","published_at":"2020-11-03T01:10:45.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.0.rc1","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.0.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.0.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.0.rc1/manifests"},{"name":"3.0.rc0","sha":"20ffd6f630c46e77286f2550566b2f6aded4cd69","kind":"commit","published_at":"2020-11-02T00:48:55.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/3.0.rc0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/3.0.rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.0.rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/3.0.rc0/manifests"},{"name":"v2.6.1rel","sha":"178570d4e3b9304018edc3d07fce01c561053cca","kind":"commit","published_at":"2020-05-04T02:01:55.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.6.1rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.6.1rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.6.1rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.6.1rel/manifests"},{"name":"2.6.1rc1","sha":"4419f77fec08e1d99d0de875a832ad561d93b477","kind":"commit","published_at":"2020-05-03T01:40:01.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/2.6.1rc1","html_url":"https://github.com/pyproj4/pyproj/releases/tag/2.6.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/2.6.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/2.6.1rc1/manifests"},{"name":"2.6.1rc0","sha":"36f41ce3d67fe0b63211878d8865b55115d62e2b","kind":"commit","published_at":"2020-05-02T01:59:25.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/2.6.1rc0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/2.6.1rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/2.6.1rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/2.6.1rc0/manifests"},{"name":"v2.6.0rel","sha":"5ab5a1161254e9d9539e494b4f5d17f88a6f6237","kind":"commit","published_at":"2020-03-17T01:38:40.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.6.0rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.6.0rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.6.0rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.6.0rel/manifests"},{"name":"2.6.0rc0","sha":"91371fd1cfab763ffb0019903537ef0c5aa41264","kind":"commit","published_at":"2020-03-13T02:10:02.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/2.6.0rc0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/2.6.0rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/2.6.0rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/2.6.0rc0/manifests"},{"name":"v2.5.0rel","sha":"a23b994c92fb15505ca34a22cb70fcdf549abf8a","kind":"commit","published_at":"2020-02-21T13:50:54.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.5.0rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.5.0rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.5.0rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.5.0rel/manifests"},{"name":"2.5.rc0","sha":"be510a543af8b9d255aa31b7de15d784f3485f8b","kind":"commit","published_at":"2020-02-20T17:25:51.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/2.5.rc0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/2.5.rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/2.5.rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/2.5.rc0/manifests"},{"name":"v2.4.2rel","sha":"f41762781ce84f14ef7475521d46a5a5dbb55251","kind":"commit","published_at":"2019-11-30T02:03:08.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.4.2rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.4.2rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.4.2rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.4.2rel/manifests"},{"name":"2.4.2.rc0","sha":"4a67e793216ac47f12e05eab596705f345bcd671","kind":"commit","published_at":"2019-11-26T01:48:34.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/2.4.2.rc0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/2.4.2.rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/2.4.2.rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/2.4.2.rc0/manifests"},{"name":"v2.4.1rel","sha":"153583b5aad55338b0d51245dbbadcb524cd1f2a","kind":"commit","published_at":"2019-11-06T13:07:06.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.4.1rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.4.1rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.4.1rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.4.1rel/manifests"},{"name":"2.4.1.rc0","sha":"d69b63dbd147efbee59884f9cd1aefe3f28aba2e","kind":"commit","published_at":"2019-11-02T00:28:37.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/2.4.1.rc0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/2.4.1.rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/2.4.1.rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/2.4.1.rc0/manifests"},{"name":"v2.4.0rel","sha":"a764f4a8aa8a9d21c05c0e04d828516bfc04ac8d","kind":"tag","published_at":"2019-09-21T03:48:45.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.4.0rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.4.0rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.4.0rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.4.0rel/manifests"},{"name":"2.4.rc1","sha":"203fa2a5866966fe43f4250f894f07681a39a705","kind":"commit","published_at":"2019-09-20T12:32:27.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/2.4.rc1","html_url":"https://github.com/pyproj4/pyproj/releases/tag/2.4.rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/2.4.rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/2.4.rc1/manifests"},{"name":"2.4.rc0","sha":"14cac29668967f91ef226e3c2455f11d43803e5b","kind":"commit","published_at":"2019-09-19T00:27:55.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/2.4.rc0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/2.4.rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/2.4.rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/2.4.rc0/manifests"},{"name":"v2.3.1rc3","sha":"9521dd9d7df0df13a162cbceeadb36ef4cf91454","kind":"commit","published_at":"2019-08-31T01:42:02.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.3.1rc3","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.3.1rc3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.3.1rc3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.3.1rc3/manifests"},{"name":"v2.3.1rel","sha":"9521dd9d7df0df13a162cbceeadb36ef4cf91454","kind":"commit","published_at":"2019-08-31T01:42:02.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.3.1rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.3.1rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.3.1rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.3.1rel/manifests"},{"name":"v2.3.1rc2","sha":"172fada653b39229a8558984777c79e46a4b5d06","kind":"commit","published_at":"2019-08-29T00:38:54.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.3.1rc2","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.3.1rc2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.3.1rc2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.3.1rc2/manifests"},{"name":"v2.3.1rc1","sha":"8120142bc534b845b7c2e7b40028274edff4e1c7","kind":"commit","published_at":"2019-08-29T00:35:31.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.3.1rc1","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.3.1rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.3.1rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.3.1rc1/manifests"},{"name":"v2.3.0rel","sha":"11b769cc3b808a7f417103d0b033222b07737cec","kind":"commit","published_at":"2019-08-19T00:46:00.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.3.0rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.3.0rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.3.0rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.3.0rel/manifests"},{"name":"2.2.2","sha":"c47e3ac9a86b1045bc53c94452baf39c833b4d83","kind":"commit","published_at":"2019-07-11T21:59:46.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/2.2.2","html_url":"https://github.com/pyproj4/pyproj/releases/tag/2.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/2.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/2.2.2/manifests"},{"name":"v2.2.2rel","sha":"c47e3ac9a86b1045bc53c94452baf39c833b4d83","kind":"commit","published_at":"2019-07-11T21:59:46.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.2.2rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.2.2rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.2.2rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.2.2rel/manifests"},{"name":"v2.2.1rel","sha":"d3f9c574b0005d12f345f55cf8bd5c1c21b402f3","kind":"commit","published_at":"2019-06-14T00:57:51.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.2.1rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.2.1rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.2.1rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.2.1rel/manifests"},{"name":"v2.2.0rel","sha":"2ce4d44d86dc7c206713caf1fd8f840fa3350697","kind":"commit","published_at":"2019-06-01T18:55:08.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.2.0rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.2.0rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.2.0rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.2.0rel/manifests"},{"name":"v2.1.3rel","sha":"89baf1f8eb8840ae9b845fd17deb44e6716dca81","kind":"tag","published_at":"2019-04-04T18:12:24.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.1.3rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.1.3rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.1.3rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.1.3rel/manifests"},{"name":"v2.1.2rel","sha":"764dcaf29bb84298e799f7d8b3a43275ad791677","kind":"tag","published_at":"2019-03-23T15:47:16.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.1.2rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.1.2rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.1.2rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.1.2rel/manifests"},{"name":"v2.1.1rel","sha":"dd69b82b9ec8e6983e24f6402cb64c685aa0e0d5","kind":"tag","published_at":"2019-03-18T00:54:53.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.1.1rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.1.1rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.1.1rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.1.1rel/manifests"},{"name":"v2.1.1","sha":"dd69b82b9ec8e6983e24f6402cb64c685aa0e0d5","kind":"commit","published_at":"2019-03-18T00:52:48.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.1.1","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.1.1/manifests"},{"name":"v2.1.0rel","sha":"980049dbbea6cb145cf83bce536de6613a9bcf04","kind":"tag","published_at":"2019-03-15T13:06:32.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.1.0rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.1.0rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.1.0rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.1.0rel/manifests"},{"name":"v2.1.0","sha":"980049dbbea6cb145cf83bce536de6613a9bcf04","kind":"commit","published_at":"2019-03-15T13:04:54.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.1.0","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.1.0/manifests"},{"name":"v2.0.2rel","sha":"a790ca5bf2bb392125fc29208caec9ad5a75a5d4","kind":"tag","published_at":"2019-03-13T13:15:49.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.0.2rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.0.2rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.0.2rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.0.2rel/manifests"},{"name":"v2.0.2","sha":"4e4dd12e71664c197dd31bcef02ed7d9d8b5dcd5","kind":"commit","published_at":"2019-03-12T19:25:17.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.0.2","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.0.2/manifests"},{"name":"v2.0.1rel","sha":"55c8aa7204b0c0b5e8439cde027458b08e0b48f1","kind":"tag","published_at":"2019-03-10T15:55:17.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.0.1rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.0.1rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.0.1rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.0.1rel/manifests"},{"name":"v2.0.0rel","sha":"58b4f49da12794989fc8cb397dc0cd2ecd221a6d","kind":"tag","published_at":"2019-03-08T01:22:08.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v2.0.0rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v2.0.0rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.0.0rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v2.0.0rel/manifests"},{"name":"v1.9.6rel","sha":"263e283bce209ec7a6e4517828a31839545f2e8a","kind":"tag","published_at":"2018-12-29T14:49:18.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v1.9.6rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v1.9.6rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v1.9.6rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v1.9.6rel/manifests"},{"name":"v1.9.5.1rel","sha":"9ff90a48d90d9e7fa643908c182a91d85c68de79","kind":"tag","published_at":"2016-01-06T22:27:12.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v1.9.5.1rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v1.9.5.1rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v1.9.5.1rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v1.9.5.1rel/manifests"},{"name":"v1.9.5rel","sha":"a18f99a44d0ed58a37a738832010ac23a471031d","kind":"tag","published_at":"2016-01-05T20:00:32.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v1.9.5rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v1.9.5rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v1.9.5rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v1.9.5rel/manifests"},{"name":"v1.9.4rel","sha":"bb005aca2d933d77b78c0018f8b5d04c471b4608","kind":"tag","published_at":"2014-12-29T22:23:25.000Z","download_url":"https://codeload.github.com/pyproj4/pyproj/tar.gz/v1.9.4rel","html_url":"https://github.com/pyproj4/pyproj/releases/tag/v1.9.4rel","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v1.9.4rel","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyproj4%2Fpyproj/tags/v1.9.4rel/manifests"}]},"repo_metadata_updated_at":"2024-01-05T07:56:00.581Z","dependent_packages_count":677,"downloads":11167684,"downloads_period":"last-month","dependent_repos_count":7284,"rankings":{"downloads":0.09744915974757906,"dependent_repos_count":0.11169502128322976,"dependent_packages_count":0.03927086437343237,"stargazers_count":2.0718796049166452,"forks_count":3.6217998685708763,"docker_downloads_count":0.6360301300280027,"average":1.0963541081532944},"purl":"pkg:pypi/pyproj","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/pyproj","docker_dependents_count":586,"docker_downloads_count":5615617,"usage_url":"https://repos.ecosyste.ms/usage/pypi/pyproj","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/pyproj/dependencies","status":null,"funding_links":[],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyproj/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyproj/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyproj/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pyproj/related_packages","maintainers":[{"uuid":"dhoese","login":"dhoese","name":null,"email":null,"url":null,"packages_count":19,"html_url":"https://pypi.org/user/dhoese/","role":null,"created_at":"2023-09-19T05:28:27.405Z","updated_at":"2023-09-19T05:28:27.405Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/dhoese/packages"},{"uuid":"jswhit","login":"jswhit","name":null,"email":null,"url":null,"packages_count":8,"html_url":"https://pypi.org/user/jswhit/","role":null,"created_at":"2022-12-11T06:45:09.028Z","updated_at":"2022-12-11T06:45:09.028Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/jswhit/packages"},{"uuid":"alan.d.snow","login":"alan.d.snow","name":null,"email":null,"url":null,"packages_count":10,"html_url":"https://pypi.org/user/alan.d.snow/","role":null,"created_at":"2022-12-11T06:45:09.037Z","updated_at":"2022-12-11T06:45:09.037Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/alan.d.snow/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":692961,"maintainers_count":294006,"namespaces_count":0,"keywords_count":229377,"github":"pypi","metadata":{"funded_packages_count":49096},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-13T05:54:55.931Z","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":29,"unique_repositories_count_past_30_days":3,"recent_issues":[{"uuid":"4473534824","node_id":"PR_kwDOSA1rcM7c34jq","number":37,"state":"open","title":"deps(backend): bump the minor-and-patch group in /cp2b-workspace/NewLook/backend with 19 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-19T00:35:08.000Z","updated_at":"2026-05-19T00:35:09.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(backend): bump","group_name":"minor-and-patch","update_count":19,"packages":[{"name":"fastapi","old_version":"0.135.3","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.32.1","new_version":"0.47.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sqlalchemy","old_version":"2.0.23","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"psycopg2-binary","old_version":"2.9.9","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"alembic","old_version":"1.13.0","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.29","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"python-dotenv","old_version":"1.0.0","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pydantic-settings","old_version":"2.0.3","new_version":"2.14.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"email-validator","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"geoalchemy2","old_version":"0.14.2","new_version":"0.20.0","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"shapely","old_version":"2.0.2","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"geojson","old_version":"3.1.0","new_version":"3.2.0","repository_url":"https://github.com/jazzband/geojson"},{"name":"pyproj","old_version":"3.6.1","new_version":"3.7.1","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"rasterio","old_version":"1.3.9","new_version":"1.4.4","repository_url":"https://github.com/rasterio/rasterio"},{"name":"scipy","old_version":"1.11.4","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"openpyxl","old_version":"3.1.2","new_version":"3.1.5"},{"name":"httpx","old_version":"0.27.0","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"requests","old_version":"2.33.0","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"pytest-mock","old_version":"3.12.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"}],"path":"/cp2b-workspace/NewLook/backend","ecosystem":"pip"},"body":"Bumps the minor-and-patch group in /cp2b-workspace/NewLook/backend with 19 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.3` | `0.136.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.32.1` | `0.47.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.23` | `2.0.49` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.9` | `2.9.12` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.13.0` | `1.18.4` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.29` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.0` | `1.2.2` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.0.3` | `2.14.1` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.1.0` | `2.3.0` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.14.2` | `0.20.0` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.2` | `2.1.2` |\n| [geojson](https://github.com/jazzband/geojson) | `3.1.0` | `3.2.0` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.6.1` | `3.7.1` |\n| [rasterio](https://github.com/rasterio/rasterio) | `1.3.9` | `1.4.4` |\n| [scipy](https://github.com/scipy/scipy) | `1.11.4` | `1.15.3` |\n| [openpyxl](https://openpyxl.readthedocs.io) | `3.1.2` | `3.1.5` |\n| [httpx](https://github.com/encode/httpx) | `0.27.0` | `0.28.1` |\n| [requests](https://github.com/psf/requests) | `2.33.0` | `2.34.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.12.0` | `3.15.1` |\n\nUpdates `fastapi` from 0.135.3 to 0.136.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.135.3...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.32.1 to 0.47.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.47.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEagerly import the ASGI app in the parent process by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2919\"\u003eKludex/uvicorn#2919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003essl_context_factory\u003c/code\u003e for custom \u003ccode\u003eSSLContext\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2920\"\u003eKludex/uvicorn#2920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003efd=0\u003c/code\u003e as a valid file descriptor with reload/workers by \u003ca href=\"https://github.com/eltoder\"\u003e\u003ccode\u003e@​eltoder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2927\"\u003eKludex/uvicorn#2927\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.46.0...0.47.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.46.0...0.47.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.46.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2915\"\u003eKludex/uvicorn#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2916\"\u003eKludex/uvicorn#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2917\"\u003eKludex/uvicorn#2917\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.45.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2903\"\u003eKludex/uvicorn#2903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2905\"\u003eKludex/uvicorn#2905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2907\"\u003eKludex/uvicorn#2907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2906\"\u003eKludex/uvicorn#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert empty context for ASGI runs by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2911\"\u003eKludex/uvicorn#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2912\"\u003eKludex/uvicorn#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e) by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2913\"\u003eKludex/uvicorn#2913\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/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2870\"\u003eKludex/uvicorn#2870\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.44.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2888\"\u003eKludex/uvicorn#2888\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.43.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\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/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.47.0 (May 14, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003essl_context_factory\u003c/code\u003e for custom \u003ccode\u003eSSLContext\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2920\"\u003e#2920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEagerly import the ASGI app in the parent process (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTreat \u003ccode\u003efd=0\u003c/code\u003e as a valid file descriptor with reload/workers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2927\"\u003e#2927\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.46.0 (April 23, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2916\"\u003e#2916\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2917\"\u003e#2917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.45.0 (April 21, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2913\"\u003e#2913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Explicitly start ASGI run with empty context\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2906\"\u003e#2906\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.44.0 (April 6, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0 (April 3, 2026)\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/Kludex/uvicorn/commit/479a2c0c89186714f1aac52aecdebebf271395ac\"\u003e\u003ccode\u003e479a2c0\u003c/code\u003e\u003c/a\u003e Version 0.47.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2937\"\u003e#2937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/89347fd166ebedf98fb3f806ce8ea44e93b1c2b5\"\u003e\u003ccode\u003e89347fd\u003c/code\u003e\u003c/a\u003e Add 7-day cooldown for dependency resolution via uv exclude-newer (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2936\"\u003e#2936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/767315b38ae509cee9fe8ee9d09f6da920536096\"\u003e\u003ccode\u003e767315b\u003c/code\u003e\u003c/a\u003e Drop unused contents/actions permissions from zizmor workflow (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/f25ee43e68a9678453cbca99ad96f1a447ff34af\"\u003e\u003ccode\u003ef25ee43\u003c/code\u003e\u003c/a\u003e chore(deps): bump urllib3 from 2.6.3 to 2.7.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8782666189a3d36c978de5698620db705659bf44\"\u003e\u003ccode\u003e8782666\u003c/code\u003e\u003c/a\u003e Fix typo in \u003ccode\u003edocs/deployment/index.md\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2932\"\u003e#2932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/ad5ff87c869e8a34e9b04fcd5ca38d65c526893c\"\u003e\u003ccode\u003ead5ff87\u003c/code\u003e\u003c/a\u003e Treat \u003ccode\u003efd=0\u003c/code\u003e as a valid file descriptor with reload/workers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2927\"\u003e#2927\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/6761b2c8f9272fa0e908d0b9cdcb3cb0aa11382f\"\u003e\u003ccode\u003e6761b2c\u003c/code\u003e\u003c/a\u003e Remove Hugging Face sponsor block from docs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2923\"\u003e#2923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/438f64834de00708a9bb3548a36090e7a924ad84\"\u003e\u003ccode\u003e438f648\u003c/code\u003e\u003c/a\u003e Surface sponsors on welcome page and sidebar (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2921\"\u003e#2921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/10ddc6dd296cb6e432a00835abe27f1c822373c1\"\u003e\u003ccode\u003e10ddc6d\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003essl_context_factory\u003c/code\u003e for custom \u003ccode\u003eSSLContext\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2920\"\u003e#2920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/b499bc45101d920e691e384025d728507215d4d1\"\u003e\u003ccode\u003eb499bc4\u003c/code\u003e\u003c/a\u003e Eagerly import the ASGI app in the parent process (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.32.1...0.47.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.23 to 2.0.49\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.49\u003c/h1\u003e\n\u003cp\u003eReleased: April 3, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.Session.get()\u003c/code\u003e would bypass the identity map\nand emit unnecessary SQL when \u003ccode\u003ewith_for_update=False\u003c/code\u003e was passed,\nrather than treating it equivalently to the default of \u003ccode\u003eNone\u003c/code\u003e.\nPull request courtesy of Joshua Swanson.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13176\"\u003e#13176\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where chained \u003ccode\u003e_orm.joinedload()\u003c/code\u003e options would not be\napplied correctly when the final relationship in the chain is declared on a\nbase mapper and accessed through a subclass mapper in a\n\u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e query. The path registry now correctly\ncomputes the natural path when a property declared on a base class is\naccessed through a path containing a subclass mapper, ensuring the loader\noption can be located during query compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13193\"\u003e#13193\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.Load.options()\u003c/code\u003e to apply a chained loader\noption such as \u003ccode\u003e_orm.joinedload()\u003c/code\u003e or \u003ccode\u003e_orm.selectinload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot generate the necessary clauses for the polymorphic subclasses. The\npolymorphic loading strategy is now correctly propagated when using a call\nsuch as \u003ccode\u003ejoinedload(A.b).options(joinedload(B.c.of_type(poly)))\u003c/code\u003e to match\nthe behavior of direct chaining e.g.\n\u003ccode\u003ejoinedload(A.b).joinedload(B.c.of_type(poly))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13202\"\u003e#13202\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using chained loader options such as\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e after \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot properly apply the chained loader option. The loader option is now\ncorrectly applied when using a call such as\n\u003ccode\u003ejoinedload(A.b.of_type(poly)).selectinload(poly.SubClass.c)\u003c/code\u003e to eagerly\nload related objects.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13209\"\u003e#13209\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed a typing issue where the typed members of :data:\u003ccode\u003e.func\u003c/code\u003e would return\nthe appropriate class of the same name, however this creates an issue for\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.9 to 2.9.12\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.9...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.13.0 to 1.18.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.4\u003c/h1\u003e\n\u003cp\u003eReleased: February 10, 2026\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [operations]\u003c/strong\u003e Reverted the behavior of \u003ccode\u003eOperations.add_column()\u003c/code\u003e that would\nautomatically render the \u0026quot;PRIMARY KEY\u0026quot; keyword inline when a\n\u003ccode\u003eColumn\u003c/code\u003e with \u003ccode\u003eprimary_key=True\u003c/code\u003e is added. The automatic\nbehavior, added in version 1.18.2, is now opt-in via the new\n\u003ccode\u003eOperations.add_column.inline_primary_key\u003c/code\u003e parameter. This\nchange restores the ability to render a PostgreSQL SERIAL column, which is\nrequired to be \u003ccode\u003eprimary_key=True\u003c/code\u003e, while not impacting the ability to\nrender a separate primary key constraint. This also provides consistency\nwith the \u003ccode\u003eOperations.add_column.inline_references\u003c/code\u003e parameter and\ngives users explicit control over SQL generation.\u003c/p\u003e\n\u003cp\u003eTo render PRIMARY KEY inline, use the\n\u003ccode\u003eOperations.add_column.inline_primary_key\u003c/code\u003e parameter set to\n\u003ccode\u003eTrue\u003c/code\u003e:\u003c/p\u003e\n\u003cp\u003eop.add_column(\n\u0026quot;my_table\u0026quot;,\nColumn(\u0026quot;id\u0026quot;, Integer, primary_key=True),\ninline_primary_key=True\n)References: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1232\"\u003e#1232\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.18.3\u003c/h1\u003e\n\u003cp\u003eReleased: January 29, 2026\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [autogenerate]\u003c/strong\u003e Fixed regression in version 1.18.0 due to \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e where autogenerate\nwould raise \u003ccode\u003eNoReferencedTableError\u003c/code\u003e when a foreign key constraint\nreferenced a table that was not part of the initial table load, including\ntables filtered out by the\n\u003ccode\u003eEnvironmentContext.configure.include_name\u003c/code\u003e callable or tables\nin remote schemas that were not included in the initial reflection run.\u003c/p\u003e\n\u003cp\u003eThe change in \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e was a performance optimization that eliminated\nadditional reflection queries for tables that were only referenced by\nforeign keys but not explicitly included in the main reflection run.\nHowever, this optimization inadvertently removed the creation of\n\u003ccode\u003eTable\u003c/code\u003e objects for these referenced tables, causing autogenerate\nto fail when processing foreign key constraints that pointed to them.\u003c/p\u003e\n\u003cp\u003eThe fix creates placeholder \u003ccode\u003eTable\u003c/code\u003e objects for foreign key targets\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.22 to 0.0.29\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.29\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle malformed RFC 2231 continuations in \u003ccode\u003eparse_options_header\u003c/code\u003e by \u003ca href=\"https://github.com/manunio\"\u003e\u003ccode\u003e@​manunio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/270\"\u003eKludex/python-multipart#270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.28...0.0.29\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.28...0.0.29\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.28\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/281\"\u003eKludex/python-multipart#281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCap multipart boundary length at 256 bytes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/282\"\u003eKludex/python-multipart#282\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.27...0.0.28\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.27...0.0.28\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.27\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePass parse offsets via constructors by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003eKludex/python-multipart#268\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd multipart header limits by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003eKludex/python-multipart#267\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.29 (2026-05-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle malformed RFC 2231 continuations in \u003ccode\u003eparse_options_header\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/270\"\u003e#270\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.28 (2026-05-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/281\"\u003e#281\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCap multipart boundary length at 256 bytes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/282\"\u003e#282\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.27 (2026-04-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd multipart header limits \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003e#267\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePass parse offsets via constructors \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003e#268\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/e3d6853978b91b77e9739d47389124d633894c39\"\u003e\u003ccode\u003ee3d6853\u003c/code\u003e\u003c/a\u003e Version 0.0.29 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/a60dcdcb34d55b396ced6f5bdb1d1e6df84832ae\"\u003e\u003ccode\u003ea60dcdc\u003c/code\u003e\u003c/a\u003e Handle malformed RFC 2231 continuations in \u003ccode\u003eparse_options_header\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/270\"\u003e#270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/75c33b24d91f1e3c65b597832984d6c46d1a38df\"\u003e\u003ccode\u003e75c33b2\u003c/code\u003e\u003c/a\u003e Add 7-day cooldown for dependency resolution via uv exclude-newer (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/a078b8ef00474c3f3a6cf750cd092cf880354a11\"\u003e\u003ccode\u003ea078b8e\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.6.3 to 2.7.0 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/7d8d28b210ac6cb055399562b0dc0e5cf9aef14a\"\u003e\u003ccode\u003e7d8d28b\u003c/code\u003e\u003c/a\u003e Version 0.0.28 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b0dd125457d0f98de23bf2f894aedb1a54639d4e\"\u003e\u003ccode\u003eb0dd125\u003c/code\u003e\u003c/a\u003e Cap multipart boundary length at 256 bytes (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d1b57392cf7d0c19235ba454eb5686fd27dc2384\"\u003e\u003ccode\u003ed1b5739\u003c/code\u003e\u003c/a\u003e Speed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/09cb8c3da7638d45ecdf7c154832303214bba829\"\u003e\u003ccode\u003e09cb8c3\u003c/code\u003e\u003c/a\u003e Make the long_boundary benchmark dominated by the patched code path (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/a6467c93c14aa4b09ef65450ead8011c45e5c7a0\"\u003e\u003ccode\u003ea6467c9\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Switch CodSpeed benchmarks to walltime mode\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/9a9690035a956fbdcca06f98461244cf790375a7\"\u003e\u003ccode\u003e9a96900\u003c/code\u003e\u003c/a\u003e Switch CodSpeed benchmarks to walltime mode (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.0.0 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\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/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/579\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/563\"\u003e#563\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/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.0.0...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.0.3 to 2.14.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/850\"\u003epydantic/pydantic-settings#850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 5 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/pydantic/pydantic-settings/pull/854\"\u003epydantic/pydantic-settings#854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 3 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/pydantic/pydantic-settings/pull/853\"\u003epydantic/pydantic-settings#853\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages 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/pydantic/pydantic-settings/pull/856\"\u003epydantic/pydantic-settings#856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix field named \u003ccode\u003ecls\u003c/code\u003e conflicting with classmethod parameter by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/858\"\u003epydantic/pydantic-settings#858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.14.1 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/859\"\u003epydantic/pydantic-settings#859\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.14.0...v2.14.1\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.14.0...v2.14.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix parsing env vars into Optional Strict types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/792\"\u003epydantic/pydantic-settings#792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError with mutually recursive models in CLI by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/794\"\u003epydantic/pydantic-settings#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix env_file from model_config ignored in CliApp.run() (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/795\"\u003e#795\u003c/a\u003e) by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/796\"\u003epydantic/pydantic-settings#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/798\"\u003epydantic/pydantic-settings#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Dependabot configuration by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/801\"\u003epydantic/pydantic-settings#801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump samuelcolvin/check-python-version from 4.1 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/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 7 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/pydantic/pydantic-settings/pull/803\"\u003epydantic/pydantic-settings#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 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/pydantic/pydantic-settings/pull/804\"\u003epydantic/pydantic-settings#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 5 to 7 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/pydantic/pydantic-settings/pull/805\"\u003epydantic/pydantic-settings#805\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/pydantic/pydantic-settings/pull/806\"\u003epydantic/pydantic-settings#806\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore chardet and group GitHub Actions in Dependabot by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/808\"\u003epydantic/pydantic-settings#808\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 8 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/809\"\u003epydantic/pydantic-settings#809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages 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/pydantic/pydantic-settings/pull/810\"\u003epydantic/pydantic-settings#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport reading .env files from FIFOs (e.g. 1Password Environments) by \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AliasChoices ignored when changing provider priority by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/813\"\u003epydantic/pydantic-settings#813\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve KeyError in run_subcommand for underscore field names by \u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 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/pydantic/pydantic-settings/pull/814\"\u003epydantic/pydantic-settings#814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eLiteral[numeric Enum]\u003c/code\u003e coercion for CLI and env vars by \u003ca href=\"https://github.com/m9810223\"\u003e\u003ccode\u003e@​m9810223\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/811\"\u003epydantic/pydantic-settings#811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix nested discriminated unions not discovered by env/CLI providers by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/816\"\u003epydantic/pydantic-settings#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 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/pydantic/pydantic-settings/pull/820\"\u003epydantic/pydantic-settings#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI ensure env nested max split internally. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/821\"\u003epydantic/pydantic-settings#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/824\"\u003epydantic/pydantic-settings#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eboto3-stubs\u003c/code\u003e to \u003ccode\u003etypes-boto3\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/831\"\u003epydantic/pydantic-settings#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI not recognizing field name with validate_by_name and AliasChoices by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/826\"\u003epydantic/pydantic-settings#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow customisation of the dotevn setting source to filter variables by \u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 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/pydantic/pydantic-settings/pull/833\"\u003epydantic/pydantic-settings#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce yamlfmt by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/836\"\u003epydantic/pydantic-settings#836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump boto3 from 1.42.82 to 1.42.83 in the python-packages 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/pydantic/pydantic-settings/pull/837\"\u003epydantic/pydantic-settings#837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce zizmor by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/838\"\u003epydantic/pydantic-settings#838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CliPositionalArg[list[CustomType]] crash for custom types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/839\"\u003epydantic/pydantic-settings#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/842\"\u003epydantic/pydantic-settings#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/844\"\u003epydantic/pydantic-settings#844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/847\"\u003epydantic/pydantic-settings#847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to \u003ccode\u003ejson_schema_extra\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/843\"\u003epydantic/pydantic-settings#843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.14.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/848\"\u003epydantic/pydantic-settings#848\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/pydantic/pydantic-settings/commit/e95c30bec8cfaee88ee275138c064aea97a25bdf\"\u003e\u003ccode\u003ee95c30b\u003c/code\u003e\u003c/a\u003e Prepare release 2.14.1 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/859\"\u003e#859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0c8734581b6cf70a995afad603ac456631d00621\"\u003e\u003ccode\u003e0c87345\u003c/code\u003e\u003c/a\u003e Fix field named \u003ccode\u003ecls\u003c/code\u003e conflicting with classmethod parameter (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/858\"\u003e#858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/7bd0072795a800065b42210b6dca90fc9b83daf7\"\u003e\u003ccode\u003e7bd0072\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 2 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/856\"\u003e#856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/b03e573d017ed48e1c2774a5e0b715db9766c76b\"\u003e\u003ccode\u003eb03e573\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca h...\n\n_Description has been truncated_","html_url":"https://github.com/aikiesan/Pilar-2b/pull/37","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/aikiesan%2FPilar-2b/issues/37","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/37/packages"},{"uuid":"4458010415","node_id":"PR_kwDOR52bTc7cHxMU","number":73,"state":"open","title":"chore(deps)(deps): update pyproj requirement from \u003c4.0,\u003e=3.6 to \u003e=3.6.1,\u003c4.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-16T01:14:19.000Z","updated_at":"2026-05-16T01:14:20.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): update","packages":[{"name":"pyproj","old_version":"\u003c4.0,\u003e=3.6","new_version":"\u003e=3.6.1,\u003c4.0","repository_url":"https://github.com/pyproj4/pyproj"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [pyproj](https://github.com/pyproj4/pyproj) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.6.1 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Update to PROJ 9.3 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1334\"\u003epyproj4/pyproj#1334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.12 support by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1341\"\u003epyproj4/pyproj#1341\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUG: Cython 3 compatibility fixes by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1322\"\u003epyproj4/pyproj#1322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUG: Remove pkg_resources from setup.py by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1314\"\u003epyproj4/pyproj#1314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Fixed typos by \u003ca href=\"https://github.com/djm93dev\"\u003e\u003ccode\u003e@​djm93dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1305\"\u003epyproj4/pyproj#1305\u003c/a\u003e \u0026amp; \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1306\"\u003epyproj4/pyproj#1306\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Fix logo view on Pypi by \u003ca href=\"https://github.com/cyschneck\"\u003e\u003ccode\u003e@​cyschneck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1308\"\u003epyproj4/pyproj#1308\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Spelling permimeter -\u0026gt; perimeter by \u003ca href=\"https://github.com/zanejgr\"\u003e\u003ccode\u003e@​zanejgr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1310\"\u003epyproj4/pyproj#1310\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/djm93dev\"\u003e\u003ccode\u003e@​djm93dev\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1305\"\u003epyproj4/pyproj#1305\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cyschneck\"\u003e\u003ccode\u003e@​cyschneck\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1308\"\u003epyproj4/pyproj#1308\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanejgr\"\u003e\u003ccode\u003e@​zanejgr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1310\"\u003epyproj4/pyproj#1310\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther contributions:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sebastic\"\u003e\u003ccode\u003e@​sebastic\u003c/code\u003e\u003c/a\u003e - testing Debian builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdkloe\"\u003e\u003ccode\u003e@​jdkloe\u003c/code\u003e\u003c/a\u003e - testing Fedora builds\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.6.0...3.6.1\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.6.0...3.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.3.0 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Remove pkg_resources from setup.py (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Cython 3 compatibility fixes (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1321\"\u003e#1321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.9 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1111\"\u003e#1111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.2.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1291\"\u003e#1291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added allow_superseded kwargs to :class:\u003ccode\u003epyproj.transformer.TransformerGroup\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1269\"\u003e#1269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added :meth:\u003ccode\u003eCRS.to_2d\u003c/code\u003e to demote 3D CRS to 2D (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1266\"\u003e#1266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added parameter \u003ccode\u003eoutput_axis_rule\u003c/code\u003e to :meth:\u003ccode\u003eCRS.to_wkt\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1287\"\u003e#1287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: fix Geod.npts NaN handling (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1282\"\u003e#1282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.0 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1223\"\u003e#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: PROJ 9.2 in wheels (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1243\"\u003e#1243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add \u003ccode\u003ereturn_back_azimuth: bool\u003c/code\u003e to allow compatibility between the azimuth output of the following functions (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1163\"\u003e#1163\u003c/a\u003e):\n\u003ccode\u003efwd\u003c/code\u003e and \u003ccode\u003efwd_intermediate\u003c/code\u003e, \u003ccode\u003einv\u003c/code\u003e and \u003ccode\u003einv_intermediate\u003c/code\u003e,\nNote: BREAKING CHANGE for the default value \u003ccode\u003ereturn_back_azimuth=True\u003c/code\u003e in the functions \u003ccode\u003efwd_intermediate\u003c/code\u003e and \u003ccode\u003einv_intermediate\u003c/code\u003e\nto mach the default value in \u003ccode\u003efwd\u003c/code\u003e and \u003ccode\u003einv\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eENH: Added only_best kwarg to :meth:\u003ccode\u003e.Transformer.from_crs\u003c/code\u003e (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1228\"\u003e#1228\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePERF: Optimize point transformations (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1204\"\u003e#1204\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePERF: Optimize for single point in Geod fwd/inv functions (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1206\"\u003e#1206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eREF: Raise error when :meth:\u003ccode\u003e.CRS.to_wkt\u003c/code\u003e, :meth:\u003ccode\u003e.CRS.to_json\u003c/code\u003e, or :meth:\u003ccode\u003e.CRS.to_proj4\u003c/code\u003e returns None (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1036\"\u003e#1036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLN: Remove \u003ccode\u003eAzumuthalEquidistantConversion\u003c/code\u003e \u0026amp; :class:\u003ccode\u003eLambertAzumuthalEqualAreaConversion\u003c/code\u003e. :class:\u003ccode\u003eAzimuthalEquidistantConversion\u003c/code\u003e \u0026amp; :class:\u003ccode\u003eLambertAzimuthalEqualAreaConversion\u003c/code\u003e should be used instead (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1219\"\u003e#1219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Fix Derived Projected CRS support (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1182\"\u003e#1182\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Add horizontal_datum_name for geographic CRS in :meth:\u003ccode\u003e.CRS.to_cf\u003c/code\u003e (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1251\"\u003e#1251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Add datum ensemble support to :class:\u003ccode\u003e.GeographicCRS\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1255\"\u003e#1255\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Add win32 to build_wheels matrix (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1169\"\u003e#1169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Changed so that the setup.cfg depends on the version code in the \u003cstrong\u003einit\u003c/strong\u003e.py instead of the other way around (issuue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Fix :meth:\u003ccode\u003e.CRS.to_cf\u003c/code\u003e for Pole rotation GRIB convention (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1167\"\u003e#1167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Fix :meth:\u003ccode\u003e.CRS.to_authority\u003c/code\u003e memory leak (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1178\"\u003e#1178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eREF: Use upper case EPSG code when creating CRS (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1162\"\u003e#1162\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Python 3.11 Wheels (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1110\"\u003e#1110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.1.0 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1132\"\u003e#1132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 8.2 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1011\"\u003e#1011\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Fix transformer list for 3D transformations in :class:\u003ccode\u003e.TransformerGroup\u003c/code\u003e (discussion \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1072\"\u003e#1072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added authority, accuracy, and allow_ballpark kwargs to :class:\u003ccode\u003e.TransformerGroup\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1076\"\u003e#1076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added \u003ccode\u003eforce_over\u003c/code\u003e kwarg to :meth:\u003ccode\u003e.Transformer.from_crs\u003c/code\u003e (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/997\"\u003e#997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added :meth:\u003ccode\u003e.Transformer.get_last_used_operation\u003c/code\u003e (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1071\"\u003e#1071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLN: Remove deprecated \u003ccode\u003eskip_equivalent\u003c/code\u003e kwarg from transformers and \u003ccode\u003eerrcheck\u003c/code\u003e kwarg from :meth:\u003ccode\u003e.CRS.from_cf\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1077\"\u003e#1077\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/pyproj4/pyproj/commit/0c5159aab8c32488584ae472b3752203f1005559\"\u003e\u003ccode\u003e0c5159a\u003c/code\u003e\u003c/a\u003e DOC: Update contributors count\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/98fcb3b2ece4b4ae7fe52c6750d70f00fed2b67d\"\u003e\u003ccode\u003e98fcb3b\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://github.com/zanejgr\"\u003e\u003ccode\u003e@​zanejgr\u003c/code\u003e\u003c/a\u003e as a contributor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/c8c50bb84b58cb0b6e354dbda49527c192d9196c\"\u003e\u003ccode\u003ec8c50bb\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://github.com/cyschneck\"\u003e\u003ccode\u003e@​cyschneck\u003c/code\u003e\u003c/a\u003e as a contributor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4dbe46fedf303e7881b664ef0b8785ab3a407881\"\u003e\u003ccode\u003e4dbe46f\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://github.com/djm93dev\"\u003e\u003ccode\u003e@​djm93dev\u003c/code\u003e\u003c/a\u003e as a contributor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/cb47bf00637b0b583fa53d25ac9d317cdf98b193\"\u003e\u003ccode\u003ecb47bf0\u003c/code\u003e\u003c/a\u003e MNT: Version 3.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/1d83ec10af044619177197d8add3518c4a6f83ae\"\u003e\u003ccode\u003e1d83ec1\u003c/code\u003e\u003c/a\u003e DOC: Update how to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/36940dbbe2588be401209ae7a86536b42be0ea0f\"\u003e\u003ccode\u003e36940db\u003c/code\u003e\u003c/a\u003e MNT: version 3.6.1rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3627e949ff10fe56d527fb1b9d122a886ac074a2\"\u003e\u003ccode\u003e3627e94\u003c/code\u003e\u003c/a\u003e CI: Update cibuildwheel v0.16 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1330\"\u003e#1330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/dd80043cde38db94a31b5b477b48bd00e68417e5\"\u003e\u003ccode\u003edd80043\u003c/code\u003e\u003c/a\u003e DEP: Add Python 3.12 support (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1341\"\u003e#1341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/76b77c8586efa28565aaab2365fa459f75596043\"\u003e\u003ccode\u003e76b77c8\u003c/code\u003e\u003c/a\u003e WHL: Update to PROJ 9.3 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1334\"\u003e#1334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.6.0...3.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore 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/danielnovais-tech/TELECOM-TOWER-POWER/pull/73","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielnovais-tech%2FTELECOM-TOWER-POWER/issues/73","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/73/packages"},{"uuid":"4424270840","node_id":"PR_kwDOSPP1Nc7abKKN","number":4,"state":"open","title":"chore(pip): update pyproj requirement from \u003e=3.6 to \u003e=3.7.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-11T21:01:28.000Z","updated_at":"2026-05-11T21:26:09.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(pip): update","packages":[{"name":"pyproj","old_version":"\u003e=3.6","new_version":"\u003e=3.7.2","repository_url":"https://github.com/pyproj4/pyproj"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [pyproj](https://github.com/pyproj4/pyproj) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.22 to 2.23 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/pyproj4/pyproj/pull/1479\"\u003epyproj4/pyproj#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Only import time.perf_counter by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1480\"\u003epyproj4/pyproj#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1481\"\u003epyproj4/pyproj#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Python 3.11+ by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1483\"\u003epyproj4/pyproj#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.1 to 0.6.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/pyproj4/pyproj/pull/1488\"\u003epyproj4/pyproj#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: update doc geometry_area_perimeter by \u003ca href=\"https://github.com/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Remove 'noqa: E501' from docstrings by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epyproj.crs: add imports to \u003cstrong\u003eall\u003c/strong\u003e by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1494\"\u003epyproj4/pyproj#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: replace black and isort with ruff format and lint by \u003ca href=\"https://github.com/mwtoews\"\u003e\u003ccode\u003e@​mwtoews\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1496\"\u003epyproj4/pyproj#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUILD/CI: Add win_arm64 wheel build by \u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.23 to 3.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/pyproj4/pyproj/pull/1502\"\u003epyproj4/pyproj#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 3.0.0 to 3.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/pyproj4/pyproj/pull/1505\"\u003epyproj4/pyproj#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBLD: Enable free-threading compatibility by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1512\"\u003epyproj4/pyproj#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add 3.13 free-threading wheels by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1514\"\u003epyproj4/pyproj#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-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/pyproj4/pyproj/pull/1520\"\u003epyproj4/pyproj#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1519\"\u003epyproj4/pyproj#1519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout 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/pyproj4/pyproj/pull/1521\"\u003epyproj4/pyproj#1521\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/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.11 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Add CRS imports to \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add win_arm64 wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.13 free-threading wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.14 and 3.14 free-threading wheels\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Add wheels for musllinux (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1477\"\u003e#1477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1446\"\u003e#1446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff \u0026amp; lint fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1455\"\u003e#1455\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1456\"\u003e#1456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.4.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1423\"\u003e#1423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.10 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1357\"\u003e#1357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.2 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add :meth:\u003ccode\u003eCRS.is_deprecated\u003c/code\u003e and :meth:\u003ccode\u003eCRS.get_non_deprecated\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1383\"\u003e#1383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePERF: thread local context (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add runtime \u0026amp; compiled PROJ versions (discussion \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1420\"\u003e#1420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Handle changes to HotineObliqueMercatorBConversion (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1429\"\u003e#1429\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.3.0 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Remove pkg_resources from setup.py (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Cython 3 compatibility fixes (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1321\"\u003e#1321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.9 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1111\"\u003e#1111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.2.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1291\"\u003e#1291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added allow_superseded kwargs to :class:\u003ccode\u003epyproj.transformer.TransformerGroup\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1269\"\u003e#1269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added :meth:\u003ccode\u003eCRS.to_2d\u003c/code\u003e to demote 3D CRS to 2D (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1266\"\u003e#1266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added parameter \u003ccode\u003eoutput_axis_rule\u003c/code\u003e to :meth:\u003ccode\u003eCRS.to_wkt\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1287\"\u003e#1287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: fix Geod.npts NaN handling (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1282\"\u003e#1282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.0 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1223\"\u003e#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: PROJ 9.2 in wheels (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1243\"\u003e#1243\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/pyproj4/pyproj/commit/f16037d2c45c3274ef28b828998267c3390393c8\"\u003e\u003ccode\u003ef16037d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/878615decadbde676f9acc82bce9763d62fbacbe\"\u003e\u003ccode\u003e878615d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4813b2db7c0fb92f598748bb1aca85288765a354\"\u003e\u003ccode\u003e4813b2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1521\"\u003e#1521\u003c/a\u003e from pyproj4/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/66b8e0b2fb2f93a83be484cd3ae741c140123930\"\u003e\u003ccode\u003e66b8e0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/ff97ab97b5bfd02a714bf84ebd847ec366da48f8\"\u003e\u003ccode\u003eff97ab9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1519\"\u003e#1519\u003c/a\u003e from djhoese/remove-old-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3692f8aa7fc9373927178fa1774ae69811387cfb\"\u003e\u003ccode\u003e3692f8a\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1520\"\u003e#1520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f3815db4169e399271d87ce9970175edb4b4170b\"\u003e\u003ccode\u003ef3815db\u003c/code\u003e\u003c/a\u003e MNT: Update history with test removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e5ee13f82067e9c577a1bb5e2484ed91c5f96c22\"\u003e\u003ccode\u003ee5ee13f\u003c/code\u003e\u003c/a\u003e TST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26b3cdb7d68e677ebfec62549288eea02bc38ed9\"\u003e\u003ccode\u003e26b3cdb\u003c/code\u003e\u003c/a\u003e MNT: 3.7.2rc0 and update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0cd586a0fb7094b4f8fb43fe34dd2e249aec0da0\"\u003e\u003ccode\u003e0cd586a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1514\"\u003e#1514\u003c/a\u003e from djhoese/ci-313-ft\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.6.0...3.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/synjan/norsk-jernbane/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/synjan%2Fnorsk-jernbane/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"},{"uuid":"3971112133","node_id":"PR_kwDORAhFZs7FS-SH","number":5,"state":"closed","title":"Bump the all-deps group across 1 directory with 56 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-28T04:30:28.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-21T02:39:45.000Z","updated_at":"2026-02-28T04:30:29.000Z","time_to_close":611443,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-deps","update_count":56,"packages":[{"name":"aiosqlite","old_version":"0.22.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"antlr4-python3-runtime","old_version":"4.13.1","new_version":"4.13.2"},{"name":"asyncua","old_version":"1.1.5","new_version":"1.1.8","repository_url":"https://github.com/FreeOpcUa/opcua-asyncio"},{"name":"atomicwrites","old_version":"1.4.0","new_version":"1.4.1","repository_url":"https://github.com/untitaker/python-atomicwrites"},{"name":"autobahn","old_version":"24.4.2","new_version":"25.12.2","repository_url":"https://github.com/crossbario/autobahn-python"},{"name":"awkward","old_version":"2.8.11","new_version":"2.9.0","repository_url":"https://github.com/scikit-hep/awkward-1.0"},{"name":"awkward-cpp","old_version":"51","new_version":"52","repository_url":"https://github.com/scikit-hep/awkward-1.0"},{"name":"certifi","old_version":"2025.11.12","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"click","old_version":"8.1.7","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"comtypes","old_version":"1.4.14","new_version":"1.4.15","repository_url":"https://github.com/enthought/comtypes"},{"name":"contourpy","old_version":"1.3.2","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"cryptography","old_version":"46.0.3","new_version":"46.0.5","repository_url":"https://github.com/pyca/cryptography"},{"name":"fsspec","old_version":"2025.12.0","new_version":"2026.2.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"gmsh","old_version":"4.15.0","new_version":"4.15.1"},{"name":"ladybug-comfort","old_version":"0.18.96","new_version":"0.18.103","repository_url":"https://github.com/ladybug-tools/ladybug-comfort"},{"name":"ladybug-core","old_version":"0.44.29","new_version":"0.44.36","repository_url":"https://github.com/ladybug-tools/ladybug"},{"name":"ladybug-display","old_version":"0.13.3","new_version":"0.13.6","repository_url":"https://github.com/ladybug-tools/ladybug-display"},{"name":"ladybug-geometry","old_version":"1.34.14","new_version":"1.34.19","repository_url":"https://github.com/ladybug-tools/ladybug-geometry"},{"name":"markdown","old_version":"3.10","new_version":"3.10.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"networkx","old_version":"3.4.2","new_version":"3.6.1","repository_url":"https://github.com/networkx/networkx"},{"name":"numba","old_version":"0.63.1","new_version":"0.64.0","repository_url":"https://github.com/numba/numba"},{"name":"numpy","old_version":"1.26.4","new_version":"2.4.2","repository_url":"https://github.com/numpy/numpy"},{"name":"openstudio","old_version":"3.10.0","new_version":"3.11.0","repository_url":"https://github.com/NREL/OpenStudio"},{"name":"orjson","old_version":"3.11.5","new_version":"3.11.7","repository_url":"https://github.com/ijl/orjson"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pandas","old_version":"2.3.3","new_version":"3.0.1","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pillow","old_version":"12.0.0","new_version":"12.1.1","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.5.1","new_version":"4.9.2","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"posthog","old_version":"7.4.2","new_version":"7.9.3","repository_url":"https://github.com/posthog/posthog-python"},{"name":"protobuf","old_version":"6.33.2","new_version":"6.33.5","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"psutil","old_version":"7.1.3","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycollada","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/pycollada/pycollada"},{"name":"pycparser","old_version":"2.23","new_version":"3.0","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyfakefs","old_version":"6.0.0","new_version":"6.1.1","repository_url":"https://github.com/pytest-dev/pyfakefs"},{"name":"pygit2","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/libgit2/pygit2"},{"name":"pyjwt","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pynastran","old_version":"1.3.4","new_version":"1.4.1","repository_url":"https://github.com/SteveDoyle2/pyNastran"},{"name":"pyoptools","old_version":"0.3.7","new_version":"0.3.8"},{"name":"pyparsing","old_version":"3.3.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyproj","old_version":"3.7.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"pyvista","old_version":"0.46.4","new_version":"0.47.0","repository_url":"https://github.com/pyvista/pyvista"},{"name":"rich","old_version":"14.2.0","new_version":"14.3.3","repository_url":"https://github.com/Textualize/rich"},{"name":"scikit-image","old_version":"0.25.2","new_version":"0.26.0","repository_url":"https://github.com/scikit-image/scikit-image"},{"name":"scikit-learn","old_version":"1.7.2","new_version":"1.8.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.15.3","new_version":"1.17.0","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.48.0","new_version":"2.53.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"soupsieve","old_version":"2.8.1","new_version":"2.8.3","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"testtools","old_version":"2.8.2","new_version":"2.8.4","repository_url":"https://github.com/testing-cabal/testtools"},{"name":"tifffile","old_version":"2025.5.10","new_version":"2026.2.20","repository_url":"https://github.com/cgohlke/tifffile"},{"name":"trimesh","old_version":"4.10.1","new_version":"4.11.2","repository_url":"https://github.com/mikedh/trimesh"},{"name":"txaio","old_version":"25.9.2","new_version":"25.12.2","repository_url":"https://github.com/crossbario/txaio"},{"name":"urllib3","old_version":"2.6.2","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"vedo","old_version":"2025.5.4","new_version":"2026.6.1","repository_url":"https://github.com/marcomusy/vedo"},{"name":"vtk","old_version":"9.5.2","new_version":"9.6.0"},{"name":"xarray","old_version":"2025.6.1","new_version":"2026.2.0","repository_url":"https://github.com/pydata/xarray"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-deps group with 56 updates in the /Data/Python directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.22.0` | `0.22.1` |\n| [antlr4-python3-runtime](http://www.antlr.org) | `4.13.1` | `4.13.2` |\n| [asyncua](https://github.com/FreeOpcUa/opcua-asyncio) | `1.1.5` | `1.1.8` |\n| [atomicwrites](https://github.com/untitaker/python-atomicwrites) | `1.4.0` | `1.4.1` |\n| [autobahn](https://github.com/crossbario/autobahn-python) | `24.4.2` | `25.12.2` |\n| [awkward](https://github.com/scikit-hep/awkward-1.0) | `2.8.11` | `2.9.0` |\n| [awkward-cpp](https://github.com/scikit-hep/awkward-1.0) | `51` | `52` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.11.12` | `2026.1.4` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.1` |\n| [comtypes](https://github.com/enthought/comtypes) | `1.4.14` | `1.4.15` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.3` | `46.0.5` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.12.0` | `2026.2.0` |\n| [gmsh](https://gmsh.info) | `4.15.0` | `4.15.1` |\n| [ladybug-comfort](https://github.com/ladybug-tools/ladybug-comfort) | `0.18.96` | `0.18.103` |\n| [ladybug-core](https://github.com/ladybug-tools/ladybug) | `0.44.29` | `0.44.36` |\n| [ladybug-display](https://github.com/ladybug-tools/ladybug-display) | `0.13.3` | `0.13.6` |\n| [ladybug-geometry](https://github.com/ladybug-tools/ladybug-geometry) | `1.34.14` | `1.34.19` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.10` | `3.10.2` |\n| [networkx](https://github.com/networkx/networkx) | `3.4.2` | `3.6.1` |\n| [numba](https://github.com/numba/numba) | `0.63.1` | `0.64.0` |\n| [numpy](https://github.com/numpy/numpy) | `1.26.4` | `2.4.2` |\n| [openstudio](https://github.com/NREL/OpenStudio) | `3.10.0` | `3.11.0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.11.7` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.3` | `3.0.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.0.0` | `12.1.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.5.1` | `4.9.2` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [posthog](https://github.com/posthog/posthog-python) | `7.4.2` | `7.9.3` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.2` | `6.33.5` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.1.3` | `7.2.2` |\n| [pycollada](https://github.com/pycollada/pycollada) | `0.9.2` | `0.9.3` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.23` | `3.0` |\n| [pyfakefs](https://github.com/pytest-dev/pyfakefs) | `6.0.0` | `6.1.1` |\n| [pygit2](https://github.com/libgit2/pygit2) | `1.18.2` | `1.19.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [pynastran](https://github.com/SteveDoyle2/pyNastran) | `1.3.4` | `1.4.1` |\n| pyoptools | `0.3.7` | `0.3.8` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.3.0` | `3.3.2` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.7.1` | `3.7.2` |\n| [pyvista](https://github.com/pyvista/pyvista) | `0.46.4` | `0.47.0` |\n| [rich](https://github.com/Textualize/rich) | `14.2.0` | `14.3.3` |\n| [scikit-image](https://github.com/scikit-image/scikit-image) | `0.25.2` | `0.26.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.7.2` | `1.8.0` |\n| [scipy](https://github.com/scipy/scipy) | `1.15.3` | `1.17.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.48.0` | `2.53.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8.1` | `2.8.3` |\n| [testtools](https://github.com/testing-cabal/testtools) | `2.8.2` | `2.8.4` |\n| [tifffile](https://github.com/cgohlke/tifffile) | `2025.5.10` | `2026.2.20` |\n| [trimesh](https://github.com/mikedh/trimesh) | `4.10.1` | `4.11.2` |\n| [txaio](https://github.com/crossbario/txaio) | `25.9.2` | `25.12.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [vedo](https://github.com/marcomusy/vedo) | `2025.5.4` | `2026.6.1` |\n| [vtk](https://vtk.org) | `9.5.2` | `9.6.0` |\n| [xarray](https://github.com/pydata/xarray) | `2025.6.1` | `2026.2.0` |\n\n\nUpdates `aiosqlite` from 0.22.0 to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.1\u003c/h2\u003e\n\u003cp\u003eBug fix release\u003c/p\u003e\n\u003cp\u003eNOTE: Starting with \u003ccode\u003ev0.22.0\u003c/code\u003e, the \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e object no longer\ninherits from \u003ccode\u003ethreading.Thread\u003c/code\u003e. If not using aiosqlite as a context manager,\nclients must \u003ccode\u003eawait connection.close()\u003c/code\u003e or call \u003ccode\u003econnection.stop()\u003c/code\u003e to ensure\nthe helper thread is completed and terminated correctly. A \u003ccode\u003eResourceWarning\u003c/code\u003e\nwill be emitted for any connection that is garbage collected without being\nclosed or stopped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded synchronous \u003ccode\u003estop()\u003c/code\u003e method to \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e to enable safe\ncleanup and termination of the background thread without dependence\non having an active event loop (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.22.0...v0.22.1\n     2\tAmethyst Reese\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/9b127cecc7de843bf4f343b6da63b641866533fb\"\u003e\u003ccode\u003e9b127ce\u003c/code\u003e\u003c/a\u003e Version bump v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/5c3f61c1ea49401f2716d8f58d494e76ca766921\"\u003e\u003ccode\u003e5c3f61c\u003c/code\u003e\u003c/a\u003e Improve stop semantics for connections (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.22.0...v0.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `antlr4-python3-runtime` from 4.13.1 to 4.13.2\n\nUpdates `asyncua` from 1.1.5 to 1.1.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/releases\"\u003easyncua's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.8\u003c/h2\u003e\n\u003cp\u003efix release script and upload\u003c/p\u003e\n\u003ch2\u003ev1.1.7\u003c/h2\u003e\n\u003cp\u003eorigin/master, origin/HEAD) Replace time.time() with time.monotonic() in asyncua core modules\nb3dd3a17ffdd554807df230b6b34403b8c946c30 make pytest loop scope explicit\na5d72a2dc2a53e21d84c5f3b9091e27ae14e007e finally unfreeze pytest-asyncio\ncc874c30e2154e86a43523006ecb5839412cc157 Feat: Support import/export of struct and enum Field descriptions (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1851\"\u003e#1851\u003c/a\u003e)\n97095b909c141daf9b7d300114f7d5d924444b76 Support pre 1.04 struct length fields for B\u0026amp;R\n5b1091795dc7745efb94acd94381db17274779e8 fix  connecting to new prosys opcua server (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1827\"\u003e#1827\u003c/a\u003e)\n120d2e8c090fe0dbe34fb27a3e2f723dcb83ab8d Fix small bug if imported xml has also the stardard namespace included (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1832\"\u003e#1832\u003c/a\u003e)\nd52d319b7ccf8c52f0e0fce469d06b9a10db0a24 Enhancement: Chunked Build ETree Function (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1833\"\u003e#1833\u003c/a\u003e)\n6b6f4bb220b47b7d6d5612dc4d8daccf386373b0 Fix: Issues with missing namespace URIs when importing and exporting XMLs (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1830\"\u003e#1830\u003c/a\u003e)\nf12f3e19b3e7a3bc3db38add30176eef0cecd300 fix ClientNonce and/or peer_certificate may be None\ne3e02e3cfaca19647aec9348e9452594c6ebd657 Include support for x509 certificate chains in DER format (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003ev1.1.6\u003c/h2\u003e\n\u003cp\u003eupdate ua adresse space to 1.0.5\nParse ExtensionObjects with missing length (= -1)\nadd: Number in uatypes.py\nAllow setting password to None.\nFix usage of X509IdentityToken\u003c/p\u003e\n\u003cp\u003ebug fixes\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/FreeOpcUa/opcua-asyncio/commit/d8a5de3fe4050f82f39690bb43157a4b8e20c545\"\u003e\u003ccode\u003ed8a5de3\u003c/code\u003e\u003c/a\u003e new release v1.1.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/fe795e16ad86a4aea8ee09905ab080f9a0841748\"\u003e\u003ccode\u003efe795e1\u003c/code\u003e\u003c/a\u003e fix release script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/cacd6a0c355cd5d5e3af9e1d50c8829b69c2ed88\"\u003e\u003ccode\u003ecacd6a0\u003c/code\u003e\u003c/a\u003e Replace time.time() with time.monotonic() in asyncua core modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/b3dd3a17ffdd554807df230b6b34403b8c946c30\"\u003e\u003ccode\u003eb3dd3a1\u003c/code\u003e\u003c/a\u003e make pytest loop scope explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/a5d72a2dc2a53e21d84c5f3b9091e27ae14e007e\"\u003e\u003ccode\u003ea5d72a2\u003c/code\u003e\u003c/a\u003e finally unfreeze pytest-asyncio\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/cc874c30e2154e86a43523006ecb5839412cc157\"\u003e\u003ccode\u003ecc874c3\u003c/code\u003e\u003c/a\u003e Feat: Support import/export of struct and enum Field descriptions (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1851\"\u003e#1851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/97095b909c141daf9b7d300114f7d5d924444b76\"\u003e\u003ccode\u003e97095b9\u003c/code\u003e\u003c/a\u003e Support pre 1.04 struct length fields for B\u0026amp;R\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/5b1091795dc7745efb94acd94381db17274779e8\"\u003e\u003ccode\u003e5b10917\u003c/code\u003e\u003c/a\u003e fix  connecting to new prosys opcua server (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1827\"\u003e#1827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/120d2e8c090fe0dbe34fb27a3e2f723dcb83ab8d\"\u003e\u003ccode\u003e120d2e8\u003c/code\u003e\u003c/a\u003e Fix small bug if imported xml has also the stardard namespace included (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1832\"\u003e#1832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/d52d319b7ccf8c52f0e0fce469d06b9a10db0a24\"\u003e\u003ccode\u003ed52d319\u003c/code\u003e\u003c/a\u003e Enhancement: Chunked Build ETree Function (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1833\"\u003e#1833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/compare/v1.1.5...v1.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `atomicwrites` from 1.4.0 to 1.4.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/e05d8c985a10176ad43eefb9c4bfa6d7ab176719\"\u003e\u003ccode\u003ee05d8c9\u003c/code\u003e\u003c/a\u003e version 1.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/ea90c67ffe5f38cd39d89625022d417da1966522\"\u003e\u003ccode\u003eea90c67\u003c/code\u003e\u003c/a\u003e fix name typo (\u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/60\"\u003e#60\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/c35cd32eb364d5a4210e64bf38fd1a55f329f316\"\u003e\u003ccode\u003ec35cd32\u003c/code\u003e\u003c/a\u003e Add Power Support ppc64le (\u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/57\"\u003e#57\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/9f8db6527db8a7d20879756ff83d86009df8c9c5\"\u003e\u003ccode\u003e9f8db65\u003c/code\u003e\u003c/a\u003e wrap line\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/6699a1fc44bc5cea2ee258cf960a8bd6cc584e21\"\u003e\u003ccode\u003e6699a1f\u003c/code\u003e\u003c/a\u003e migrate to travis-ci.com\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/ec443a88e5e6cfbc9b667b1bcfd52e5a0a485f7e\"\u003e\u003ccode\u003eec443a8\u003c/code\u003e\u003c/a\u003e Add documentation for open_kwargs, fix \u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/56\"\u003e#56\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/de33f6fac140f32a6eff9eb002feaa6dc7182182\"\u003e\u003ccode\u003ede33f6f\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/d17830127887b97f404f1596ac76d46d730e31f5\"\u003e\u003ccode\u003ed178301\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/72b5dcc9c5225fc8b54559f0f9c02d3211dfd403\"\u003e\u003ccode\u003e72b5dcc\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/14e7f1f5407344f215f0b06b5cbe49fe65e90d1d\"\u003e\u003ccode\u003e14e7f1f\u003c/code\u003e\u003c/a\u003e Clean up some FAQ/Frequently asked question repetition in readme (\u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/53\"\u003e#53\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/untitaker/python-atomicwrites/compare/1.4.0...1.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `autobahn` from 24.4.2 to 25.12.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/crossbario/autobahn-python/releases\"\u003eautobahn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eDevelopment Build fork-68427734-oberstet_autobahn_python-strict_typing_test-202601141357\u003c/h1\u003e\n\u003cp\u003eDevelopment build from pull request\u003c/p\u003e\n\u003ch2\u003eBuild Information\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCommit\u003c/strong\u003e: 1c7d45cd\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBuild Date\u003c/strong\u003e: 2026-01-14 14:02:37 UTC\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRelease Type\u003c/strong\u003e: development\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eIncluded Platforms\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLinux\u003c/strong\u003e: x86_64, ARM64 (manylinux wheels + pure Python fallbacks)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emacOS\u003c/strong\u003e: Apple Silicon ARM64\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWindows\u003c/strong\u003e: x86_64\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython Versions\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCPython\u003c/strong\u003e: 3.11, 3.12, 3.13, 3.14\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePyPy\u003c/strong\u003e: 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cp\u003eDownload the appropriate wheel for your platform:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install \u0026lt;downloaded-wheel-file\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eArtifact Inventory\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTotal Wheels\u003c/strong\u003e: 16\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSource Distributions\u003c/strong\u003e: 3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eDevelopment Build fork-cee77a0c-bblommers_autobahn_python-chore_apply_ruff_up-202601092138\u003c/h1\u003e\n\u003cp\u003eDevelopment build from pull request\u003c/p\u003e\n\u003ch2\u003eBuild Information\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCommit\u003c/strong\u003e: b006e90e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBuild Date\u003c/strong\u003e: 2026-01-09 21:43:05 UTC\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRelease Type\u003c/strong\u003e: development\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eIncluded Platforms\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLinux\u003c/strong\u003e: x86_64, ARM64 (manylinux wheels + pure Python fallbacks)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emacOS\u003c/strong\u003e: Apple Silicon ARM64\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWindows\u003c/strong\u003e: x86_64\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/crossbario/autobahn-python/blob/master/docs/changelog.rst\"\u003eautobahn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBuild \u0026amp; CI/CD\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSynchronize CI/CD, FlatBuffers vendoring, and wamp-ai/wamp-cicd submodules between autobahn-python and zlmdb (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSwitch manylinux container from 2_34 to 2_28 for x86_64 ISA compatibility (fixes auditwheel flatc bundling)\u003c/li\u003e\n\u003cli\u003eIncrease ARM64 build timeout to 60 minutes for QEMU emulation\u003c/li\u003e\n\u003cli\u003eAdd .github/workflows/README.md documenting CI/CD architecture\u003c/li\u003e\n\u003cli\u003eConsolidate download-github-release and download-release-artifacts recipes\u003c/li\u003e\n\u003cli\u003eAdd checksum verification to artifact download workflow\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFlatBuffers\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify vendored FlatBuffers - use upstream as-is\u003c/li\u003e\n\u003cli\u003eTrack vendored FlatBuffers in git (like zlmdb approach)\u003c/li\u003e\n\u003cli\u003eAdd version() function to vendored FlatBuffers runtime\u003c/li\u003e\n\u003cli\u003eAdd check_zlmdb_flatbuffers_version_in_sync() for cross-project compatibility\u003c/li\u003e\n\u003cli\u003eGenerate .bfbs files for WAMP schemas during wheel build\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eOther\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRename install-flatc to install-flatc-system with prominent warning\u003c/li\u003e\n\u003cli\u003eRemove legacy readthedocs.yml to activate .readthedocs.yaml\u003c/li\u003e\n\u003cli\u003eRemove dev-latest optional dependency (PyPI rejects direct URLs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.12.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNew\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd vendored Flatbuffers (v25.9.23) (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1761\"\u003e#1761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WAMP serdes functional and benchmark testing; WAMP-Flatbuffers; WAMP Serializer Composition (transport/payload) (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1765\"\u003e#1765\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFix\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix 1757 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1758\"\u003e#1758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix 1767 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1769\"\u003e#1769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix 1771 complete (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1774\"\u003e#1774\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eOther\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRel v25.10.2 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1734\"\u003e#1734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRel v25.10.2 part2 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1741\"\u003e#1741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWAMP Flatbuffers serialization test coverage; WAMP message classes refactoring (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1773\"\u003e#1773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eModernization phase 1.1 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1785\"\u003e#1785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePhase 1.2: Build Tooling Modernization (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1788\"\u003e#1788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePhase 1.3: CI/CD Modernization (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1791\"\u003e#1791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRel25 12 1 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1794\"\u003e#1794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eModernization phase 1.4 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1797\"\u003e#1797\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/crossbario/autobahn-python/commit/5e4f7e086a074892231377f465099946e8f66ac4\"\u003e\u003ccode\u003e5e4f7e0\u003c/code\u003e\u003c/a\u003e docs: add changelog and release notes for v25.12.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/e97953b3cdc42b103075146dabe9eb9f30111c8b\"\u003e\u003ccode\u003ee97953b\u003c/code\u003e\u003c/a\u003e fix: add checksum verification and unify artifact download paths\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/05f1193cb2b2cdf71a92edfd2d12965083000a68\"\u003e\u003ccode\u003e05f1193\u003c/code\u003e\u003c/a\u003e fix: download-github-release now downloads all release artifacts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/467581c1ef461c97e3c24ece03d61119bbc0e126\"\u003e\u003ccode\u003e467581c\u003c/code\u003e\u003c/a\u003e Synchronize CI/CD, Flatbuffers vendoring and wamp-ai and wamp-cicd Submodules...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/60f226c5356feaab3545f7d015c0655924d9444c\"\u003e\u003ccode\u003e60f226c\u003c/code\u003e\u003c/a\u003e build: remove legacy readthedocs.yml to activate .readthedocs.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/0dac159de6194c94d4be19b1958bddf627aba856\"\u003e\u003ccode\u003e0dac159\u003c/code\u003e\u003c/a\u003e Add missing docs deps to dev, ignore CFFI build artifacts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/e2503361b7c6f7cfd9fd38b5e2093703f3035166\"\u003e\u003ccode\u003ee250336\u003c/code\u003e\u003c/a\u003e Simplify vendored flatbuffers - use upstream as-is\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/03e2e157268713e71e10f5322e521349bc485116\"\u003e\u003ccode\u003e03e2e15\u003c/code\u003e\u003c/a\u003e Track vendored flatbuffers in git (like zlmdb approach)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/41f7e3c6595b911c482f332f5ea40de7f9c0bc1c\"\u003e\u003ccode\u003e41f7e3c\u003c/code\u003e\u003c/a\u003e Move vendor-flatbuffers logic to external Python script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/8db464888d9c738fb51b78544706c130cc1c47a6\"\u003e\u003ccode\u003e8db4648\u003c/code\u003e\u003c/a\u003e bump package version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/crossbario/autobahn-python/compare/v24.4.2...v25.12.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `awkward` from 2.8.11 to 2.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scikit-hep/awkward-1.0/releases\"\u003eawkward's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.9.0\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: drop Python 3.9 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3816\"\u003escikit-hep/awkward#3816\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug-fixes and performance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: pass the right input type to \u003ccode\u003eawkward_NumpyArray_subrange_equal*\u003c/code\u003e kernels by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3818\"\u003escikit-hep/awkward#3818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: define behavior class within the test function in \u003ccode\u003etest_1511_set_attribute.py\u003c/code\u003e to make it thread-local by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3826\"\u003escikit-hep/awkward#3826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: properly respect requested byteorder in \u003ccode\u003eak.from_buffers\u003c/code\u003e for ndarray buffers by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3820\"\u003escikit-hep/awkward#3820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use \u003ccode\u003eset_mask\u003c/code\u003e instead of \u003ccode\u003eset_base_mask\u003c/code\u003e in \u003ccode\u003eto_cudf\u003c/code\u003e by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3847\"\u003escikit-hep/awkward#3847\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: use \u0026quot;M8\u0026quot; dtype instead of \u0026quot;\u0026lt;M8\u0026quot; in tests by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3819\"\u003escikit-hep/awkward#3819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump actions/attest-build-provenance from 3.1.0 to 3.2.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3828\"\u003escikit-hep/awkward#3828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: move array definitions inside test functions in \u003ccode\u003etest_1490_jax_reducers_combinations.py\u003c/code\u003e by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3829\"\u003escikit-hep/awkward#3829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: xfail \u003ccode\u003etests-cuda/test_3051_to_cuda.py\u003c/code\u003e only in the latest cudf by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3836\"\u003escikit-hep/awkward#3836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: do not skip \u003ccode\u003etest_recordarray_argmax_y_field\u003c/code\u003e and make the xfail reason consistent for \u003ccode\u003etest_listarray_sort\u003c/code\u003e in  \u003ccode\u003etests-cuda/test_3459_virtualarray_with_cuda.py\u003c/code\u003e by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3837\"\u003escikit-hep/awkward#3837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update pre-commit hooks 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/scikit-hep/awkward/pull/3834\"\u003escikit-hep/awkward#3834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: delete old \u003ccode\u003eVirtualArray\u003c/code\u003e class by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3848\"\u003escikit-hep/awkward#3848\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: drop support for PyPy by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3835\"\u003escikit-hep/awkward#3835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: drop 3.13t by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3843\"\u003escikit-hep/awkward#3843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: drop cp/pp build selectors by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3854\"\u003escikit-hep/awkward#3854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add automated contributions policy to CONTRIBUTING.md by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3831\"\u003escikit-hep/awkward#3831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: document named-axis support for axis in high-level operations by \u003ca href=\"https://github.com/X0708a\"\u003e\u003ccode\u003e@​X0708a\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3823\"\u003escikit-hep/awkward#3823\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: improve \u003ccode\u003eak.to_cudf\u003c/code\u003e errors and documentation by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3850\"\u003escikit-hep/awkward#3850\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/scikit-hep/awkward/compare/v2.8.12...v2.9.0\"\u003ehttps://github.com/scikit-hep/awkward/compare/v2.8.12...v2.9.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 2.8.12\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: improve merging of \u003ccode\u003eNumpyArray\u003c/code\u003es and simplification of \u003ccode\u003eUnionArray\u003c/code\u003es + fix \u003ccode\u003eak.almost_equal\u003c/code\u003e for \u003ccode\u003eUnionArray\u003c/code\u003es by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3773\"\u003escikit-hep/awkward#3773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add \u003ccode\u003eak.sort()\u003c/code\u003e for CUDA backend by \u003ca href=\"https://github.com/shwina\"\u003e\u003ccode\u003e@​shwina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3750\"\u003escikit-hep/awkward#3750\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Make \u003ccode\u003eak.combinations\u003c/code\u003e faster on GPU by using \u003ccode\u003ecp.searchsorted\u003c/code\u003e to compute output list indexes by \u003ca href=\"https://github.com/shwina\"\u003e\u003ccode\u003e@​shwina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3795\"\u003escikit-hep/awkward#3795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add argmax implementation using CCCL by \u003ca href=\"https://github.com/maxymnaumchyk\"\u003e\u003ccode\u003e@​maxymnaumchyk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3777\"\u003escikit-hep/awkward#3777\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: make \u003ccode\u003eak.combinations\u003c/code\u003e faster on GPU by using \u003ccode\u003ecp.searchsorted\u003c/code\u003e to compute output list indexes by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3798\"\u003escikit-hep/awkward#3798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add argmin implementation using CCCL by \u003ca href=\"https://github.com/maxymnaumchyk\"\u003e\u003ccode\u003e@​maxymnaumchyk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3811\"\u003escikit-hep/awkward#3811\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug-fixes and performance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: incorrect type passed down for the \u003ccode\u003emergeastable\u003c/code\u003e argument by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3779\"\u003escikit-hep/awkward#3779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: fix \u003ccode\u003eak.validity_error\u003c/code\u003e for typetracer-backed layouts with unknown length by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3784\"\u003escikit-hep/awkward#3784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: make \u003ccode\u003eak.enforce_type\u003c/code\u003e work with typetracers by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3764\"\u003escikit-hep/awkward#3764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003eArrayBuilder.show()\u003c/code\u003e formatter forwarding by \u003ca href=\"https://github.com/X0708a\"\u003e\u003ccode\u003e@​X0708a\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3796\"\u003escikit-hep/awkward#3796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: fix and test \u003ccode\u003eForm.length_zero/one_array()\u003c/code\u003e by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3810\"\u003escikit-hep/awkward#3810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: make named axis thread-safe and start testing using multiple threads in CI by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3805\"\u003escikit-hep/awkward#3805\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: use codecov token by \u003ca href=\"https://github.com/ariostas\"\u003e\u003ccode\u003e@​ariostas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3769\"\u003escikit-hep/awkward#3769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(ci): use macOS to test ML dependencies by \u003ca href=\"https://github.com/ariostas\"\u003e\u003ccode\u003e@​ariostas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3774\"\u003escikit-hep/awkward#3774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump the actions group across 1 directory with 5 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/scikit-hep/awkward/pull/3778\"\u003escikit-hep/awkward#3778\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: xfail failing cudf tests until fixed by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3781\"\u003escikit-hep/awkward#3781\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/scikit-hep/awkward/commit/e4be9febc76c610eea671ef3f0e3084cb206da49\"\u003e\u003ccode\u003ee4be9fe\u003c/code\u003e\u003c/a\u003e awkward 2.9.0 and awkward-cpp 52\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/254fcb3cacf113aa20f4c959e9aa6d0d3f5d8e56\"\u003e\u003ccode\u003e254fcb3\u003c/code\u003e\u003c/a\u003e ci: drop cp/pp build selectors (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3854\"\u003e#3854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/0b5ee6e87d2a6d475c58ee0b3ff2106b415311fd\"\u003e\u003ccode\u003e0b5ee6e\u003c/code\u003e\u003c/a\u003e awkward 2.8.13 and awkward-cpp 52\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/c8c9cff788a1874fb47c87f90e97e3742c09bd85\"\u003e\u003ccode\u003ec8c9cff\u003c/code\u003e\u003c/a\u003e refactor: improve \u003ccode\u003eak.to_cudf\u003c/code\u003e errors and documentation (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3850\"\u003e#3850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/303bcdd2077f5e778b688dcd324696c215c1dcd0\"\u003e\u003ccode\u003e303bcdd\u003c/code\u003e\u003c/a\u003e fix: use \u003ccode\u003eset_mask\u003c/code\u003e instead of \u003ccode\u003eset_base_mask\u003c/code\u003e in \u003ccode\u003eto_cudf\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/1e1ca0ceccc6a330e23f047d68ba8befa1c4c085\"\u003e\u003ccode\u003e1e1ca0c\u003c/code\u003e\u003c/a\u003e docs: document named-axis support for axis in high-level operations (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3823\"\u003e#3823\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/d2fac8d2645f26c625ddec204e377a30219c276c\"\u003e\u003ccode\u003ed2fac8d\u003c/code\u003e\u003c/a\u003e chore: delete old \u003ccode\u003eVirtualArray\u003c/code\u003e class (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3848\"\u003e#3848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/4da20e63e8ff613280b3c82c5712deaaf36d84fb\"\u003e\u003ccode\u003e4da20e6\u003c/code\u003e\u003c/a\u003e docs: add automated contributions policy to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3831\"\u003e#3831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/02d8408c4a36097064a3e66749dcc26a3cccb626\"\u003e\u003ccode\u003e02d8408\u003c/code\u003e\u003c/a\u003e ci: drop 3.13t (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3843\"\u003e#3843\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/675ff70fb896cb39a7ab59cddc4020c31d7628e3\"\u003e\u003ccode\u003e675ff70\u003c/code\u003e\u003c/a\u003e build: drop support for PyPy (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3835\"\u003e#3835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scikit-hep/awkward-1.0/compare/v2.8.11...v2.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `awkward-cpp` from 51 to 52\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/scikit-hep/awkward-1.0/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.11.12 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.11.12...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 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.1.7...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `comtypes` from 1.4.14 to 1.4.15\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/enthought/comtypes/releases\"\u003ecomtypes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eTYPE_E_ELEMENTNOTFOUND\u003c/code\u003e HRESULT constant value. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003eITypeInfo\u003c/code\u003e testing in \u003ccode\u003etest_typeinfo.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImprove type hints for for generated dispmethods and properties. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance tests for generated type hints. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove Internet Explorer dependency from \u003ccode\u003etest_QueryService.py\u003c/code\u003e and \u003ccode\u003etest_casesensitivity.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etest_ie.py\u003c/code\u003e to \u003ccode\u003etest_eventinterface.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSyntaxError\u003c/code\u003e in \u003ccode\u003eDispMethodAnnotator\u003c/code\u003e signature generation. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etest_msi.py\u003c/code\u003e to \u003ccode\u003etest_puredispatch.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etest_wmi.py\u003c/code\u003e to \u003ccode\u003etest_variant_outparam.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReplace the module-level skip with individual \u003ccode\u003e@skip\u003c/code\u003e decorators on the test methods in \u003ccode\u003etest_eventinterface.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd tests for \u003ccode\u003estdole.IPicture\u003c/code\u003e creation through \u003ccode\u003eIStream\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImprove enum testing in \u003ccode\u003etest_client.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRevive and enhance \u003ccode\u003etest_outparam\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003etest_stream\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003etest_storage\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003emalloc\u003c/code\u003e module. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance and refactor COM moniker tests. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRefine type hints and enhance tests for \u003ccode\u003eclient.GetClassObject\u003c/code\u003e, \u003ccode\u003eCoGetClassObject\u003c/code\u003e and \u003ccode\u003eIClassFactory\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eITypeInfo.AddressOfMember\u003c/code\u003e with tests and clarifications. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003eITypeComp.Bind\u003c/code\u003e tests and type hints. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIntroduce warnings for Python 3.15 enum compatibility. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/enthought/comtypes/blob/main/CHANGES.txt\"\u003ecomtypes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.4.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eTYPE_E_ELEMENTNOTFOUND\u003c/code\u003e HRESULT constant value. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003eITypeInfo\u003c/code\u003e testing in \u003ccode\u003etest_typeinfo.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImprove type hints for for generated dispmethods and properties. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance tests for generated type hints. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove Internet Explorer dependency from \u003ccode\u003etest_QueryService.py\u003c/code\u003e and \u003ccode\u003etest_casesensitivity.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etest_ie.py\u003c/code\u003e to \u003ccode\u003etest_eventinterface.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSyntaxError\u003c/code\u003e in \u003ccode\u003eDispMethodAnnotator\u003c/code\u003e signature generation. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etest_msi.py\u003c/code\u003e to \u003ccode\u003etest_puredispatch.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etest_wmi.py\u003c/code\u003e to \u003ccode\u003etest_variant_outparam.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReplace the module-level skip with individual \u003ccode\u003e@skip\u003c/code\u003e decorators on the test methods in \u003ccode\u003etest_eventinterface.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd tests for \u003ccode\u003estdole.IPicture\u003c/code\u003e creation through \u003ccode\u003eIStream\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImprove enum testing in \u003ccode\u003etest_client.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRevive and enhance \u003ccode\u003etest_outparam\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003etest_stream\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003etest_storage\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003emalloc\u003c/code\u003e module. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance and refactor COM moniker tests. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRefine type hints and enhance tests for \u003ccode\u003eclient.GetClassObject\u003c/code\u003e, \u003ccode\u003eCoGetClassObject\u003c/code\u003e and \u003ccode\u003eIClassFactory\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eITypeInfo.AddressOfMember\u003c/code\u003e with tests and clarifications. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003eITypeComp.Bind\u003c/code\u003e tests and type hints. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIntroduce warnings for Python 3.15 enum compatibility. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\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/enthought/comtypes/commit/07ab1f45c1c7b474546a582ff81640886259c675\"\u003e\u003ccode\u003e07ab1f4\u003c/code\u003e\u003c/a\u003e Bump version and update change log for 1.4.15 (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/908\"\u003e#908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/7008819f79e6a2d3654b5d82e5f24bb88e886b8a\"\u003e\u003ccode\u003e7008819\u003c/code\u003e\u003c/a\u003e Introduce warnings for Python 3.15 enum compatibility and improve test stabil...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/1fc72e0f77918cdf3cfc6a2ebd7ebf9a685da079\"\u003e\u003ccode\u003e1fc72e0\u003c/code\u003e\u003c/a\u003e Enhance \u003ccode\u003eITypeComp.Bind\u003c/code\u003e tests and type hints. (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/906\"\u003e#906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/1aab6ae9b3d23a42d1e5d84c97ee45435c346e8b\"\u003e\u003ccode\u003e1aab6ae\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003eITypeInfo.AddressOfMember\u003c/code\u003e with tests and clarifications. (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/905\"\u003e#905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/921b6990aa14fda9476970bad03eb11fb0333d2d\"\u003e\u003ccode\u003e921b699\u003c/code\u003e\u003c/a\u003e Refine type hints and enhance dynamic dispatch tests for `client.GetClassObje...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/af2872f943eb1655ff8f1e0c78cb8b2947ec36c3\"\u003e\u003ccode\u003eaf2872f\u003c/code\u003e\u003c/a\u003e Improve type hints and tests for \u003ccode\u003eIClassFactory.CreateInstance\u003c/code\u003e and `CoGetCla...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/3ff96695881bf3257ddd8af00088cf0ee90cd5c4\"\u003e\u003ccode\u003e3ff9669\u003c/code\u003e\u003c/a\u003e Enhance and refactor COM moniker and binding context tests (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/902\"\u003e#902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/1f5c5d572560425b025d33e522344128a0ea27dd\"\u003e\u003ccode\u003e1f5c5d5\u003c/code\u003e\u003c/a\u003e Enhance memory management features and \u003ccode\u003eIStorage\u003c/code\u003e/\u003ccode\u003eIStream\u003c/code\u003e tests. (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/901\"\u003e#901\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/8c3bdecf1c5bf97e9502e9a2513a6e1a65136d27\"\u003e\u003ccode\u003e8c3bdec\u003c/code\u003e\u003c/a\u003e Introduce \u003ccode\u003emalloc\u003c/code\u003e module and enhance COM memory management tests. (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/899\"\u003e#899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/baef7730aa928caaa481b848e50a9f257b307e32\"\u003e\u003ccode\u003ebaef773\u003c/code\u003e\u003c/a\u003e Introduce \u003ccode\u003emalloc\u003c/code\u003e module (part 1) (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/900\"\u003e#900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/enthought/comtypes/compare/1.4.14...1.4.15\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `contourpy` from 1.3.2 to 1.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/contourpy/contourpy/releases\"\u003econtourpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.3.3\u003c/h2\u003e\n\u003cp\u003eContourPy 1.3.3 is a compatibility release adding support for CPython 3.14 and Windows on ARM.\u003c/p\u003e\n\u003cp\u003eThis release supports CPython 3.11 to 3.14, and PyPy 3.11.\u003c/p\u003e\n\u003cp\u003eCompatibility:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Windows on ARM (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/476\"\u003e#476\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/477\"\u003e#477\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/483\"\u003e#483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump minimum supported Python to 3.11 (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/478\"\u003e#478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/479\"\u003e#479\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/485\"\u003e#485\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/490\"\u003e#490\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCode improvements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate type annotations for \u003ccode\u003ebokeh\u003c/code\u003e 3.7.3 (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/475\"\u003e#475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport type annotation changes in \u003ccode\u003enumpy\u003c/code\u003e 2.3.0 (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/480\"\u003e#480\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBuild, testing and CI improvements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove Python 3.13.3 pin (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/487\"\u003e#487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI install \u003ccode\u003enumpy\u003c/code\u003e 2.3.2 wheels from PyPI for Python 3.14 and Windows ARM (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/contourpy/contourpy/blob/main/docs/changelog.rst\"\u003econtourpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.3 (2025-07-26)\u003c/h2\u003e\n\u003cp\u003eContourPy 1.3.3 is a compatibility release adding support for CPython 3.14 and Windows on ARM.\u003c/p\u003e\n\u003cp\u003eThis release supports CPython 3.11 to 3.14, and PyPy 3.11.\u003c/p\u003e\n\u003cp\u003eCompatibility:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Windows on ARM (:pr:\u003ccode\u003e476\u003c/code\u003e, :pr:\u003ccode\u003e477\u003c/code\u003e, :pr:\u003ccode\u003e483\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBump minimum supported Python to 3.11 (:pr:\u003ccode\u003e[#478](https://github.com/contourpy/contourpy/issues/478)\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 (:pr:\u003ccode\u003e479\u003c/code\u003e, :pr:\u003ccode\u003e485\u003c/code\u003e, :pr:\u003ccode\u003e490\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCode improvements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate type annotations for \u003ccode\u003ebokeh\u003c/code\u003e 3.7.3 (:pr:\u003ccode\u003e475\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport type annotation changes in \u003ccode\u003enumpy\u003c/code\u003e 2.3.0 (:pr:\u003ccode\u003e480\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBuild, testing and CI improvements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove Python 3.13.3 pin (:pr:\u003ccode\u003e487\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCI install \u003ccode\u003enumpy\u003c/code\u003e 2.3.2 wheels from PyPI for Python 3.14 and Windows ARM (:pr:\u003ccode\u003e488\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/contourpy/contourpy/commit/713550ab7ea74e6f4e813e6947b9b0c84d7ccb7b\"\u003e\u003ccode\u003e713550a\u003c/code\u003e\u003c/a\u003e Prepare for v1.3.3 release (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/491\"\u003e#491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contourpy/contourpy/commit/9fa322750757cf080e2fa54e7d6597c10dfe75c0\"\u003e\u003ccode\u003e9fa3227\u003c/code\u003e\u003c/a\u003e Reinstate image tests for python 3.14 (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/490\"\u003e#490\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contourpy/contourpy/commit/e818810855fead1080260c2e4c1cfa254e99a7df\"\u003e\u003ccode\u003ee818810\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel to 3.1.1 (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/489\"\u003e#489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contourpy/contourpy/commit/d8007917fe0461384559241bee7dd31a591a049b\"\u003e\u003ccode\u003ed800791\u003c/code\u003e\u003c/a\u003e CI install numpy 2.3.2 wheels from pypi for python 3.14 and windows arm (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contourpy/contourpy/commit/881ca7fde63afd4ed0178bb7f3eaed3e56680f0d\"\u003e\u003ccode\u003e881ca7f\u003c/code\u003e\u003c/a\u003e Remove 3.13.3 pin (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/487\"\u003e#487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contourpy/contourpy/commit/a58d9d0288935a627f6d695d6eed0dc26dd7ee12\"\u003e\u003ccode\u003ea58d9d0\u003c/code\u003e\u003c/a\u003e Update mypy to 1.17.0 (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contourpy/contourpy/commit/a32405f294eb5ee43ed9362d44a132c23e9d6457\"\u003e\u003ccode\u003ea32405f\u003c/code\u003e\u003c/a\u003e Use matplotlib images tests for python 3.14 (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/485\"\u003e#485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contourpy/contourpy/commit/33d9d9dba2111937c72fc53af247002871080c18\"\u003e\u003ccode\u003e33d9d9d\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.0.0 to 3.0.1 in the actions group (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/484\"\u003e#484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contourpy/contourpy/commit/154fbfd0df5fbd52d8bde3e65771d180687ecc70\"\u003e\u003ccode\u003e154fbfd\u003c/code\u003e\u003c/a\u003e Disable nightly wheels test on Windows on ARM (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/483\"\u003e#483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contourpy/contourpy/commit/20936c532c2d8e36e2a8aa078d6e8d9b4787e38e\"\u003e\u003ccode\u003e20936c5\u003c/code\u003e\u003c/a\u003e Support python 3.14 (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/479\"\u003e#479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/contourpy/contourpy/compare/v1.3.2...v1.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 46.0.3 to 46.0.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.5 - 2026-02-10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* An attacker could create a malicious public key that reveals portions of your\n  private key when using certain uncommon elliptic curves (binary curves).\n  This version now includes additional security checks to prevent this attack.\n  This issue only affects binary elliptic curves, which are rarely used in\n  real-world applications. Credit to **XlabAI Team of Tencent Xuanwu Lab and\n  Atuin Automated Vulnerability Discovery Engine** for reporting the issue.\n  **CVE-2026-26007**\n* Support for ``SECT*`` binary elliptic curves is deprecated and will be\n  removed in the next release.\n\u003cp\u003e.. v46-0-4:\u003c/p\u003e\n\u003cp\u003e46.0.4 - 2026-01-27\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDropped support for win_arm64 wheels\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.5.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-3:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/06e120e682cb200e3f7050c02f0bcdac90c4c6ad\"\u003e\u003ccode\u003e06e120e\u003c/code\u003e\u003c/a\u003e bump version for 46.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14289\"\u003e#14289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/0eebb9dbb6343d9bc1d91e5a2482ed4e054a6d8c\"\u003e\u003ccode\u003e0eebb9d\u003c/code\u003e\u003c/a\u003e EC check key on cofactor \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14287\"\u003e#14287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/bedf6e186b814f69a3f54f51252c23a71d44ed2e\"\u003e\u003ccode\u003ebedf6e1\u003c/code\u003e\u003c/a\u003e fix openssl version on 46 branch (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14220\"\u003e#14220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e6f44fc8e6391f05d719fb9d369692325b87a471\"\u003e\u003ccode\u003ee6f44fc\u003c/code\u003e\u003c/a\u003e bump for 46.0.4 and drop win arm64 due to CI issues (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14217\"\u003e#14217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.3...46.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fsspec` from 2025.12.0 to 2026.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/e6668a146cd07b9f50530c49ea3916d8ab13e169\"\u003e\u003ccode\u003ee6668a1\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1989\"\u003e#1989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/b6bd0752c1f133fb5005b4b21c065bde76f2c52b\"\u003e\u003ccode\u003eb6bd075\u003c/code\u003e\u003c/a\u003e fix parquet tests (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1988\"\u003e#1988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/6f825f3ba989893a283cb1f84abcb87953b4ca96\"\u003e\u003ccode\u003e6f825f3\u003c/code\u003e\u003c/a\u003e feat(compression): recover the support of the zstandard (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1986\"\u003e#1986\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1987\"\u003e#1987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/1de5e1db3bf6ba984a1386008f3fff97a406ec90\"\u003e\u003ccode\u003e1de5e1d\u003c/code\u003e\u003c/a\u003e Remove prefetching loop (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1984\"\u003e#1984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/9603a7c8329c7c24b476c77dcf924dda572113f0\"\u003e\u003ccode\u003e9603a7c\u003c/code\u003e\u003c/a\u003e fixes to parquet and known cache (\u003ca hre...\n\n_Description has been truncated_","html_url":"https://github.com/FreeCAD/Addons/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreeCAD%2FAddons/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"},{"uuid":"3961657464","node_id":"PR_kwDORTuhwc7Ez_no","number":9,"state":"open","title":"Update pyproj requirement from \u003c3.7.0 to \u003c3.8.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-19T08:37:11.000Z","updated_at":"2026-02-19T08:37:11.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"pyproj","old_version":"\u003c3.7.0","new_version":"\u003c3.8.0","repository_url":"https://github.com/pyproj4/pyproj"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [pyproj](https://github.com/pyproj4/pyproj) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.22 to 2.23 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/pyproj4/pyproj/pull/1479\"\u003epyproj4/pyproj#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Only import time.perf_counter by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1480\"\u003epyproj4/pyproj#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1481\"\u003epyproj4/pyproj#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Python 3.11+ by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1483\"\u003epyproj4/pyproj#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.1 to 0.6.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/pyproj4/pyproj/pull/1488\"\u003epyproj4/pyproj#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: update doc geometry_area_perimeter by \u003ca href=\"https://github.com/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Remove 'noqa: E501' from docstrings by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epyproj.crs: add imports to \u003cstrong\u003eall\u003c/strong\u003e by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1494\"\u003epyproj4/pyproj#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: replace black and isort with ruff format and lint by \u003ca href=\"https://github.com/mwtoews\"\u003e\u003ccode\u003e@​mwtoews\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1496\"\u003epyproj4/pyproj#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUILD/CI: Add win_arm64 wheel build by \u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.23 to 3.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/pyproj4/pyproj/pull/1502\"\u003epyproj4/pyproj#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 3.0.0 to 3.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/pyproj4/pyproj/pull/1505\"\u003epyproj4/pyproj#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBLD: Enable free-threading compatibility by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1512\"\u003epyproj4/pyproj#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add 3.13 free-threading wheels by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1514\"\u003epyproj4/pyproj#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-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/pyproj4/pyproj/pull/1520\"\u003epyproj4/pyproj#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1519\"\u003epyproj4/pyproj#1519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout 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/pyproj4/pyproj/pull/1521\"\u003epyproj4/pyproj#1521\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/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.11 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Add CRS imports to \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add win_arm64 wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.13 free-threading wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.14 and 3.14 free-threading wheels\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Add wheels for musllinux (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1477\"\u003e#1477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1446\"\u003e#1446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff \u0026amp; lint fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1455\"\u003e#1455\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1456\"\u003e#1456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.4.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1423\"\u003e#1423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.10 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1357\"\u003e#1357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.2 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add :meth:\u003ccode\u003eCRS.is_deprecated\u003c/code\u003e and :meth:\u003ccode\u003eCRS.get_non_deprecated\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1383\"\u003e#1383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePERF: thread local context (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add runtime \u0026amp; compiled PROJ versions (discussion \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1420\"\u003e#1420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Handle changes to HotineObliqueMercatorBConversion (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1429\"\u003e#1429\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.3.0 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Remove pkg_resources from setup.py (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Cython 3 compatibility fixes (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1321\"\u003e#1321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.9 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1111\"\u003e#1111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.2.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1291\"\u003e#1291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added allow_superseded kwargs to :class:\u003ccode\u003epyproj.transformer.TransformerGroup\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1269\"\u003e#1269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added :meth:\u003ccode\u003eCRS.to_2d\u003c/code\u003e to demote 3D CRS to 2D (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1266\"\u003e#1266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added parameter \u003ccode\u003eoutput_axis_rule\u003c/code\u003e to :meth:\u003ccode\u003eCRS.to_wkt\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1287\"\u003e#1287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: fix Geod.npts NaN handling (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1282\"\u003e#1282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.0 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1223\"\u003e#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: PROJ 9.2 in wheels (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1243\"\u003e#1243\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/pyproj4/pyproj/commit/f16037d2c45c3274ef28b828998267c3390393c8\"\u003e\u003ccode\u003ef16037d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/878615decadbde676f9acc82bce9763d62fbacbe\"\u003e\u003ccode\u003e878615d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4813b2db7c0fb92f598748bb1aca85288765a354\"\u003e\u003ccode\u003e4813b2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1521\"\u003e#1521\u003c/a\u003e from pyproj4/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/66b8e0b2fb2f93a83be484cd3ae741c140123930\"\u003e\u003ccode\u003e66b8e0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/ff97ab97b5bfd02a714bf84ebd847ec366da48f8\"\u003e\u003ccode\u003eff97ab9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1519\"\u003e#1519\u003c/a\u003e from djhoese/remove-old-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3692f8aa7fc9373927178fa1774ae69811387cfb\"\u003e\u003ccode\u003e3692f8a\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1520\"\u003e#1520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f3815db4169e399271d87ce9970175edb4b4170b\"\u003e\u003ccode\u003ef3815db\u003c/code\u003e\u003c/a\u003e MNT: Update history with test removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e5ee13f82067e9c577a1bb5e2484ed91c5f96c22\"\u003e\u003ccode\u003ee5ee13f\u003c/code\u003e\u003c/a\u003e TST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26b3cdb7d68e677ebfec62549288eea02bc38ed9\"\u003e\u003ccode\u003e26b3cdb\u003c/code\u003e\u003c/a\u003e MNT: 3.7.2rc0 and update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0cd586a0fb7094b4f8fb43fe34dd2e249aec0da0\"\u003e\u003ccode\u003e0cd586a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1514\"\u003e#1514\u003c/a\u003e from djhoese/ci-313-ft\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/v2.0.2...3.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/bhavikpatel/geonode_nepal_ithari/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhavikpatel%2Fgeonode_nepal_ithari/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"},{"uuid":"3931157723","node_id":"PR_kwDOKK73g87DPh1B","number":163,"state":"open","title":"Bump the non-major group with 3 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-12T10:54:33.000Z","updated_at":"2026-02-12T11:40:23.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"non-major","update_count":3,"packages":[{"name":"pyproj","old_version":"3.7.0","new_version":"3.7.1","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"rich-argparse","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/hamdanal/rich-argparse"},{"name":"shapely","old_version":"2.0.6","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"}],"path":null,"ecosystem":"pip"},"body":"Bumps the non-major group with 3 updates: [pyproj](https://github.com/pyproj4/pyproj), [rich-argparse](https://github.com/hamdanal/rich-argparse) and [shapely](https://github.com/shapely/shapely).\n\nUpdates `pyproj` from 3.7.0 to 3.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.1 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1477\"\u003epyproj4/pyproj#1477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in  \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1475\"\u003epyproj4/pyproj#1475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: Add wheels for musllinux by \u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead. by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1450\"\u003epyproj4/pyproj#1450\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1452\"\u003epyproj4/pyproj#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 by \u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1455\"\u003epyproj4/pyproj#1455\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Disallow type error without code by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1456\"\u003epyproj4/pyproj#1456\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/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther contributions:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sebastic\"\u003e\u003ccode\u003e@​sebastic\u003c/code\u003e\u003c/a\u003e - testing Debian builds\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.0...3.7.1\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.0...3.7.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.1rc0\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\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/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Add wheels for musllinux (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1477\"\u003e#1477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1446\"\u003e#1446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff \u0026amp; lint fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1455\"\u003e#1455\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1456\"\u003e#1456\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/pyproj4/pyproj/commit/0aa1b386790d9a0b6289a098bc6acd0d1f222984\"\u003e\u003ccode\u003e0aa1b38\u003c/code\u003e\u003c/a\u003e DOC: Update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26cd06365dcc606ab6ee1e8e8a27a77fa85d96b1\"\u003e\u003ccode\u003e26cd063\u003c/code\u003e\u003c/a\u003e MNT: version 3.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e91f72fdea6cc788c8d4687abcb316a56cd83a7a\"\u003e\u003ccode\u003ee91f72f\u003c/code\u003e\u003c/a\u003e DOC: Remove gitter references for questions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/5a6f6888edbbd51f2beafb01d7775de79f5b1168\"\u003e\u003ccode\u003e5a6f688\u003c/code\u003e\u003c/a\u003e CI: remove appveyor.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/438c17ff9dd1159dd28ced4ccbbc9c8c926ccc85\"\u003e\u003ccode\u003e438c17f\u003c/code\u003e\u003c/a\u003e DOC: Remove gitter badge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f5176df619f48625ff29725ca52f61db01bef174\"\u003e\u003ccode\u003ef5176df\u003c/code\u003e\u003c/a\u003e DOC: update contributors \u0026amp; remove appveyor badge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/8cd6ea69f08960ce405bd629e16f51d521e2a6be\"\u003e\u003ccode\u003e8cd6ea6\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e as a contributor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/fdd84f642561370d1b45c098965ac393c2a80c82\"\u003e\u003ccode\u003efdd84f6\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e as a contributor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0a18d5570e22b03eb751a63e52d7ccfb2e3c80d0\"\u003e\u003ccode\u003e0a18d55\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e as a contributor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/a742bb9b29b9e4389046c88fa17155d2b26808ce\"\u003e\u003ccode\u003ea742bb9\u003c/code\u003e\u003c/a\u003e MNT: 3.7.1rc0 \u0026amp; update history\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.0...3.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rich-argparse` from 1.5.2 to 1.7.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hamdanal/rich-argparse/releases\"\u003erich-argparse's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.7.2\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/171\"\u003e#171\u003c/a\u003e Fix colors overlap on Py 3.14\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hamdanal/rich-argparse/compare/v1.7.1...v1.7.2\"\u003ehttps://github.com/hamdanal/rich-argparse/compare/v1.7.1...v1.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.7.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/162\"\u003e#162\u003c/a\u003e Fix TypeError on nightly builds (Python 3.14.0a7+) due to new \u003ccode\u003eHelpFormatter\u003c/code\u003e arguments. The \u003ccode\u003econsole\u003c/code\u003e parameter is now keyword-only.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hamdanal/rich-argparse/compare/v1.7.0...v1.7.1\"\u003ehttps://github.com/hamdanal/rich-argparse/compare/v1.7.0...v1.7.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.7.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis is the last release to support Python 3.8\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eIntroducing \u003ccode\u003eauto-rich-argparse\u003c/code\u003e 🚀\u003c/h2\u003e\n\u003cp\u003eImprove the help output of your favorite  argparse command line tool by simply installing \u003ccode\u003eauto-rich-argparse\u003c/code\u003e in its environment. Try it out with your favorite tool using:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003euvx --with auto-rich-argparse \u0026lt;YOUR_FAVORITE_TOOL\u0026gt; --help\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eRead more at \u003ca href=\"https://github.com/hamdanal/auto-rich-argparse\"\u003ehttps://github.com/hamdanal/auto-rich-argparse\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eIncoming Change in Version 2.0\u003c/h2\u003e\n\u003cp\u003eIn rich-argparse 2.0, rich markup will become opt in instead of opt out. This means usages like this:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eparser.add_argument(\u0026quot;--foo\u0026quot;, help=\u0026quot;[red]This text is in red[/]\u0026quot;)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eWill need to set the option \u003ccode\u003eRichHelpFormatter.help_markup = True\u003c/code\u003e to work as expected. Please see \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/151\"\u003e#151\u003c/a\u003e for context and to give feedback.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis release adds new features and fixes a few bugs.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for django commands in the new \u003ccode\u003erich_argparse.django\u003c/code\u003e module. Read more at \u003ca href=\"https://github.com/hamdanal/rich-argparse#django-support\"\u003ehttps://github.com/hamdanal/rich-argparse#django-support\u003c/a\u003e. Contributed in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/149\"\u003ehamdanal/rich-argparse#149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eParagraphRichHelpFormatter\u003c/code\u003e, a formatter that preserves paragraph breaks, in the new \u003ccode\u003erich_argparse.contrib\u003c/code\u003e module. Read more at \u003ca href=\"https://github.com/hamdanal/rich-argparse#additional-formatters\"\u003ehttps://github.com/hamdanal/rich-argparse#additional-formatters\u003c/a\u003e. Contributed in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/147\"\u003ehamdanal/rich-argparse#147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValueError\u003c/code\u003e when using \u003ccode\u003e%(default)s\u003c/code\u003e inside square brackets and \u003ccode\u003ehelp_markup\u003c/code\u003e is enabled. Contributed in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/153\"\u003ehamdanal/rich-argparse#153\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/154\"\u003ehamdanal/rich-argparse#154\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not highlight --options inside backticks. Contributed in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/142\"\u003ehamdanal/rich-argparse#142\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStart testing on Python 3.14 by \u003ca href=\"https://github.com/hamdanal\"\u003e\u003ccode\u003e@​hamdanal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/137\"\u003ehamdanal/rich-argparse#137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse native toml for tox configuration by \u003ca href=\"https://github.com/hamdanal\"\u003e\u003ccode\u003e@​hamdanal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/138\"\u003ehamdanal/rich-argparse#138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esdist: include the tests by \u003ca href=\"https://github.com/mr-c\"\u003e\u003ccode\u003e@​mr-c\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/139\"\u003ehamdanal/rich-argparse#139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReorganize the project modules by \u003ca href=\"https://github.com/hamdanal\"\u003e\u003ccode\u003e@​hamdanal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/144\"\u003ehamdanal/rich-argparse#144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun skipped test on Python 3.13 by \u003ca href=\"https://github.com/hamdanal\"\u003e\u003ccode\u003e@​hamdanal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/145\"\u003ehamdanal/rich-argparse#145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace tox by uv by \u003ca href=\"https://github.com/hamdanal\"\u003e\u003ccode\u003e@​hamdanal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/146\"\u003ehamdanal/rich-argparse#146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/148\"\u003ehamdanal/rich-argparse#148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd python nightly workflow by \u003ca href=\"https://github.com/hamdanal\"\u003e\u003ccode\u003e@​hamdanal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/150\"\u003ehamdanal/rich-argparse#150\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/hamdanal/rich-argparse/blob/main/CHANGELOG.md\"\u003erich-argparse's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.7.2 - 2025-11-01\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/171\"\u003ePR-171\u003c/a\u003e\nFix colors overlapping with Python 3.14.0+ which enabled colors by default in the help formatter.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.7.1 - 2025-05-25\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/162\"\u003ePR-162\u003c/a\u003e\nFix TypeError on nightly builds (Python 3.14.0a7+) due to new \u003ccode\u003eHelpFormatter\u003c/code\u003e arguments.\nThe \u003ccode\u003econsole\u003c/code\u003e parameter is now keyword-only.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.7.0 - 2025-02-08\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/149\"\u003ePR-149\u003c/a\u003e\nAdd support for django commands in the new \u003ccode\u003erich_argparse.django\u003c/code\u003e module. Read more at\n\u003ca href=\"https://github.com/hamdanal/rich-argparse#django-support\"\u003ehttps://github.com/hamdanal/rich-argparse#django-support\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/140\"\u003eGH-140\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/147\"\u003ePR-147\u003c/a\u003e\nAdd \u003ccode\u003eParagraphRichHelpFormatter\u003c/code\u003e, a formatter that preserves paragraph breaks, in the new\n\u003ccode\u003erich_argparse.contrib\u003c/code\u003e module. Read more at\n\u003ca href=\"https://github.com/hamdanal/rich-argparse#additional-formatters\"\u003ehttps://github.com/hamdanal/rich-argparse#additional-formatters\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/152\"\u003eGH-152\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/153\"\u003ePR-153\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/154\"\u003ePR-154\u003c/a\u003e\nFix \u003ccode\u003eValueError\u003c/code\u003e when using \u003ccode\u003e%(default)s\u003c/code\u003e inside square brackets and \u003ccode\u003ehelp_markup\u003c/code\u003e is enabled.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/141\"\u003eGH-141\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/142\"\u003ePR-142\u003c/a\u003e\nDo not highlight --options inside backticks.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.6.0 - 2024-11-02\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/133\"\u003eGH-133\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/135\"\u003ePR-135\u003c/a\u003e\nFix help preview generation with newer releases of rich.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/130\"\u003eGH-130\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/131\"\u003ePR-131\u003c/a\u003e\nFix a bug that caused long group titles to wrap.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/125\"\u003eGH-125\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/127\"\u003eGH-127\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/128\"\u003ePR-128\u003c/a\u003e\nRedesign metavar styling to fix broken colors of usage when some metavars are wrapped to multiple\nlines. The brackets and spaces of metavars are no longer colored.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/0ce89398edb647ff2a08333671ea35bbd51db7c2\"\u003e\u003ccode\u003e0ce8939\u003c/code\u003e\u003c/a\u003e Version 1.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/d582eddefe2033bdd8d5a5826a992063f57fc884\"\u003e\u003ccode\u003ed582edd\u003c/code\u003e\u003c/a\u003e Fix colors overlap on Py 3.14 (\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/171\"\u003e#171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/c16116dd828e6fd0fb42c666494668985960f015\"\u003e\u003ccode\u003ec16116d\u003c/code\u003e\u003c/a\u003e Version 1.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/b73cfea6de5f96c7fa5188b9f7d9c373e401f38e\"\u003e\u003ccode\u003eb73cfea\u003c/code\u003e\u003c/a\u003e Fix TypeError on nightly builds (\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/162\"\u003e#162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/91a48c5620e2109cda728dbcd63215684efb09c4\"\u003e\u003ccode\u003e91a48c5\u003c/code\u003e\u003c/a\u003e Version 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/daa91aa2df0e95709de934f04398c8b388e4ea28\"\u003e\u003ccode\u003edaa91aa\u003c/code\u003e\u003c/a\u003e Update pre-commit hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/ef87d9daa3f7acbf37e9a58bf4e15cf3b39300fa\"\u003e\u003ccode\u003eef87d9d\u003c/code\u003e\u003c/a\u003e Tweak warning message for an edge case of default in markup (\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/0afba0a2a826f1f01d838fb048aab067089ad7f1\"\u003e\u003ccode\u003e0afba0a\u003c/code\u003e\u003c/a\u003e Minor updates to the project files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/672f21e18324072fbadba2953ade1d0c7d01b1cb\"\u003e\u003ccode\u003e672f21e\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValueError\u003c/code\u003e when using \u003ccode\u003e%(default)s\u003c/code\u003e inside square brackets and `help_ma...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/f946bb34c51956e380be52edc6f8abda6c21a1b7\"\u003e\u003ccode\u003ef946bb3\u003c/code\u003e\u003c/a\u003e Add python nightly workflow (\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/150\"\u003e#150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hamdanal/rich-argparse/compare/v1.5.2...v1.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shapely` from 2.0.6 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.0.7\u003c/h2\u003e\n\u003cp\u003eShapely 2.0.7 fixes 3 bugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix compilation error on certain Linux platforms, such as Alpine (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/1945\"\u003e#1945\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixes crash when reading nonlinear geometry types (\u003ccode\u003eCircularString\u003c/code\u003e, \u003ccode\u003eCompoundCurve\u003c/code\u003e, \u003ccode\u003eMultiCurve\u003c/code\u003e, \u003ccode\u003eCurvePolygon\u003c/code\u003e, \u003ccode\u003eMultiSurface\u003c/code\u003e) from WKB/WKT with GEOS \u0026gt;= 3.13; these types are not yet supported in Shapely and now raise a \u003ccode\u003eNotImplementedError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2160\"\u003e#2160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix the \u003ccode\u003eproject()\u003c/code\u003e method to return a Python float (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2093\"\u003e#2093\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWheels include GEOS 3.11.4.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-0-7\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-0-7\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/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.0.7 (2025-01-30)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix compilation error on certain Linux platforms, such as Alpine (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/1945\"\u003e#1945\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixes crash when reading nonlinear geometry types (CircularString,\nCompoundCurve, MultiCurve, CurvePolygon, MultiSurface) from WKB/WKT with\nGEOS \u0026gt;= 3.13; these types are not yet supported in Shapely and now raise a\n\u003ccode\u003eNotImplementedError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2160\"\u003e#2160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix the \u003ccode\u003eproject\u003c/code\u003e method to return a Python float (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2093\"\u003e#2093\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/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densify test for latest GEOS main (densify\u0026gt;0.001...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shapely/shapely/compare/2.0.6...2.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/GeodetischeInfrastructuur/geodense/pull/163","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeodetischeInfrastructuur%2Fgeodense/issues/163","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/163/packages"},{"uuid":"3928033811","node_id":"PR_kwDOIoSAbM7DFUmj","number":332,"state":"closed","title":"Bump the pip-updates group across 1 directory with 24 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-17T10:07:33.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-11T18:31:42.000Z","updated_at":"2026-02-17T10:07:34.000Z","time_to_close":488151,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-updates","update_count":24,"packages":[{"name":"beautifulsoup4","old_version":"4.11.1","new_version":"4.14.3"},{"name":"black","old_version":"25.1.0","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"blinker","old_version":"1.7.0","new_version":"1.9.0","repository_url":"https://github.com/pallets-eco/blinker"},{"name":"fido2","old_version":"1.2.0","new_version":"2.1.1","repository_url":"https://github.com/Yubico/python-fido2"},{"name":"flake8","old_version":"7.0.0","new_version":"7.3.0","repository_url":"https://github.com/pycqa/flake8"},{"name":"flake8-bugbear","old_version":"22.10.27","new_version":"25.11.29","repository_url":"https://github.com/PyCQA/flake8-bugbear"},{"name":"flask","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/flask"},{"name":"flask-wtf","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/pallets-eco/flask-wtf"},{"name":"freezegun","old_version":"1.2.2","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"govuk-bank-holidays","old_version":"0.15","new_version":"0.18","repository_url":"https://github.com/ministryofjustice/govuk-bank-holidays"},{"name":"govuk-frontend-jinja","old_version":"3.3.0","new_version":"3.10.0","repository_url":"https://github.com/LandRegistry/govuk-frontend-jinja"},{"name":"humanize","old_version":"4.4.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"isort","old_version":"5.12.0","new_version":"7.0.0","repository_url":"https://github.com/PyCQA/isort"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"2.1.5","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"moto","old_version":"5.1.3","new_version":"5.1.21","repository_url":"https://github.com/getmoto/moto"},{"name":"notifications-python-client","old_version":"8.0.0","new_version":"10.0.1","repository_url":"https://github.com/alphagov/notifications-python-client"},{"name":"pyproj","old_version":"3.6.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-env","old_version":"1.2.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-env"},{"name":"pytz","old_version":"2022.6","new_version":"2025.2","repository_url":"https://github.com/stub42/pytz"},{"name":"requests-mock","old_version":"1.10.0","new_version":"1.12.1","repository_url":"https://github.com/jamielennox/requests-mock"},{"name":"shapely","old_version":"2.1.1","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"wtforms","old_version":"3.1.2","new_version":"3.2.1","repository_url":"https://github.com/pallets-eco/wtforms"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-updates group with 24 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.11.1` | `4.14.3` |\n| [black](https://github.com/psf/black) | `25.1.0` | `26.1.0` |\n| [blinker](https://github.com/pallets-eco/blinker) | `1.7.0` | `1.9.0` |\n| [fido2](https://github.com/Yubico/python-fido2) | `1.2.0` | `2.1.1` |\n| [flake8](https://github.com/pycqa/flake8) | `7.0.0` | `7.3.0` |\n| [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear) | `22.10.27` | `25.11.29` |\n| [flask](https://github.com/pallets/flask) | `3.0.2` | `3.0.3` |\n| [flask-wtf](https://github.com/pallets-eco/flask-wtf) | `1.2.1` | `1.2.2` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.2.2` | `1.5.5` |\n| [govuk-bank-holidays](https://github.com/ministryofjustice/govuk-bank-holidays) | `0.15` | `0.18` |\n| [govuk-frontend-jinja](https://github.com/LandRegistry/govuk-frontend-jinja) | `3.3.0` | `3.10.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.4.0` | `4.15.0` |\n| [isort](https://github.com/PyCQA/isort) | `5.12.0` | `7.0.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `2.1.5` | `3.0.3` |\n| [moto](https://github.com/getmoto/moto) | `5.1.3` | `5.1.21` |\n| [notifications-python-client](https://github.com/alphagov/notifications-python-client) | `8.0.0` | `10.0.1` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.6.1` | `3.7.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [pytest-env](https://github.com/pytest-dev/pytest-env) | `1.2.0` | `1.3.0` |\n| [pytz](https://github.com/stub42/pytz) | `2022.6` | `2025.2` |\n| [requests-mock](https://github.com/jamielennox/requests-mock) | `1.10.0` | `1.12.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.1.1` | `2.1.2` |\n| [wtforms](https://github.com/pallets-eco/wtforms) | `3.1.2` | `3.2.1` |\n\n\nUpdates `beautifulsoup4` from 4.11.1 to 4.14.3\n\nUpdates `black` from 25.1.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.1.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 `blinker` from 1.7.0 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/blinker/releases\"\u003eblinker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.9.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.9.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.9.0/\"\u003ehttps://pypi.org/project/blinker/1.9.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/stable/#version-1-9-0\"\u003ehttps://blinker.readthedocs.io/en/stable/#version-1-9-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/blinker/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/blinker/milestone/1?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e, \u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/173\"\u003e#173\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.2\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.2/\"\u003ehttps://pypi.org/project/blinker/1.8.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-2\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-2\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify type for \u003ccode\u003e_async_wrapper\u003c/code\u003e and \u003ccode\u003e_sync_wrapper\u003c/code\u003e arguments. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/156\"\u003e#156\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.1\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.1/\"\u003ehttps://pypi.org/project/blinker/1.8.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-1\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore identity handling for \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eint\u003c/code\u003e senders. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/148\"\u003e#148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.WeakNamespace\u003c/code\u003e import. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/149\"\u003e#149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.receiver_connected import\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/153\"\u003e#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse types from \u003ccode\u003ecollections.abc\u003c/code\u003e instead of \u003ccode\u003etyping\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/150\"\u003e#150\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully specify exported types as reported by pyright. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/152\"\u003e#152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.0 feature release, which may include new features, remove previously deprecated code, or add new deprecations. The 1.8.x line is now the supported fix branch, support has ended for the 1.7.x line. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.0/\"\u003ehttps://pypi.org/project/blinker/1.8.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-0\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-0\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;blinker\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/128\"\u003e#128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify that the deprecated \u003ccode\u003etemporarily_connected_to\u003c/code\u003e will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated global \u003ccode\u003ereceiver_connected\u003c/code\u003e signal and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated \u003ccode\u003eWeakNamespace\u003c/code\u003e and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eGreatly simplify how the library uses weakrefs. This is a significant change internally but should not affect any public API. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/144\"\u003e#144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose the namespace used by \u003ccode\u003esignal()\u003c/code\u003e as \u003ccode\u003edefault_namespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/145\"\u003e#145\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-eco/blinker/blob/main/CHANGES.rst\"\u003eblinker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e175\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e,\n\u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. :pr:\u003ccode\u003e172\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down.\n:issue:\u003ccode\u003e173\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.2\u003c/h2\u003e\n\u003cp\u003eReleased 2024-05-06\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify type for \u003ccode\u003e_async_wrapper\u003c/code\u003e and \u003ccode\u003e_sync_wrapper\u003c/code\u003e arguments.\n:pr:\u003ccode\u003e156\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.1\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-28\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore identity handling for \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eint\u003c/code\u003e senders. :pr:\u003ccode\u003e148\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.WeakNamespace\u003c/code\u003e import. :pr:\u003ccode\u003e149\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.receiver_connected import\u003c/code\u003e. :pr:\u003ccode\u003e153\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse types from \u003ccode\u003ecollections.abc\u003c/code\u003e instead of \u003ccode\u003etyping\u003c/code\u003e. :pr:\u003ccode\u003e150\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFully specify exported types as reported by pyright. :pr:\u003ccode\u003e152\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;blinker\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e128\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSpecify that the deprecated \u003ccode\u003etemporarily_connected_to\u003c/code\u003e will be removed in\nthe next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated global \u003ccode\u003ereceiver_connected\u003c/code\u003e\nsignal and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated \u003ccode\u003eWeakNamespace\u003c/code\u003e and specify\nthat it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eGreatly simplify how the library uses weakrefs. This is a significant change\ninternally but should not affect any public API. :pr:\u003ccode\u003e144\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eExpose the namespace used by \u003ccode\u003esignal()\u003c/code\u003e as \u003ccode\u003edefault_namespace\u003c/code\u003e.\n:pr:\u003ccode\u003e145\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-eco/blinker/commit/669f3a027828d19786e708b511277fabcd6b9532\"\u003e\u003ccode\u003e669f3a0\u003c/code\u003e\u003c/a\u003e release version 1.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/cfe116fa7912d8dcb0deee4907aa63d1efaadf5b\"\u003e\u003ccode\u003ecfe116f\u003c/code\u003e\u003c/a\u003e try disabling attestions on test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/16e4bd70a19353d9d7cf47e4df7de54936296377\"\u003e\u003ccode\u003e16e4bd7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/174\"\u003e#174\u003c/a\u003e from projectgus/bugfix/weakref_disconnect_shutdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/42561fdf065032f5c39aea04d8c3fb4db93f73f3\"\u003e\u003ccode\u003e42561fd\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;Exception ignored\u0026quot; in weakref callback during interpreter shutdown.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/dcce3e97743494433025e0b68f742f3582b6ba6a\"\u003e\u003ccode\u003edcce3e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e from pallets-eco/drop-python3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/efa95eaa080b0d4a8dcfc46ad1f387ea1ddebd97\"\u003e\u003ccode\u003eefa95ea\u003c/code\u003e\u003c/a\u003e drop support for python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/82305185358d8ce21619ec0f324688a14a89c23b\"\u003e\u003ccode\u003e8230518\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/94f1202f08c6d00a9fe1ecf5c8cba9da84e4b22f\"\u003e\u003ccode\u003e94f1202\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/8c983ecd764e1d113d24522838c2a7312460b7eb\"\u003e\u003ccode\u003e8c983ec\u003c/code\u003e\u003c/a\u003e remove previously deprecated code (\u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/f5915f3bfcd9f9da0caf6cd4858bf68068c52963\"\u003e\u003ccode\u003ef5915f3\u003c/code\u003e\u003c/a\u003e set up pre-commit lite workflow\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/blinker/compare/1.7.0...1.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fido2` from 1.2.0 to 2.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Yubico/python-fido2/releases\"\u003efido2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epython-fido2 2.1.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.1.1 (released 2026-01-19)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Platform detection in fido2.hid module for BSD's.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epython-fido2 2.1.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.1.0 (released 2026-01-14)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCTAP 2.3 support:\n\u003cul\u003e\n\u003cli\u003eAdd new GetInfo fields: enc_cred_store_state.\u003c/li\u003e\n\u003cli\u003eAdd support for pinComplexityPolicy extension.\u003c/li\u003e\n\u003cli\u003eAdd thirdPartyPayment bit to credman.\u003c/li\u003e\n\u003cli\u003eCheck support for config subcommands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eWebAuthn:\n\u003cul\u003e\n\u003cli\u003eAllow UserEntity without 'name' field for improved spec compliance.\u003c/li\u003e\n\u003cli\u003eUpdate MDS3 dataclasses with new fields.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFido2Client:\n\u003cul\u003e\n\u003cli\u003eFallback to PIN after UV_BLOCKED error.\u003c/li\u003e\n\u003cli\u003eImprove preflight handling when message exceeds maximum size.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eWindowsClient:\n\u003cul\u003e\n\u003cli\u003eFix: Parse 'credentialProtectionPolicy' properly.\u003c/li\u003e\n\u003cli\u003eUpdate win_api.py from latest webauthn.h.\u003c/li\u003e\n\u003cli\u003eAdd support for hmac-secret-mc extension.\u003c/li\u003e\n\u003cli\u003eAdd support for hints.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDevelopment:\n\u003cul\u003e\n\u003cli\u003eSwitch from Poetry to uv for project management.\u003c/li\u003e\n\u003cli\u003eAdd pyright and ty for improved type checking.\u003c/li\u003e\n\u003cli\u003eReplace bandit and flake8 with ruff for linting.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epython-fido2 2.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.0.0 (released 2025-05-20)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSee also the migration guide: doc/Migration_1-2.adoc.\u003c/li\u003e\n\u003cli\u003ePython 3.10 or later is now required.\u003c/li\u003e\n\u003cli\u003eWebAuthn dataclasses have been updated to align with the WebAuthn Level 3\nWorking Draft. Constructors now require keyword arguments (\u003ccode\u003ekwargs_only=True\u003c/code\u003e),\nand serialization to/from dictionaries is compatible with standardized JSON\nformats.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003efeatures.webauthn_json_mapping\u003c/code\u003e flag has been removed, as its\nbehavior (standardized JSON mapping) is now default.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFido2Client\u003c/code\u003e and \u003ccode\u003eWindowsClient\u003c/code\u003e constructors now accept a\n\u003ccode\u003eClientDataCollector\u003c/code\u003e instance instead of \u003ccode\u003eorigin\u003c/code\u003e and \u003ccode\u003everify\u003c/code\u003e parameters.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWindowsClient\u003c/code\u003e has been relocated to \u003ccode\u003efido2.client.windows\u003c/code\u003e. Importing this\nclass on non-Windows platforms will now raise an \u003ccode\u003eImportError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFido2Client\u003c/code\u003e methods now return \u003ccode\u003eRegistrationResponse\u003c/code\u003e and\n\u003ccode\u003eAuthenticationResponse\u003c/code\u003e objects, instead of raw attestation/assertion data.\u003c/li\u003e\n\u003cli\u003eCTAP2/WebAuthn extension handling has been redesigned. \u003ccode\u003eFido2Client\u003c/code\u003e now\nexpects a list of \u003ccode\u003eCtap2Extension\u003c/code\u003e instances. Default behavior includes\nextensions commonly supported by browsers.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003efido2.cbor\u003c/code\u003e module's \u003ccode\u003eload_x\u003c/code\u003e and \u003ccode\u003edump_x\u003c/code\u003e functions have been made\nprivate (renamed with a leading underscore) and should not be used directly.\u003c/li\u003e\n\u003cli\u003ePreviously deprecated functions and APIs have been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/Yubico/python-fido2/blob/main/NEWS\"\u003efido2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eVersion 2.1.1 (released 2026-01-19)\n** Fix: Platform detection in fido2.hid module for BSD's.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVersion 2.1.0 (released 2026-01-14)\n** CTAP 2.3 support:\n*** Add new GetInfo fields: enc_cred_store_state.\n*** Add support for pinComplexityPolicy extension.\n*** Add thirdPartyPayment bit to credman.\n*** Check support for config subcommands.\n** WebAuthn:\n*** Allow UserEntity without 'name' field for improved spec compliance.\n*** Update MDS3 dataclasses with new fields.\n** Fido2Client:\n*** Fallback to PIN after UV_BLOCKED error.\n*** Improve preflight handling when message exceeds maximum size.\n** WindowsClient:\n*** Fix: Parse 'credentialProtectionPolicy' properly.\n*** Update win_api.py from latest webauthn.h.\n*** Add support for hmac-secret-mc extension.\n*** Add support for hints.\n** Development:\n*** Switch from Poetry to uv for project management.\n*** Add pyright and ty for improved type checking.\n*** Replace bandit and flake8 with ruff for linting.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVersion 2.0.0 (released 2025-05-20)\n** See also the migration guide: doc/Migration_1-2.adoc.\n** Python 3.10 or later is now required.\n** WebAuthn dataclasses have been updated to align with the WebAuthn Level 3\nWorking Draft. Constructors now require keyword arguments (\u003ccode\u003ekwargs_only=True\u003c/code\u003e),\nand serialization to/from dictionaries is compatible with standardized JSON\nformats.\n** The \u003ccode\u003efeatures.webauthn_json_mapping\u003c/code\u003e flag has been removed, as its\nbehavior (standardized JSON mapping) is now default.\n** \u003ccode\u003eFido2Client\u003c/code\u003e and \u003ccode\u003eWindowsClient\u003c/code\u003e constructors now accept a\n\u003ccode\u003eClientDataCollector\u003c/code\u003e instance instead of \u003ccode\u003eorigin\u003c/code\u003e and \u003ccode\u003everify\u003c/code\u003e parameters.\n** \u003ccode\u003eWindowsClient\u003c/code\u003e has been relocated to \u003ccode\u003efido2.client.windows\u003c/code\u003e. Importing this\nclass on non-Windows platforms will now raise an \u003ccode\u003eImportError\u003c/code\u003e.\n** \u003ccode\u003eFido2Client\u003c/code\u003e methods now return \u003ccode\u003eRegistrationResponse\u003c/code\u003e and\n\u003ccode\u003eAuthenticationResponse\u003c/code\u003e objects, instead of raw attestation/assertion data.\n** CTAP2/WebAuthn extension handling has been redesigned. \u003ccode\u003eFido2Client\u003c/code\u003e now\nexpects a list of \u003ccode\u003eCtap2Extension\u003c/code\u003e instances. Default behavior includes\nextensions commonly supported by browsers.\n** The \u003ccode\u003efido2.cbor\u003c/code\u003e module's \u003ccode\u003eload_x\u003c/code\u003e and \u003ccode\u003edump_x\u003c/code\u003e functions have been made\nprivate (renamed with a leading underscore) and should not be used directly.\n** Previously deprecated functions and APIs have been removed.\n** The \u003ccode\u003e__version__\u003c/code\u003e attribute in \u003ccode\u003efido2/__init__.py\u003c/code\u003e has been removed. Use\n\u003ccode\u003eimportlib.metadata.version('fido2')\u003c/code\u003e to get the package version.\n** Add new GetInfo fields based on CTAP 2.2.\n** Add support for Persistent PinUvAuthToken and encIdentifier.\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/Yubico/python-fido2/commit/0f10447369f147172490e781c57bd5f5b81c5c2b\"\u003e\u003ccode\u003e0f10447\u003c/code\u003e\u003c/a\u003e Prepare version 2.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/ad65653688a1646db4390fb6e862c96282f05992\"\u003e\u003ccode\u003ead65653\u003c/code\u003e\u003c/a\u003e Add comment to avoid accidental change in the future\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/e14b1ea205379d5b5511aad31635bcbf5e11c8f2\"\u003e\u003ccode\u003ee14b1ea\u003c/code\u003e\u003c/a\u003e Merge PR \u003ca href=\"https://redirect.github.com/Yubico/python-fido2/issues/276\"\u003e#276\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/70336138f3226608b1153ea7a10300030723517b\"\u003e\u003ccode\u003e7033613\u003c/code\u003e\u003c/a\u003e Properly detect platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/2a063f11332976cda21d5fee78c7045bb43e76f0\"\u003e\u003ccode\u003e2a063f1\u003c/code\u003e\u003c/a\u003e Merge PR \u003ca href=\"https://redirect.github.com/Yubico/python-fido2/issues/275\"\u003e#275\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/48dca0d3dcc264a6907c25597f88e21438413deb\"\u003e\u003ccode\u003e48dca0d\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/d27a282fe3e0cafbe0b05437bd24666ec5cd97d0\"\u003e\u003ccode\u003ed27a282\u003c/code\u003e\u003c/a\u003e Prepare version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/1c6dc4208bb8eafad3551e31777e14a0128fde9a\"\u003e\u003ccode\u003e1c6dc42\u003c/code\u003e\u003c/a\u003e Improve test cleanup for certain keys\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/c4e086760a9c98198a5d6f1873678f5f6817bc3e\"\u003e\u003ccode\u003ec4e0867\u003c/code\u003e\u003c/a\u003e Fix tests for non-HID devices\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/dd25d385549812dcd181a38e10486fdfab3f6a8d\"\u003e\u003ccode\u003edd25d38\u003c/code\u003e\u003c/a\u003e Bump example deps\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Yubico/python-fido2/compare/1.2.0...2.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8` from 7.0.0 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/c48217e1fc006c2dddd14df54e83b67da15de5cd\"\u003e\u003ccode\u003ec48217e\u003c/code\u003e\u003c/a\u003e Release 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/f9e0f33281d5bb892cae2c674ac398439d99c732\"\u003e\u003ccode\u003ef9e0f33\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1986\"\u003e#1986\u003c/a\u003e from PyCQA/document-f542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6bcdb628597fa2d03494965089ff87a492ffc1e9\"\u003e\u003ccode\u003e6bcdb62\u003c/code\u003e\u003c/a\u003e document F542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/70a15b8890d5bdf8c449ebb1b5259bd0140cc16b\"\u003e\u003ccode\u003e70a15b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1985\"\u003e#1985\u003c/a\u003e from PyCQA/upgrade-deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/4941a3e32e54488698ecbc23993bfeb2a60c0fc5\"\u003e\u003ccode\u003e4941a3e\u003c/code\u003e\u003c/a\u003e upgrade pyflakes / pycodestyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/23e4005c5501999c29e1e3774de7ed18d1e4e22d\"\u003e\u003ccode\u003e23e4005\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1983\"\u003e#1983\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/019424b80d3d7d5d8a2a1638f5877080546e3f46\"\u003e\u003ccode\u003e019424b\u003c/code\u003e\u003c/a\u003e add support for t-strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6b6f3d5fefecc994a06f425c18c3cddc9b71e4a4\"\u003e\u003ccode\u003e6b6f3d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1980\"\u003e#1980\u003c/a\u003e from PyCQA/asottile-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/8dfa6695b4fb1e1401b357367a0a71037d29f6aa\"\u003e\u003ccode\u003e8dfa669\u003c/code\u003e\u003c/a\u003e add rtd sphinx config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/ce3411118382d9332feb2749c8f417d10bfa2584\"\u003e\u003ccode\u003ece34111\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1976\"\u003e#1976\u003c/a\u003e from PyCQA/document-f824\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pycqa/flake8/compare/7.0.0...7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8-bugbear` from 22.10.27 to 25.11.29\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/releases\"\u003eflake8-bugbear's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.11.29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB043: Add new check to state don't call delattr with constant (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/514\"\u003e#514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB042: ignore overloaded init, ignore if str+pickle dunder, improve README\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.10.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB042: New check for reminding to call super().\u003cstrong\u003einit\u003c/strong\u003e in custom exceptions\u003c/li\u003e\n\u003cli\u003eB028: Skip if skip_file_prefixes is used (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB912: New check for \u003ccode\u003emap()\u003c/code\u003e without an explicit \u003ccode\u003estrict=\u003c/code\u003e parameter. (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd python3.14 Support / CI\u003c/li\u003e\n\u003cli\u003eRemove python3.9 support / CI\u003c/li\u003e\n\u003cli\u003eflake8-bugbear now requires at least Python 3.10, like the next release of flake8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.12.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB012 and B025 now also handle try/except* (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip B028 if warnings.warn is called with \u003ccode\u003e*args\u003c/code\u003e or \u003ccode\u003e**kwargs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd B911: itertools.batched without strict= (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReadme has anchors per check (they do not seem to render on GitHub tho)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.10.31\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB041: New dictionary same key AND value check (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/496\"\u003e#496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB037: Fix typo in error message\u003c/li\u003e\n\u003cli\u003eB024: No longer treats assigned class variables as abstract (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/471\"\u003e#471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump required attrs version to 22.2.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.8.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB910: implement to suggest using Counter() instead of defaultdict(int) (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/489\"\u003e#489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB901: Do not trigger with explicit Generator return type (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/481\"\u003e#481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB008: add some comments, rename b008_extend_immutable_calls (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB040: exception with note added not reraised or used (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB039, Add \u003ccode\u003eContextVar\u003c/code\u003e with mutable literal or function call as default\u003c/li\u003e\n\u003cli\u003eB040: Add Exception with added note not reraised. (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRun tests in Python 3.13\u003c/li\u003e\n\u003cli\u003eType annotated code (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/481\"\u003e#481\u003c/a\u003e + \u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/483\"\u003e#483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace hash with unsafe_hash (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.4.26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB909: Fix false positive affecting containers of mutables (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/469\"\u003e#469\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.4.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB950: Add pragma comment to line length ignores (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/463\"\u003e#463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB909: Add more cases to detect + more container mutating functions (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB902: Remove decorators named validator and root_validator from B902 checks (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/459\"\u003e#459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB038: Change B038 to B909 and make it optional (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/456\"\u003e#456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB038: Restrict rule to mutation functions only (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/453\"\u003e#453\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.16\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/a5ace0a2fe0697c42bca1c37cebc3d95e2c10df9\"\u003e\u003ccode\u003ea5ace0a\u003c/code\u003e\u003c/a\u003e Update CHANGES + move to version 25.11.29 to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/0afdcce2e33cf8fcbfe22d2d6f24e33b2f66eb1a\"\u003e\u003ccode\u003e0afdcce\u003c/code\u003e\u003c/a\u003e b042: ignore overloaded init, ignore if str+pickle dunder, improve README (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/2d2fd4d8abb1e3c5c831253ca8afd1717d4221e2\"\u003e\u003ccode\u003e2d2fd4d\u003c/code\u003e\u003c/a\u003e Add B043: Do not call delattr with constant (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/514\"\u003e#514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/9677fa878cdb35f82e79a51b37d635256edd84df\"\u003e\u003ccode\u003e9677fa8\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/ad43575c1a2cc58efca7148f5036ed3d9cd54cdc\"\u003e\u003ccode\u003ead43575\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/cdd75f1942294a152f864c978376f59b2ec08558\"\u003e\u003ccode\u003ecdd75f1\u003c/code\u003e\u003c/a\u003e Update CHANGES + move to version 25.10.21 to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/4601fe6e1993d7a8309dd26105a55d8c77aeae0d\"\u003e\u003ccode\u003e4601fe6\u003c/code\u003e\u003c/a\u003e Drop 3.9 support + add 3.14 CI (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/39699611b4b399a6e81d726e76c58cbcdffa25ab\"\u003e\u003ccode\u003e3969961\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/6276149b6807114307569d67be8516dae306beab\"\u003e\u003ccode\u003e6276149\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/d264420dec52a034efe05f160c4ac157f053c6e8\"\u003e\u003ccode\u003ed264420\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/compare/22.10.27...25.11.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` 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/flask/releases\"\u003eflask'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 a fix release for the 3.0.x feature branch.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.0.3/\"\u003ehttps://pypi.org/project/Flask/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/3.0.x/changes/#version-3-0-3\"\u003ehttps://flask.palletsprojects.com/en/3.0.x/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/35?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/35?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5448\"\u003e#5448\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't initialize the \u003ccode\u003ecli\u003c/code\u003e attribute in the sansio scaffold, but rather in the \u003ccode\u003eFlask\u003c/code\u003e concrete class. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5270\"\u003e#5270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-07\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e5448\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't initialize the \u003ccode\u003ecli\u003c/code\u003e attribute in the sansio scaffold, but rather in\nthe \u003ccode\u003eFlask\u003c/code\u003e concrete class. :pr:\u003ccode\u003e5270\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c12a5d874c5a014495eb2db8a73f40037bc813ac\"\u003e\u003ccode\u003ec12a5d8\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/5e22cc9eec0d1da2da706ccf724fde702b30d5f2\"\u003e\u003ccode\u003e5e22cc9\u003c/code\u003e\u003c/a\u003e Don't set the cli attribute in the sansio scaffold (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/5fdce4c331ac530280cc941179d364a07f4a1088\"\u003e\u003ccode\u003e5fdce4c\u003c/code\u003e\u003c/a\u003e Don't set the cli attribute in the sansio scaffold\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/adb7dd99c295a28726c8d818fba54c7b3f958ecc\"\u003e\u003ccode\u003eadb7dd9\u003c/code\u003e\u003c/a\u003e don't access app.logger when configuring app.logger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/b73939095564ec5c088c53e7595b00d174a018f5\"\u003e\u003ccode\u003eb739390\u003c/code\u003e\u003c/a\u003e support FIPS builds without SHA-1 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5460\"\u003e#5460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/db461112c70d5f2bf93c7a6ac27eeb665c232dd0\"\u003e\u003ccode\u003edb46111\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/7320e311a0a3f190351173f8be90cab31dadbf73\"\u003e\u003ccode\u003e7320e31\u003c/code\u003e\u003c/a\u003e start version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/87d5f5b9a9697434e6d972b021201105eabb54e6\"\u003e\u003ccode\u003e87d5f5b\u003c/code\u003e\u003c/a\u003e update project files (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5457\"\u003e#5457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/d5e321b792cd6f3cd7b072d175f47eacbd5ee14f\"\u003e\u003ccode\u003ed5e321b\u003c/code\u003e\u003c/a\u003e release version 3.0.2 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5403\"\u003e#5403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pallets/flask/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 `flask-wtf` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-wtf/releases\"\u003eflask-wtf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove the project to the pallets-eco organization. \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/602\"\u003e#602\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.8. Start support for Python 3.13. \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/603\"\u003e#603\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-eco/flask-wtf/blob/main/docs/changes.rst\"\u003eflask-wtf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2024-10-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMove the project to the pallets-eco organization. :pr:\u003ccode\u003e602\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.8. Start support for Python 3.13. :pr:\u003ccode\u003e603\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-eco/flask-wtf/commit/2e142951788d8209815fd4797c93f6f3c275ed71\"\u003e\u003ccode\u003e2e14295\u003c/code\u003e\u003c/a\u003e chore: pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/552b7a763235abbd69efc732147ec1e2c4c61ac8\"\u003e\u003ccode\u003e552b7a7\u003c/code\u003e\u003c/a\u003e chore: bump to 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/32f12767656e0f4304221e62c027fe99b67ea037\"\u003e\u003ccode\u003e32f1276\u003c/code\u003e\u003c/a\u003e chore: install 'build' dependency for the release GHA workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/f712367414346196e7fc436ad771533ed2c98898\"\u003e\u003ccode\u003ef712367\u003c/code\u003e\u003c/a\u003e chore: dependencies update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/b929162626b813b7ee2a8edb58fce861cd2e34af\"\u003e\u003ccode\u003eb929162\u003c/code\u003e\u003c/a\u003e chore: use Flask inspired GHA workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/07049e3b87aec17c693dd8cd6993e09bce679705\"\u003e\u003ccode\u003e07049e3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/604\"\u003e#604\u003c/a\u003e from azmeuk/flask-pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/49a13806e95b87735f7c196663ef5155a752dfec\"\u003e\u003ccode\u003e49a1380\u003c/code\u003e\u003c/a\u003e chore: pre-commit configuration insipred from Flask\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/f2bbd1b67a982131278488cc18ba1f65b3caafac\"\u003e\u003ccode\u003ef2bbd1b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/603\"\u003e#603\u003c/a\u003e from azmeuk/py313\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/d3cd8bf1e0d4dbd15daf1cbbf521da41e2c30d50\"\u003e\u003ccode\u003ed3cd8bf\u003c/code\u003e\u003c/a\u003e chore: stop support for python 3.8; start support for python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/0b2e5e413efb614b47f5deb8416847555e2ea07a\"\u003e\u003ccode\u003e0b2e5e4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/602\"\u003e#602\u003c/a\u003e from azmeuk/pallets-eco\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-wtf/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.2.2 to 1.5.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spulec/freezegun/blob/master/CHANGELOG\"\u003efreezegun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow parametrized arguments called 'func' (Broken in 1.5.4)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Ability to yield fixtures (broken in 1.5.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility with pytest 8.4.0 when using fixtures\u003c/li\u003e\n\u003cli\u003eAdd (back) class-decorator overload to guarantee Pytype understands it\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.7\u003c/li\u003e\n\u003cli\u003eExplicitly marks support for Python 3.13\u003c/li\u003e\n\u003cli\u003eImproved project documentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the typing of the \u003ccode\u003etick()\u003c/code\u003e method, and improve it's behaviour.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe default ignore list now contains the \u003ccode\u003equeue\u003c/code\u003e-package\u003c/li\u003e\n\u003cli\u003eAdded a missing \u003ccode\u003emove_to\u003c/code\u003e-function when calling \u003ccode\u003efreeze_time(tick=True)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixes a rounding error in \u003ccode\u003etime.time_ns()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed a bug where the default ignore list could not be empty (\u003ccode\u003econfigure(default_ignore_list=[])\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAll \u003ccode\u003etick()\u003c/code\u003e methods now return the new datetime (instead of None)\u003c/li\u003e\n\u003cli\u003eType improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e-support from 1.3.x introduced quite a few  bugs, so that functionality is now hidden behind a flag:\n\u003ccode\u003ewith freeze_time('1970-01-02', real_asyncio=True):\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded documentation for the \u003ccode\u003ereal_asyncio\u003c/code\u003e parameter in the \u003ccode\u003eREADME.rst\u003c/code\u003e file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the release number in the build\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003easyncio\u003c/code\u003e support to avoid \u003ccode\u003eawait asyncio.sleep(1)\u003c/code\u003e hanging forever.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.12\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/spulec/freezegun/commit/c9bf52c5aa12ea1b5b8647a136a92504ea071f2f\"\u003e\u003ccode\u003ec9bf52c\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0f2bd7ed8b420da73372f4cbb0207b777caa66e9\"\u003e\u003ccode\u003e0f2bd7e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/582\"\u003e#582\u003c/a\u003e from spulec/fixture-called-func\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/a6080557cbcbe4891843934c1334430bb1c5ead7\"\u003e\u003ccode\u003ea608055\u003c/code\u003e\u003c/a\u003e Allow parametrized arguments with name 'func'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/2bb47113a5f9f290d26630c92732e58f49557179\"\u003e\u003ccode\u003e2bb4711\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/7599eeea16b8f206e881892dc104128a5b36de82\"\u003e\u003ccode\u003e7599eee\u003c/code\u003e\u003c/a\u003e Add 1.5.4 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0d00e7ddd9ad33fc63fbed29af17853b18bc3c61\"\u003e\u003ccode\u003e0d00e7d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/579\"\u003e#579\u003c/a\u003e from zsh8/decorate_generator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/10c93f2d6c98f82e54470b05144cd0f17d3e1b46\"\u003e\u003ccode\u003e10c93f2\u003c/code\u003e\u003c/a\u003e fix: preserve functionality in pytest yield fixtures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/d2e0a00addb0653b0cf3be65f8fa7137c7e3bda1\"\u003e\u003ccode\u003ed2e0a00\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/6229e27d27ec61c4c55d7006db7ede6f16d7280a\"\u003e\u003ccode\u003e6229e27\u003c/code\u003e\u003c/a\u003e Add 1.5.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/3111775d6e484f55a85030c626180b592adef569\"\u003e\u003ccode\u003e3111775\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/576\"\u003e#576\u003c/a\u003e from spulec/support-fixtures-pytest-840\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spulec/freezegun/compare/1.2.2...1.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-bank-holidays` from 0.15 to 0.18\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/releases\"\u003egovuk-bank-holidays's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18\u003c/h2\u003e\n\u003cp\u003eAdded support for python 3.14 and removed 3.9 which has reached end-of-life.\nMigrated to trusted publishing.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.17...0.18\"\u003eChanges\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.17\u003c/h2\u003e\n\u003cp\u003eAdded timeout for source downloads (default being GOV.UK) before falling back to cache. With thanks to \u003ca href=\"https://github.com/ibrechin\"\u003e\u003ccode\u003e@​ibrechin\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.16...0.17\"\u003eChanges\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.16\u003c/h2\u003e\n\u003cp\u003eRemoved support for python versions older than 3.9 since they have reached end-of-life and are not available for testing in Github Actions.\nAdded python 3.13 to testing matrix.\nUpdated cached bank holidays file to include latest holidays published by GOV.UK.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.15...0.16\"\u003eChanges\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/ministryofjustice/govuk-bank-holidays/commit/d0eaced4110ac7fe7db4852b98a7fa878e3d44c8\"\u003e\u003ccode\u003ed0eaced\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/govuk-bank-holidays/issues/28\"\u003e#28\u003c/a\u003e from ministryofjustice/trusted-publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/d0edb45645dcebce3889010265b7f1593f83b0e9\"\u003e\u003ccode\u003ed0edb45\u003c/code\u003e\u003c/a\u003e Move to trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/6ccc756d9c91113f3be831e091a3545ee5b2b004\"\u003e\u003ccode\u003e6ccc756\u003c/code\u003e\u003c/a\u003e Update Github Actions dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/cf09505bbbb87a1c623144536707e2322f7cb528\"\u003e\u003ccode\u003ecf09505\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/8df5dea82c1369410c01e0e1ef406cd311d96b85\"\u003e\u003ccode\u003e8df5dea\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/a15061da364cb2927c441289a9defb767fa95551\"\u003e\u003ccode\u003ea15061d\u003c/code\u003e\u003c/a\u003e Bump to 0.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/7ccd9106a893cb6a470734e4c4e8a84439b7b24e\"\u003e\u003ccode\u003e7ccd910\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/govuk-bank-holidays/issues/25\"\u003e#25\u003c/a\u003e from ibrechin/add-request-timeout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/11dd549d0fd663e510a40772f9ebb5ec87f72fca\"\u003e\u003ccode\u003e11dd549\u003c/code\u003e\u003c/a\u003e Add configurable timeout for downloading live holiday data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/11ddc9c2e3bba5e140a5d17d54e7dd38aaa7fb56\"\u003e\u003ccode\u003e11ddc9c\u003c/code\u003e\u003c/a\u003e Bump to 0.16\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/5ad9b7b086865aa779e9a087555f841df80a858d\"\u003e\u003ccode\u003e5ad9b7b\u003c/code\u003e\u003c/a\u003e Remove (official) support and testing on python \u0026lt; 3.9 (though it should conti...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.15...0.18\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-frontend-jinja` from 3.3.0 to 3.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases\"\u003egovuk-frontend-jinja's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.14.0\"\u003eGOV.UK Frontend v5.14.0\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.13.0\"\u003eGOV.UK Frontend v5.13.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated from \u003ccode\u003esetup.py\u003c/code\u003e to \u003ccode\u003epyproject.toml\u003c/code\u003e for packaging config\u003c/li\u003e\n\u003cli\u003eMigrated from \u003ccode\u003epip-tools\u003c/code\u003e to \u003ccode\u003epipenv\u003c/code\u003e for dependency management\u003c/li\u003e\n\u003cli\u003eReduced test Docker image size from 1.28GB to 400MB (-69.5%)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.8.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.12.0\"\u003eGOV.UK Frontend v5.12.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.9 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/82\"\u003e#82\u003c/a\u003e - Templates use lower filter on values where it should not\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/tim-s-ccs\"\u003e\u003ccode\u003e@​tim-s-ccs\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/samuelhwilliams\"\u003e\u003ccode\u003e@​samuelhwilliams\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.11.1\"\u003eGOV.UK Frontend v5.11.1\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.10.0\"\u003eGOV.UK Frontend v5.10.0\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIntroduced rebranding logic in \u003ccode\u003eheader\u003c/code\u003e, \u003ccode\u003efooter\u003c/code\u003e, and \u003ccode\u003eservice-navigation\u003c/code\u003e components.\u003c/li\u003e\n\u003cli\u003eAdded a new \u003ccode\u003elogo.html\u003c/code\u003e macro for enhanced branding capabilities.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003etemplate.html\u003c/code\u003e to handle rebranding dynamically through variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgraded dependencies in \u003ccode\u003erequirements-test-*.txt\u003c/code\u003e files to the latest minor/patch versions:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eclick\u003c/code\u003e → v8.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflake8\u003c/code\u003e → v7.2.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/blob/main/CHANGELOG.md\"\u003egovuk-frontend-jinja's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.10.0\"\u003e3.10.0\u003c/a\u003e - 15/01/2026\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.14.0\"\u003eGOV.UK Frontend v5.14.0\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.9.0\"\u003e3.9.0\u003c/a\u003e - 13/10/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.13.0\"\u003eGOV.UK Frontend v5.13.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated from \u003ccode\u003esetup.py\u003c/code\u003e to \u003ccode\u003epyproject.toml\u003c/code\u003e for packaging config\u003c/li\u003e\n\u003cli\u003eMigrated from \u003ccode\u003epip-tools\u003c/code\u003e to \u003ccode\u003epipenv\u003c/code\u003e for dependency management\u003c/li\u003e\n\u003cli\u003eReduced test Docker image size from 1.28GB to 400MB (-69.5%)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.8.0\"\u003e3.8.0\u003c/a\u003e - 06/10/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.12.0\"\u003eGOV.UK Frontend v5.12.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.9 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/82\"\u003e#82\u003c/a\u003e - Templates use lower filter on values where it should not\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/tim-s-ccs\"\u003eTim South\u003c/a\u003e and \u003ca href=\"https://github.com/samuelhwilliams\"\u003eSamuel Williams\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.7.0\"\u003e3.7.0\u003c/a\u003e - 14/08/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.11.1\"\u003eGOV.UK Frontend v5.11.1\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.6.0\"\u003e3.6.0\u003c/a\u003e - 14/05/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.10.0\"\u003eGOV.UK Frontend v5.10.0\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIntroduced rebranding logic in \u003ccode\u003eheader\u003c/code\u003e, \u003ccode\u003efooter\u003c/code\u003e, and \u003ccode\u003eservice-navigation\u003c/code\u003e components.\u003c/li\u003e\n\u003cli\u003eAdded a new \u003ccode\u003elogo.html\u003c/code\u003e macro for enhanced branding capabilities.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003etemplate.html\u003c/code\u003e to handle rebranding dynamically through 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/LandRegistry/govuk-frontend-jinja/commit/381ffaa754c13f9dd0897e8eb35fbaf57870e4a7\"\u003e\u003ccode\u003e381ffaa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/107\"\u003e#107\u003c/a\u003e from LandRegistry/govuk-frontend-514\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/258af72df65772773de25a965ff6de00b3a12b67\"\u003e\u003ccode\u003e258af72\u003c/code\u003e\u003c/a\u003e add release to changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/cc32c81edb83233e2f58b214829484684f4f2333\"\u003e\u003ccode\u003ecc32c81\u003c/code\u003e\u003c/a\u003e v3.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/7372ab17ed3cabb8b3f5f5fa7513f47820cf7d1b\"\u003e\u003ccode\u003e7372ab1\u003c/code\u003e\u003c/a\u003e formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/059d5ed9c3f0a3e058894373c466c1fc60a44a25\"\u003e\u003ccode\u003e059d5ed\u003c/code\u003e\u003c/a\u003e service navigation changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/14e644f3e73488ce95d1d1fee2799952c156ef9d\"\u003e\u003ccode\u003e14e644f\u003c/code\u003e\u003c/a\u003e pagination changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/f6e51d00bc9b5eafe506c965ed756f8756390970\"\u003e\u003ccode\u003ef6e51d0\u003c/code\u003e\u003c/a\u003e footer changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/a3823449921b29f146a6071d4a5046ebcb976336\"\u003e\u003ccode\u003ea382344\u003c/code\u003e\u003c/a\u003e update dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/edacaa60ca644a791781bb2fbe23af613a6a011e\"\u003e\u003ccode\u003eedacaa6\u003c/code\u003e\u003c/a\u003e prep 5.14 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/f9697b2922bf4c8c369a0074f339b10d8f7330f7\"\u003e\u003ccode\u003ef9697b2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/96\"\u003e#96\u003c/a\u003e from sfount/fix-character-count-typo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/compare/3.3.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `humanize` from 4.4.0 to 4.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-humanize/humanize/releases\"\u003ehumanize's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd locale support for decimal separator in \u003ccode\u003eintword\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/287\"\u003e#287\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.15 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/275\"\u003e#275\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace pre-commit with prek (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/276\"\u003e#276\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enaturaldelta\u003c/code\u003e: round the value to nearest unit that makes sense (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/272\"\u003e#272\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix plural form for \u003ccode\u003eintword\u003c/code\u003e and improve performance (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/273\"\u003e#273\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eException\u003c/code\u003e with more specific \u003ccode\u003eFileNotFoundError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/286\"\u003e#286\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.14.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Uzbek language (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/264\"\u003e#264\u003c/a\u003e) \u003ca href=\"https://github.com/sSimuSs\"\u003e\u003ccode\u003e@​sSimuSs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/268\"\u003e#268\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.13.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimise \u003ccode\u003enaturalsize\u003c/code\u003e algorithm by using \u003ccode\u003emath.log\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/253\"\u003e#253\u003c/a\u003e) \u003ca href=\"https://github.com/Zaczero\"\u003e\u003ccode\u003e@​Zaczero\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprecisedelta\u003c/code\u003e rounding (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/254\"\u003e#254\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.3\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003enaturalsize\u003c/code\u003e for \u003ccode\u003efloat\u003c/code\u003e and \u003ccode\u003estr\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/250\"\u003e#250\u003c/a\u003e) \u003ca href=\"https://github.com/loicleyendecker\"\u003e\u003ccode\u003e@​loicleyendecker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprovements for French translation (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/248\"\u003e#248\u003c/a\u003e) \u003ca href=\"https://github.com/merwok\"\u003e\u003ccode\u003e@​merwok\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.2\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate license file reference from \u003ccode\u003eLICENSE\u003c/code\u003e to \u003ccode\u003eLICENCE\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/243\"\u003e#243\u003c/a\u003e) \u003ca href=\"https://github.com/williamjamir\"\u003e\u003ccode\u003e@​williamjamir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate docstring in naturaldelta (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/242\"\u003e#242\u003c/a\u003e) \u003ca href=\"https://github.com/teobucci\"\u003e\u003ccode\u003e@​teobucci\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore \u003ccode\u003esys.monitoring\u003c/code\u003e warning for Python 3.11 and earlier in coverage.py config (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/244\"\u003e#244\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.1\u003c/h2\u003e\n\u003ch2\u003eFixed\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/python-humanize/humanize/commit/2ddb5903cdc1c7e6eb6b083f4f99f73db50aecd9\"\u003e\u003ccode\u003e2ddb590\u003c/code\u003e\u003c/a\u003e Replace \u003ccode\u003eException\u003c/code\u003e with more specific \u003ccode\u003eFileNotFoundError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/e87f2e25660d3af2ea553ea8dc63bff99652bc94\"\u003e\u003ccode\u003ee87f2e2\u003c/code\u003e\u003c/a\u003e Add locale support for decimal separator in \u003ccode\u003eintword\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/717518400d6709cf7e9bebe4a9424eb3b1ebd60d\"\u003e\u003ccode\u003e7175184\u003c/code\u003e\u003c/a\u003e Add locale support for decimal separator in intword\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/25269993e7ef021edaba620c96827ca21cc13d7e\"\u003e\u003ccode\u003e2526999\u003c/code\u003e\u003c/a\u003e Update config (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/ba532d9ae45d1da89f3687259324365...\n\n_Description has been truncated_","html_url":"https://github.com/alphagov/emergency-alerts-admin/pull/332","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphagov%2Femergency-alerts-admin/issues/332","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/332/packages"},{"uuid":"3851959999","node_id":"PR_kwDORAhFZs6_K0k5","number":1,"state":"open","title":"Bump the all-deps group in /Data/Python/Constraints with 81 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-24T20:06:48.000Z","updated_at":"2026-01-31T04:01:14.540Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-deps","update_count":81,"packages":[{"name":"aiofiles","old_version":"24.1.0","new_version":"25.1.0","repository_url":"https://github.com/Tinche/aiofiles"},{"name":"aiosqlite","old_version":"0.20.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"antlr4-python3-runtime","old_version":"4.13.1","new_version":"4.13.2"},{"name":"asyncua","old_version":"1.1.5","new_version":"1.1.8","repository_url":"https://github.com/FreeOpcUa/opcua-asyncio"},{"name":"atomicwrites","old_version":"1.4.0","new_version":"1.4.1","repository_url":"https://github.com/untitaker/python-atomicwrites"},{"name":"autobahn","old_version":"21.3.1","new_version":"25.12.2","repository_url":"https://github.com/crossbario/autobahn-python"},{"name":"awkward","old_version":"2.6.10","new_version":"2.8.11","repository_url":"https://github.com/scikit-hep/awkward-1.0"},{"name":"awkward-cpp","old_version":"40","new_version":"51","repository_url":"https://github.com/scikit-hep/awkward-1.0"},{"name":"blinker","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/pallets-eco/blinker"},{"name":"certifi","old_version":"2025.11.12","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"click","old_version":"8.1.7","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"comtypes","old_version":"1.4.12","new_version":"1.4.15","repository_url":"https://github.com/enthought/comtypes"},{"name":"configparser","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/jaraco/configparser"},{"name":"contourpy","old_version":"1.1.1","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"cpylog","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/SteveDoyle2/cpylog"},{"name":"docutils","old_version":"0.20.1","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"ezdxf","old_version":"1.1.4","new_version":"1.4.3","repository_url":"https://github.com/mozman/ezdxf"},{"name":"fonttools","old_version":"4.57.0","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"fsspec","old_version":"2025.3.0","new_version":"2026.1.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"geomdl","old_version":"5.3.1","new_version":"5.4.0","repository_url":"https://github.com/orbingol/NURBS-Python"},{"name":"ijson","old_version":"3.3.0","new_version":"3.4.0.post0","repository_url":"https://github.com/ICRAR/ijson"},{"name":"imageio","old_version":"2.35.1","new_version":"2.37.2","repository_url":"https://github.com/imageio/imageio"},{"name":"importlib-metadata","old_version":"8.5.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"importlib-resources","old_version":"6.4.5","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.4.9","repository_url":"https://github.com/nucleic/kiwi"},{"name":"ladybug-comfort","old_version":"0.18.96","new_version":"0.18.97","repository_url":"https://github.com/ladybug-tools/ladybug-comfort"},{"name":"ladybug-core","old_version":"0.44.29","new_version":"0.44.30","repository_url":"https://github.com/ladybug-tools/ladybug"},{"name":"llvmlite","old_version":"0.41.1","new_version":"0.46.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"markdown","old_version":"3.7","new_version":"3.10.1","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"markdown-it-py","old_version":"3.0.0","new_version":"4.0.0","repository_url":"https://github.com/executablebooks/markdown-it-py"},{"name":"matplotlib","old_version":"3.7.5","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"msgpack","old_version":"1.1.1","new_version":"1.1.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"networkx","old_version":"3.1","new_version":"3.6.1","repository_url":"https://github.com/networkx/networkx"},{"name":"numba","old_version":"0.58.1","new_version":"0.63.1","repository_url":"https://github.com/numba/numba"},{"name":"numpy","old_version":"1.24.4","new_version":"2.4.1","repository_url":"https://github.com/numpy/numpy"},{"name":"openstudio","old_version":"3.10.0","new_version":"3.11.0","repository_url":"https://github.com/NREL/OpenStudio"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pandas","old_version":"2.0.3","new_version":"3.0.0","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pillow","old_version":"10.4.0","new_version":"12.1.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"posthog","old_version":"4.2.0","new_version":"7.6.0","repository_url":"https://github.com/posthog/posthog-python"},{"name":"protobuf","old_version":"5.29.5","new_version":"6.33.4","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"psutil","old_version":"7.1.3","new_version":"7.2.1","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycollada","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/pycollada/pycollada"},{"name":"pycparser","old_version":"2.23","new_version":"3.0","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyfakefs","old_version":"5.10.2","new_version":"6.0.0","repository_url":"https://github.com/pytest-dev/pyfakefs"},{"name":"pygit2","old_version":"1.13.3","new_version":"1.19.1","repository_url":"https://github.com/libgit2/pygit2"},{"name":"pyjwt","old_version":"2.9.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pynastran","old_version":"1.3.4","new_version":"1.4.1","repository_url":"https://github.com/SteveDoyle2/pyNastran"},{"name":"pyopenxr","old_version":"1.1.4601","new_version":"1.1.5301","repository_url":"https://github.com/cmbruns/pyopenxr"},{"name":"pyoptools","old_version":"0.2.1","new_version":"0.3.7"},{"name":"pyparsing","old_version":"3.1.4","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pypresence","old_version":"4.3.0","new_version":"4.6.1","repository_url":"https://github.com/qwertyquerty/pypresence"},{"name":"pyproj","old_version":"3.5.0","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"python-docx","old_version":"1.1.2","new_version":"1.2.0","repository_url":"https://github.com/python-openxml/python-docx"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pyvista","old_version":"0.44.2","new_version":"0.46.5","repository_url":"https://github.com/pyvista/pyvista"},{"name":"pywavelets","old_version":"1.4.1","new_version":"1.9.0","repository_url":"https://github.com/PyWavelets/pywt"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.2.0","new_version":"14.3.0","repository_url":"https://github.com/Textualize/rich"},{"name":"scikit-image","old_version":"0.21.0","new_version":"0.26.0","repository_url":"https://github.com/scikit-image/scikit-image"},{"name":"scikit-learn","old_version":"1.3.2","new_version":"1.8.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.10.1","new_version":"1.17.0","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.48.0","new_version":"2.50.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8.3","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"streamdeck","old_version":"0.9.6","new_version":"0.9.8","repository_url":"https://github.com/abcminiuser/python-elgato-streamdeck"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"testtools","old_version":"2.7.2","new_version":"2.8.2","repository_url":"https://github.com/testing-cabal/testtools"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tifffile","old_version":"2023.7.10","new_version":"2026.1.14","repository_url":"https://github.com/cgohlke/tifffile"},{"name":"trimesh","old_version":"4.10.1","new_version":"4.11.1","repository_url":"https://github.com/mikedh/trimesh"},{"name":"txaio","old_version":"23.1.1","new_version":"25.12.2","repository_url":"https://github.com/crossbario/txaio"},{"name":"typing-extensions","old_version":"4.13.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"tzlocal","old_version":"5.2","new_version":"5.3.1","repository_url":"https://github.com/regebro/tzlocal"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"vtk","old_version":"9.3.1","new_version":"9.5.2"},{"name":"xarray","old_version":"2023.1.0","new_version":"2025.12.0","repository_url":"https://github.com/pydata/xarray"},{"name":"zipp","old_version":"3.20.2","new_version":"3.23.0","repository_url":"https://github.com/jaraco/zipp"}],"path":"/Data/Python/Constraints","ecosystem":"pip"},"body":"Bumps the all-deps group in /Data/Python/Constraints with 81 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.20.0` | `0.22.1` |\n| [antlr4-python3-runtime](http://www.antlr.org) | `4.13.1` | `4.13.2` |\n| [asyncua](https://github.com/FreeOpcUa/opcua-asyncio) | `1.1.5` | `1.1.8` |\n| [atomicwrites](https://github.com/untitaker/python-atomicwrites) | `1.4.0` | `1.4.1` |\n| [autobahn](https://github.com/crossbario/autobahn-python) | `21.3.1` | `25.12.2` |\n| [awkward](https://github.com/scikit-hep/awkward-1.0) | `2.6.10` | `2.8.11` |\n| [awkward-cpp](https://github.com/scikit-hep/awkward-1.0) | `40` | `51` |\n| [blinker](https://github.com/pallets-eco/blinker) | `1.8.2` | `1.9.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.11.12` | `2026.1.4` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.1` |\n| [comtypes](https://github.com/enthought/comtypes) | `1.4.12` | `1.4.15` |\n| [configparser](https://github.com/jaraco/configparser) | `7.1.0` | `7.2.0` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.1.1` | `1.3.3` |\n| [cpylog](https://github.com/SteveDoyle2/cpylog) | `1.5.0` | `1.6.0` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.20.1` | `0.22.4` |\n| [ezdxf](https://github.com/mozman/ezdxf) | `1.1.4` | `1.4.3` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.57.0` | `4.61.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.3.0` | `2026.1.0` |\n| [geomdl](https://github.com/orbingol/NURBS-Python) | `5.3.1` | `5.4.0` |\n| [ijson](https://github.com/ICRAR/ijson) | `3.3.0` | `3.4.0.post0` |\n| [imageio](https://github.com/imageio/imageio) | `2.35.1` | `2.37.2` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.5.0` | `8.7.1` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `6.4.5` | `6.5.2` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.4.9` |\n| [ladybug-comfort](https://github.com/ladybug-tools/ladybug-comfort) | `0.18.96` | `0.18.97` |\n| [ladybug-core](https://github.com/ladybug-tools/ladybug) | `0.44.29` | `0.44.30` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.41.1` | `0.46.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.7` | `3.10.1` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `3.0.0` | `4.0.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.7.5` | `3.10.8` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.1` | `1.1.2` |\n| [networkx](https://github.com/networkx/networkx) | `3.1` | `3.6.1` |\n| [numba](https://github.com/numba/numba) | `0.58.1` | `0.63.1` |\n| [numpy](https://github.com/numpy/numpy) | `1.24.4` | `2.4.1` |\n| [openstudio](https://github.com/NREL/OpenStudio) | `3.10.0` | `3.11.0` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.0.3` | `3.0.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `10.4.0` | `12.1.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.5.1` |\n| [posthog](https://github.com/posthog/posthog-python) | `4.2.0` | `7.6.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.5` | `6.33.4` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.1.3` | `7.2.1` |\n| [pycollada](https://github.com/pycollada/pycollada) | `0.9.2` | `0.9.3` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.23` | `3.0` |\n| [pyfakefs](https://github.com/pytest-dev/pyfakefs) | `5.10.2` | `6.0.0` |\n| [pygit2](https://github.com/libgit2/pygit2) | `1.13.3` | `1.19.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.9.0` | `2.10.1` |\n| [pynastran](https://github.com/SteveDoyle2/pyNastran) | `1.3.4` | `1.4.1` |\n| [pyopenxr](https://github.com/cmbruns/pyopenxr) | `1.1.4601` | `1.1.5301` |\n| pyoptools | `0.2.1` | `0.3.7` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.1.4` | `3.3.2` |\n| [pypresence](https://github.com/qwertyquerty/pypresence) | `4.3.0` | `4.6.1` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.5.0` | `3.7.2` |\n| [python-docx](https://github.com/python-openxml/python-docx) | `1.1.2` | `1.2.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.1` |\n| [pyvista](https://github.com/pyvista/pyvista) | `0.44.2` | `0.46.5` |\n| [pywavelets](https://github.com/PyWavelets/pywt) | `1.4.1` | `1.9.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rich](https://github.com/Textualize/rich) | `14.2.0` | `14.3.0` |\n| [scikit-image](https://github.com/scikit-image/scikit-image) | `0.21.0` | `0.26.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.3.2` | `1.8.0` |\n| [scipy](https://github.com/scipy/scipy) | `1.10.1` | `1.17.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.48.0` | `2.50.0` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8.3` |\n| [streamdeck](https://github.com/abcminiuser/python-elgato-streamdeck) | `0.9.6` | `0.9.8` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [testtools](https://github.com/testing-cabal/testtools) | `2.7.2` | `2.8.2` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tifffile](https://github.com/cgohlke/tifffile) | `2023.7.10` | `2026.1.14` |\n| [trimesh](https://github.com/mikedh/trimesh) | `4.10.1` | `4.11.1` |\n| [txaio](https://github.com/crossbario/txaio) | `23.1.1` | `25.12.2` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.13.2` | `4.15.0` |\n| [tzlocal](https://github.com/regebro/tzlocal) | `5.2` | `5.3.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.6.3` |\n| [vtk](https://vtk.org) | `9.3.1` | `9.5.2` |\n| [xarray](https://github.com/pydata/xarray) | `2023.1.0` | `2025.12.0` |\n| [zipp](https://github.com/jaraco/zipp) | `3.20.2` | `3.23.0` |\n\nUpdates `aiofiles` from 24.1.0 to 25.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Tinche/aiofiles/releases\"\u003eaiofiles's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev25.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to \u003ca href=\"https://docs.astral.sh/uv/\"\u003euv\u003c/a\u003e + add Python v3.14 support.  (\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eruff\u003c/code\u003e formatter and linter. \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/216\"\u003e#216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 support. If you require it, use version 24.1.0. \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/204\"\u003e#204\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/danielsmyers\"\u003e\u003ccode\u003e@​danielsmyers\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/185\"\u003eTinche/aiofiles#185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stankudrow\"\u003e\u003ccode\u003e@​stankudrow\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/192\"\u003eTinche/aiofiles#192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/221\"\u003eTinche/aiofiles#221\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Tinche/aiofiles/compare/v24.1.0...v25.1.0\"\u003ehttps://github.com/Tinche/aiofiles/compare/v24.1.0...v25.1.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Tinche/aiofiles/blob/main/CHANGELOG.md\"\u003eaiofiles's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.1.0 (2025-10-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to \u003ca href=\"https://docs.astral.sh/uv/\"\u003euv\u003c/a\u003e + add Python v3.14 support.\n(\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eruff\u003c/code\u003e formatter and linter.\n\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/216\"\u003e#216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 support. If you require it, use version 24.1.0.\n\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/204\"\u003e#204\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/Tinche/aiofiles/commit/348f5ef6561c2b2c8a7497bd10487eab4102332f\"\u003e\u003ccode\u003e348f5ef\u003c/code\u003e\u003c/a\u003e v25.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/5e1bb8f12b09bce440cc9d1e28387d239cbc2577\"\u003e\u003ccode\u003e5e1bb8f\u003c/code\u003e\u003c/a\u003e docs: update readme to use ruff badge (\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/issues/221\"\u003e#221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/6fdc25c7812d6738ccf51c5e7d4cd68500053a52\"\u003e\u003ccode\u003e6fdc25c\u003c/code\u003e\u003c/a\u003e Move to uv. (\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/1989132423dc300c61e22434abd02725e922ddeb\"\u003e\u003ccode\u003e1989132\u003c/code\u003e\u003c/a\u003e set 'function' as a default fixture loop scope value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/8986452a1b28b109903078f8e9a805ec01e248a6\"\u003e\u003ccode\u003e8986452\u003c/code\u003e\u003c/a\u003e add the 'asyncio_default_fixture_loop_scope=session' option\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/ccab1ff77640c59b353046cb528c25ffa11caa73\"\u003e\u003ccode\u003eccab1ff\u003c/code\u003e\u003c/a\u003e update pytest-asyncio==1.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/8727c96f5be46235af412a9fe504ba7c149df7f3\"\u003e\u003ccode\u003e8727c96\u003c/code\u003e\u003c/a\u003e add PR \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/issues/216\"\u003e#216\u003c/a\u003e into the CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/a9388e5f8de9142c3e920917775e741bbf9f73b2\"\u003e\u003ccode\u003ea9388e5\u003c/code\u003e\u003c/a\u003e add TID and ignore TID252\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/760366489aed1fb041ef35652e2babb1870973d0\"\u003e\u003ccode\u003e7603664\u003c/code\u003e\u003c/a\u003e remove [ruff].exclude keyval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/7c49a5c5f2520233198487145423a7842805d740\"\u003e\u003ccode\u003e7c49a5c\u003c/code\u003e\u003c/a\u003e add final newlines\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Tinche/aiofiles/compare/v24.1.0...v25.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiosqlite` from 0.20.0 to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.1\u003c/h2\u003e\n\u003cp\u003eBug fix release\u003c/p\u003e\n\u003cp\u003eNOTE: Starting with \u003ccode\u003ev0.22.0\u003c/code\u003e, the \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e object no longer\ninherits from \u003ccode\u003ethreading.Thread\u003c/code\u003e. If not using aiosqlite as a context manager,\nclients must \u003ccode\u003eawait connection.close()\u003c/code\u003e or call \u003ccode\u003econnection.stop()\u003c/code\u003e to ensure\nthe helper thread is completed and terminated correctly. A \u003ccode\u003eResourceWarning\u003c/code\u003e\nwill be emitted for any connection that is garbage collected without being\nclosed or stopped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded synchronous \u003ccode\u003estop()\u003c/code\u003e method to \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e to enable safe\ncleanup and termination of the background thread without dependence\non having an active event loop (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.22.0...v0.22.1\n     2\tAmethyst Reese\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cp\u003eFeature release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eset_authorizer\u003c/code\u003e query access controls (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWait for transaction queue to complete when closing connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit warning when connection goes out of scope without being closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on \u003ccode\u003etyping_extensions\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.21.0...v0.22.0\n     1\tAlec Berryman\n     1\tAmethyst Reese\n     1\tDavid Andreoletti\n     1\tMarkus Heidelberg\n     1\tbeerpsi\n    19\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.21.0\u003c/h2\u003e\n\u003cp\u003eMaintenance release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix: close connection correctly when BaseException raised in connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMetadata improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/9b127cecc7de843bf4f343b6da63b641866533fb\"\u003e\u003ccode\u003e9b127ce\u003c/code\u003e\u003c/a\u003e Version bump v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/5c3f61c1ea49401f2716d8f58d494e76ca766921\"\u003e\u003ccode\u003e5c3f61c\u003c/code\u003e\u003c/a\u003e Improve stop semantics for connections (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/a869d73678adbc14472e4ac2c31f4e706efe8ef3\"\u003e\u003ccode\u003ea869d73\u003c/code\u003e\u003c/a\u003e Version bump v0.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/1cd60adcab12347577150a6fa6c7d92b7b86d989\"\u003e\u003ccode\u003e1cd60ad\u003c/code\u003e\u003c/a\u003e Emit warning if connection is deleted before it is closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/611d7b4f29fc3d7df6c173b2e79b0892e9d249aa\"\u003e\u003ccode\u003e611d7b4\u003c/code\u003e\u003c/a\u003e Add set_authorizer support for fine-grained access control (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/81d00c8f1676851c8634ca98f99e0973083ea75f\"\u003e\u003ccode\u003e81d00c8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/7a26722f7e6da6a1ae0febf515b4624794173fcc\"\u003e\u003ccode\u003e7a26722\u003c/code\u003e\u003c/a\u003e Bump coverage[toml] from 7.8.0 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/445754087ec452f888cc152debf79590d8a25d86\"\u003e\u003ccode\u003e4457540\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.2.0 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/b650dad318ad72e582b7ba1143cc05f270f8ab6b\"\u003e\u003ccode\u003eb650dad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/065ffdd1291693c5e69d2f3efff17e351d9a0163\"\u003e\u003ccode\u003e065ffdd\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.15.0 to 1.19.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.20.0...v0.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `antlr4-python3-runtime` from 4.13.1 to 4.13.2\n\nUpdates `asyncua` from 1.1.5 to 1.1.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/releases\"\u003easyncua's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.8\u003c/h2\u003e\n\u003cp\u003efix release script and upload\u003c/p\u003e\n\u003ch2\u003ev1.1.7\u003c/h2\u003e\n\u003cp\u003eorigin/master, origin/HEAD) Replace time.time() with time.monotonic() in asyncua core modules\nb3dd3a17ffdd554807df230b6b34403b8c946c30 make pytest loop scope explicit\na5d72a2dc2a53e21d84c5f3b9091e27ae14e007e finally unfreeze pytest-asyncio\ncc874c30e2154e86a43523006ecb5839412cc157 Feat: Support import/export of struct and enum Field descriptions (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1851\"\u003e#1851\u003c/a\u003e)\n97095b909c141daf9b7d300114f7d5d924444b76 Support pre 1.04 struct length fields for B\u0026amp;R\n5b1091795dc7745efb94acd94381db17274779e8 fix  connecting to new prosys opcua server (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1827\"\u003e#1827\u003c/a\u003e)\n120d2e8c090fe0dbe34fb27a3e2f723dcb83ab8d Fix small bug if imported xml has also the stardard namespace included (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1832\"\u003e#1832\u003c/a\u003e)\nd52d319b7ccf8c52f0e0fce469d06b9a10db0a24 Enhancement: Chunked Build ETree Function (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1833\"\u003e#1833\u003c/a\u003e)\n6b6f4bb220b47b7d6d5612dc4d8daccf386373b0 Fix: Issues with missing namespace URIs when importing and exporting XMLs (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1830\"\u003e#1830\u003c/a\u003e)\nf12f3e19b3e7a3bc3db38add30176eef0cecd300 fix ClientNonce and/or peer_certificate may be None\ne3e02e3cfaca19647aec9348e9452594c6ebd657 Include support for x509 certificate chains in DER format (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003ev1.1.6\u003c/h2\u003e\n\u003cp\u003eupdate ua adresse space to 1.0.5\nParse ExtensionObjects with missing length (= -1)\nadd: Number in uatypes.py\nAllow setting password to None.\nFix usage of X509IdentityToken\u003c/p\u003e\n\u003cp\u003ebug fixes\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/FreeOpcUa/opcua-asyncio/commit/d8a5de3fe4050f82f39690bb43157a4b8e20c545\"\u003e\u003ccode\u003ed8a5de3\u003c/code\u003e\u003c/a\u003e new release v1.1.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/fe795e16ad86a4aea8ee09905ab080f9a0841748\"\u003e\u003ccode\u003efe795e1\u003c/code\u003e\u003c/a\u003e fix release script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/cacd6a0c355cd5d5e3af9e1d50c8829b69c2ed88\"\u003e\u003ccode\u003ecacd6a0\u003c/code\u003e\u003c/a\u003e Replace time.time() with time.monotonic() in asyncua core modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/b3dd3a17ffdd554807df230b6b34403b8c946c30\"\u003e\u003ccode\u003eb3dd3a1\u003c/code\u003e\u003c/a\u003e make pytest loop scope explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/a5d72a2dc2a53e21d84c5f3b9091e27ae14e007e\"\u003e\u003ccode\u003ea5d72a2\u003c/code\u003e\u003c/a\u003e finally unfreeze pytest-asyncio\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/cc874c30e2154e86a43523006ecb5839412cc157\"\u003e\u003ccode\u003ecc874c3\u003c/code\u003e\u003c/a\u003e Feat: Support import/export of struct and enum Field descriptions (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1851\"\u003e#1851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/97095b909c141daf9b7d300114f7d5d924444b76\"\u003e\u003ccode\u003e97095b9\u003c/code\u003e\u003c/a\u003e Support pre 1.04 struct length fields for B\u0026amp;R\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/5b1091795dc7745efb94acd94381db17274779e8\"\u003e\u003ccode\u003e5b10917\u003c/code\u003e\u003c/a\u003e fix  connecting to new prosys opcua server (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1827\"\u003e#1827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/120d2e8c090fe0dbe34fb27a3e2f723dcb83ab8d\"\u003e\u003ccode\u003e120d2e8\u003c/code\u003e\u003c/a\u003e Fix small bug if imported xml has also the stardard namespace included (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1832\"\u003e#1832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/d52d319b7ccf8c52f0e0fce469d06b9a10db0a24\"\u003e\u003ccode\u003ed52d319\u003c/code\u003e\u003c/a\u003e Enhancement: Chunked Build ETree Function (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1833\"\u003e#1833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/compare/v1.1.5...v1.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `atomicwrites` from 1.4.0 to 1.4.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/e05d8c985a10176ad43eefb9c4bfa6d7ab176719\"\u003e\u003ccode\u003ee05d8c9\u003c/code\u003e\u003c/a\u003e version 1.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/ea90c67ffe5f38cd39d89625022d417da1966522\"\u003e\u003ccode\u003eea90c67\u003c/code\u003e\u003c/a\u003e fix name typo (\u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/60\"\u003e#60\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/c35cd32eb364d5a4210e64bf38fd1a55f329f316\"\u003e\u003ccode\u003ec35cd32\u003c/code\u003e\u003c/a\u003e Add Power Support ppc64le (\u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/57\"\u003e#57\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/9f8db6527db8a7d20879756ff83d86009df8c9c5\"\u003e\u003ccode\u003e9f8db65\u003c/code\u003e\u003c/a\u003e wrap line\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/6699a1fc44bc5cea2ee258cf960a8bd6cc584e21\"\u003e\u003ccode\u003e6699a1f\u003c/code\u003e\u003c/a\u003e migrate to travis-ci.com\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/ec443a88e5e6cfbc9b667b1bcfd52e5a0a485f7e\"\u003e\u003ccode\u003eec443a8\u003c/code\u003e\u003c/a\u003e Add documentation for open_kwargs, fix \u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/56\"\u003e#56\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/de33f6fac140f32a6eff9eb002feaa6dc7182182\"\u003e\u003ccode\u003ede33f6f\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/d17830127887b97f404f1596ac76d46d730e31f5\"\u003e\u003ccode\u003ed178301\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/72b5dcc9c5225fc8b54559f0f9c02d3211dfd403\"\u003e\u003ccode\u003e72b5dcc\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/14e7f1f5407344f215f0b06b5cbe49fe65e90d1d\"\u003e\u003ccode\u003e14e7f1f\u003c/code\u003e\u003c/a\u003e Clean up some FAQ/Frequently asked question repetition in readme (\u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/53\"\u003e#53\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/untitaker/python-atomicwrites/compare/1.4.0...1.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `autobahn` from 21.3.1 to 25.12.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/crossbario/autobahn-python/releases\"\u003eautobahn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eDevelopment Build fork-68427734-oberstet_autobahn_python-strict_typing_test-202601141357\u003c/h1\u003e\n\u003cp\u003eDevelopment build from pull request\u003c/p\u003e\n\u003ch2\u003eBuild Information\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCommit\u003c/strong\u003e: 1c7d45cd\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBuild Date\u003c/strong\u003e: 2026-01-14 14:02:37 UTC\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRelease Type\u003c/strong\u003e: development\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eIncluded Platforms\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLinux\u003c/strong\u003e: x86_64, ARM64 (manylinux wheels + pure Python fallbacks)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emacOS\u003c/strong\u003e: Apple Silicon ARM64\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWindows\u003c/strong\u003e: x86_64\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython Versions\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCPython\u003c/strong\u003e: 3.11, 3.12, 3.13, 3.14\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePyPy\u003c/strong\u003e: 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cp\u003eDownload the appropriate wheel for your platform:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install \u0026lt;downloaded-wheel-file\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eArtifact Inventory\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTotal Wheels\u003c/strong\u003e: 16\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSource Distributions\u003c/strong\u003e: 3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eDevelopment Build fork-cee77a0c-bblommers_autobahn_python-chore_apply_ruff_up-202601092138\u003c/h1\u003e\n\u003cp\u003eDevelopment build from pull request\u003c/p\u003e\n\u003ch2\u003eBuild Information\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCommit\u003c/strong\u003e: b006e90e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBuild Date\u003c/strong\u003e: 2026-01-09 21:43:05 UTC\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRelease Type\u003c/strong\u003e: development\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eIncluded Platforms\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLinux\u003c/strong\u003e: x86_64, ARM64 (manylinux wheels + pure Python fallbacks)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emacOS\u003c/strong\u003e: Apple Silicon ARM64\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWindows\u003c/strong\u003e: x86_64\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/crossbario/autobahn-python/blob/master/docs/changelog.rst\"\u003eautobahn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBuild \u0026amp; CI/CD\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSynchronize CI/CD, FlatBuffers vendoring, and wamp-ai/wamp-cicd submodules between autobahn-python and zlmdb (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSwitch manylinux container from 2_34 to 2_28 for x86_64 ISA compatibility (fixes auditwheel flatc bundling)\u003c/li\u003e\n\u003cli\u003eIncrease ARM64 build timeout to 60 minutes for QEMU emulation\u003c/li\u003e\n\u003cli\u003eAdd .github/workflows/README.md documenting CI/CD architecture\u003c/li\u003e\n\u003cli\u003eConsolidate download-github-release and download-release-artifacts recipes\u003c/li\u003e\n\u003cli\u003eAdd checksum verification to artifact download workflow\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFlatBuffers\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify vendored FlatBuffers - use upstream as-is\u003c/li\u003e\n\u003cli\u003eTrack vendored FlatBuffers in git (like zlmdb approach)\u003c/li\u003e\n\u003cli\u003eAdd version() function to vendored FlatBuffers runtime\u003c/li\u003e\n\u003cli\u003eAdd check_zlmdb_flatbuffers_version_in_sync() for cross-project compatibility\u003c/li\u003e\n\u003cli\u003eGenerate .bfbs files for WAMP schemas during wheel build\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eOther\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRename install-flatc to install-flatc-system with prominent warning\u003c/li\u003e\n\u003cli\u003eRemove legacy readthedocs.yml to activate .readthedocs.yaml\u003c/li\u003e\n\u003cli\u003eRemove dev-latest optional dependency (PyPI rejects direct URLs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.12.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNew\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd vendored Flatbuffers (v25.9.23) (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1761\"\u003e#1761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WAMP serdes functional and benchmark testing; WAMP-Flatbuffers; WAMP Serializer Composition (transport/payload) (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1765\"\u003e#1765\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFix\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix 1757 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1758\"\u003e#1758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix 1767 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1769\"\u003e#1769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix 1771 complete (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1774\"\u003e#1774\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eOther\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRel v25.10.2 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1734\"\u003e#1734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRel v25.10.2 part2 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1741\"\u003e#1741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWAMP Flatbuffers serialization test coverage; WAMP message classes refactoring (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1773\"\u003e#1773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eModernization phase 1.1 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1785\"\u003e#1785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePhase 1.2: Build Tooling Modernization (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1788\"\u003e#1788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePhase 1.3: CI/CD Modernization (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1791\"\u003e#1791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRel25 12 1 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1794\"\u003e#1794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eModernization phase 1.4 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1797\"\u003e#1797\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/crossbario/autobahn-python/commit/5e4f7e086a074892231377f465099946e8f66ac4\"\u003e\u003ccode\u003e5e4f7e0\u003c/code\u003e\u003c/a\u003e docs: add changelog and release notes for v25.12.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/e97953b3cdc42b103075146dabe9eb9f30111c8b\"\u003e\u003ccode\u003ee97953b\u003c/code\u003e\u003c/a\u003e fix: add checksum verification and unify artifact download paths\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/05f1193cb2b2cdf71a92edfd2d12965083000a68\"\u003e\u003ccode\u003e05f1193\u003c/code\u003e\u003c/a\u003e fix: download-github-release now downloads all release artifacts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/467581c1ef461c97e3c24ece03d61119bbc0e126\"\u003e\u003ccode\u003e467581c\u003c/code\u003e\u003c/a\u003e Synchronize CI/CD, Flatbuffers vendoring and wamp-ai and wamp-cicd Submodules...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/60f226c5356feaab3545f7d015c0655924d9444c\"\u003e\u003ccode\u003e60f226c\u003c/code\u003e\u003c/a\u003e build: remove legacy readthedocs.yml to activate .readthedocs.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/0dac159de6194c94d4be19b1958bddf627aba856\"\u003e\u003ccode\u003e0dac159\u003c/code\u003e\u003c/a\u003e Add missing docs deps to dev, ignore CFFI build artifacts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/e2503361b7c6f7cfd9fd38b5e2093703f3035166\"\u003e\u003ccode\u003ee250336\u003c/code\u003e\u003c/a\u003e Simplify vendored flatbuffers - use upstream as-is\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/03e2e157268713e71e10f5322e521349bc485116\"\u003e\u003ccode\u003e03e2e15\u003c/code\u003e\u003c/a\u003e Track vendored flatbuffers in git (like zlmdb approach)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/41f7e3c6595b911c482f332f5ea40de7f9c0bc1c\"\u003e\u003ccode\u003e41f7e3c\u003c/code\u003e\u003c/a\u003e Move vendor-flatbuffers logic to external Python script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/8db464888d9c738fb51b78544706c130cc1c47a6\"\u003e\u003ccode\u003e8db4648\u003c/code\u003e\u003c/a\u003e bump package version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/crossbario/autobahn-python/compare/v21.3.1...v25.12.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `awkward` from 2.6.10 to 2.8.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scikit-hep/awkward-1.0/releases\"\u003eawkward's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.8.11\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add behavior cls validation hook by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3710\"\u003escikit-hep/awkward#3710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add a playground for cccl studies by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3734\"\u003escikit-hep/awkward#3734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add cuda.compute implementation to CCCL study by \u003ca href=\"https://github.com/shwina\"\u003e\u003ccode\u003e@​shwina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3748\"\u003escikit-hep/awkward#3748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: ability to optionally disable the caching of virtual arrays on themselves by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3741\"\u003escikit-hep/awkward#3741\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug-fixes and performance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: string array numpy conversion fails with int32 offsets from parquet by \u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3697\"\u003escikit-hep/awkward#3697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: only check length against empty form in \u003ccode\u003eak.from_buffers\u003c/code\u003e if it is known by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3714\"\u003escikit-hep/awkward#3714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: typestr respects now limit_cols for .show and \u003cem\u003erepr_mimebundle\u003c/em\u003e by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3712\"\u003escikit-hep/awkward#3712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003eArrayBuilder.__bool__ \u003c/code\u003e raises \u003ccode\u003eTypeError\u003c/code\u003e when builder length is 1 by \u003ca href=\"https://github.com/T90REAL\"\u003e\u003ccode\u003e@​T90REAL\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3738\"\u003escikit-hep/awkward#3738\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: prevent teardown from crashing GPU test suite by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3747\"\u003escikit-hep/awkward#3747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: hide awkward.ak_* and awkward.str.akstr_* from 'awkward' and 'awkward.str' module by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3752\"\u003escikit-hep/awkward#3752\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: align multi-level indices before merge in \u003ccode\u003eto_dataframe()\u003c/code\u003e by \u003ca href=\"https://github.com/TaiSakuma\"\u003e\u003ccode\u003e@​TaiSakuma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3733\"\u003escikit-hep/awkward#3733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: numba test failures on Python 3.14 by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3757\"\u003escikit-hep/awkward#3757\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: incorrect passing of \u003ccode\u003eIndex\u003c/code\u003e inside nplike function in \u003ccode\u003eto_IndexedOptionArray64\u003c/code\u003e by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3727\"\u003escikit-hep/awkward#3727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: weights should not be raised to the power n in the n-th moment calculation by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3729\"\u003escikit-hep/awkward#3729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003eak.Record\u003c/code\u003e creation from iterable with nested dicts by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3728\"\u003escikit-hep/awkward#3728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: keep track of buffer key instead of field path for VirtualNDArrays \u0026amp; PlaceholderArrays by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3751\"\u003escikit-hep/awkward#3751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: typetracer nplike's \u003ccode\u003eall\u003c/code\u003e function leads to infinite recursion for \u003ccode\u003eaxis=None\u003c/code\u003e by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3765\"\u003escikit-hep/awkward#3765\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: fix compilation on self-hosted CI and test with multiple versions of CUDA by \u003ca href=\"https://github.com/ariostas\"\u003e\u003ccode\u003e@​ariostas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3704\"\u003escikit-hep/awkward#3704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update acknowledgements to include NumFOCUS affiliation by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3708\"\u003escikit-hep/awkward#3708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update pre-commit hooks 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/scikit-hep/awkward/pull/3709\"\u003escikit-hep/awkward#3709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: pytest log_level is better than log_cli_level by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3719\"\u003escikit-hep/awkward#3719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update requirements files for latest possible python versions by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3739\"\u003escikit-hep/awkward#3739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump the actions 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/scikit-hep/awkward/pull/3744\"\u003escikit-hep/awkward#3744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update pre-commit hooks 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/scikit-hep/awkward/pull/3754\"\u003escikit-hep/awkward#3754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Remove CUDA 11 support by \u003ca href=\"https://github.com/shwina\"\u003e\u003ccode\u003e@​shwina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3758\"\u003escikit-hep/awkward#3758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(ci): use macos-15-intel for x86 wheel building and testing by \u003ca href=\"https://github.com/ariostas\"\u003e\u003ccode\u003e@​ariostas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3720\"\u003escikit-hep/awkward#3720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add new versions to version selector by \u003ca href=\"https://github.com/ariostas\"\u003e\u003ccode\u003e@​ariostas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3707\"\u003escikit-hep/awkward#3707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: 3.14 is supported by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3717\"\u003escikit-hep/awkward#3717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add T90REAL as a contributor for code by \u003ca href=\"https://github.com/allcontributors\"\u003e\u003ccode\u003e@​allcontributors\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3742\"\u003escikit-hep/awkward#3742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add dependency and version change guidelines by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3745\"\u003escikit-hep/awkward#3745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add shwina as a contributor for code by \u003ca href=\"https://github.com/allcontributors\"\u003e\u003ccode\u003e@​allcontributors\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3759\"\u003escikit-hep/awkward#3759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add an example summation reducer using cccl by \u003ca href=\"https://github.com/maxymnaumchyk\"\u003e\u003ccode\u003e@​maxymnaumchyk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3762\"\u003escikit-hep/awkward#3762\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/T90REAL\"\u003e\u003ccode\u003e@​T90REAL\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3738\"\u003escikit-hep/awkward#3738\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shwina\"\u003e\u003ccode\u003e@​shwina\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3748\"\u003escikit-hep/awkward#3748\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/scikit-hep/awkward/compare/v2.8.10...v2.8.11\"\u003ehttps://github.com/scikit-hep/awkward/compare/v2.8.10...v2.8.11\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 2.8.10\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: preserve field order when replacing existing fields in with_field by \u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3681\"\u003escikit-hep/awkward#3681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add to_/from_safetensors by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3685\"\u003escikit-hep/awkward#3685\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/scikit-hep/awkward/commit/c4a2e57b47f6738670ffc0e4781a3990e7c3ff03\"\u003e\u003ccode\u003ec4a2e57\u003c/code\u003e\u003c/a\u003e awkward 2.8.11 and awkward-cpp 51\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/60072263c91fd8d5df48b487427319c5a10ae70d\"\u003e\u003ccode\u003e6007226\u003c/code\u003e\u003c/a\u003e awkward 2.8.11 and awkward-cpp 51\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/0ad8b1e25b0bd493508bade8ab8d79a383a854a0\"\u003e\u003ccode\u003e0ad8b1e\u003c/code\u003e\u003c/a\u003e fix: typetracer nplike's \u003ccode\u003eall\u003c/code\u003e function leads to infinite recursion for `axis...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/0941b378a8236a660990bd02d2c14e4d6593f28e\"\u003e\u003ccode\u003e0941b37\u003c/code\u003e\u003c/a\u003e fix: keep track of buffer key instead of field path for VirtualNDArrays \u0026amp; Pla...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/efea08c134963bc37c1013adc4ab320ebeb4d7a3\"\u003e\u003ccode\u003eefea08c\u003c/code\u003e\u003c/a\u003e chore(ci): use macos-15-intel for x86 wheel building and testing (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3720\"\u003e#3720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/87765b6adb379ba27b0f6b984607c250443b170c\"\u003e\u003ccode\u003e87765b6\u003c/code\u003e\u003c/a\u003e fix: \u003ccode\u003eak.Record\u003c/code\u003e creation from iterable with nested dicts (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3728\"\u003e#3728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/306274c1fd6028ed549fa0f9a5e47a8bd76e693c\"\u003e\u003ccode\u003e306274c\u003c/code\u003e\u003c/a\u003e fix: weights should not be raised to the power n in the n-th moment calculati...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/8872e1f4ffd781b07c2a661c235dc2d0a5f5bade\"\u003e\u003ccode\u003e8872e1f\u003c/code\u003e\u003c/a\u003e fix: incorrect passing of \u003ccode\u003eIndex\u003c/code\u003e inside nplike function in `to_IndexedOption...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/1594a70bb0d39e174996275dd251305a13f83b2b\"\u003e\u003ccode\u003e1594a70\u003c/code\u003e\u003c/a\u003e fix: numba test failures on Python 3.14 (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3757\"\u003e#3757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/ca066ddc96dd690d52956535fc7422de71ed92e3\"\u003e\u003ccode\u003eca066dd\u003c/code\u003e\u003c/a\u003e feat: ability to optionally disable the caching of virtual arrays on themselv...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scikit-hep/awkward-1.0/compare/v2.6.10...v2.8.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `awkward-cpp` from 40 to 51\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/scikit-hep/awkward-1.0/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `blinker` from 1.8.2 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/blinker/releases\"\u003eblinker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.9.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.9.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.9.0/\"\u003ehttps://pypi.org/project/blinker/1.9.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/stable/#version-1-9-0\"\u003ehttps://blinker.readthedocs.io/en/stable/#version-1-9-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/blinker/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/blinker/milestone/1?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e, \u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/173\"\u003e#173\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-eco/blinker/blob/main/CHANGES.rst\"\u003eblinker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e175\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e,\n\u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. :pr:\u003ccode\u003e172\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down.\n:issue:\u003ccode\u003e173\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-eco/blinker/commit/669f3a027828d19786e708b511277fabcd6b9532\"\u003e\u003ccode\u003e669f3a0\u003c/code\u003e\u003c/a\u003e release version 1.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/cfe116fa7912d8dcb0deee4907aa63d1efaadf5b\"\u003e\u003ccode\u003ecfe116f\u003c/code\u003e\u003c/a\u003e try disabling attestions on test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/16e4bd70a19353d9d7cf47e4df7de54936296377\"\u003e\u003ccode\u003e16e4bd7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/174\"\u003e#174\u003c/a\u003e from projectgus/bugfix/weakref_disconnect_shutdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/42561fdf065032f5c39aea04d8c3fb4db93f73f3\"\u003e\u003ccode\u003e42561fd\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;Exception ignored\u0026quot; in weakref callback during interpreter shutdown.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/dcce3e97743494433025e0b68f742f3582b6ba6a\"\u003e\u003ccode\u003edcce3e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e from pallets-eco/drop-python3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/efa95eaa080b0d4a8dcfc46ad1f387ea1ddebd97\"\u003e\u003ccode\u003eefa95ea\u003c/code\u003e\u003c/a\u003e drop support for python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/82305185358d8ce21619ec0f324688a14a89c23b\"\u003e\u003ccode\u003e8230518\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/94f1202f08c6d00a9fe1ecf5c8cba9da84e4b22f\"\u003e\u003ccode\u003e94f1202\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/8c983ecd764e1d113d24522838c2a7312460b7eb\"\u003e\u003ccode\u003e8c983ec\u003c/code\u003e\u003c/a\u003e remove previously deprecated code (\u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/f5915f3bfcd9f9da0caf6cd4858bf68068c52963\"\u003e\u003ccode\u003ef5915f3\u003c/code\u003e\u003c/a\u003e set up pre-commit lite workflow\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/blinker/compare/1.8.2...1.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.11.12 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.11.12...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cffi` from 1.17.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-cffi/cffi/releases\"\u003ecffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only) - huge thanks to the folks at Quansight Labs for all the work to get this one sorted!\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only).\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/6366c01d84e9a78e7e85f12ebe9760ba5d19b6d3\"\u003e\u003ccode\u003e6366c01\u003c/code\u003e\u003c/a\u003e release 2.0.0 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/95c847663aec401e4003927a274e4de9b8595f4f\"\u003e\u003ccode\u003e95c8476\u003c/code\u003e\u003c/a\u003e 2.0.0 post beta backports (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/195cbda66b6be9297ef6d584644e50cfdcca4e8a\"\u003e\u003ccode\u003e195cbda\u003c/code\u003e\u003c/a\u003e Release 2.0.0b1 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b4bbe7940d3f76027534db1aecbae9b61c35221a\"\u003e\u003ccode\u003eb4bbe79\u003c/code\u003e\u003c/a\u003e fix version test to support beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/7ed073de66e713cf791b6fdfa23685c81fdfd6ad\"\u003e\u003ccode\u003e7ed073d\u003c/code\u003e\u003c/a\u003e Add support for the free-threaded build (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/67a170dc7972dc9361743690b38da3d963b200ef\"\u003e\u003ccode\u003e67a170d\u003c/code\u003e\u003c/a\u003e Change the license from MIT to MIT-no-attribution, which is the same without ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/92645ec9329feb03e3fa86240b40fe0fc37469d1\"\u003e\u003ccode\u003e92645ec\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support/testing (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/177\"\u003e#177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/2b81170583a898478a6996c9705d8c38ab7f73a1\"\u003e\u003ccode\u003e2b81170\u003c/code\u003e\u003c/a\u003e doc: update test commands in Section Testing/development tips (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/25172b84cf51cf58241f074ccd1efd9c7648cb43\"\u003e\u003ccode\u003e25172b8\u003c/code\u003e\u003c/a\u003e doc: update year (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b57a92c03eb2078a99c900519a37d18b4d52324f\"\u003e\u003ccode\u003eb57a92c\u003c/code\u003e\u003c/a\u003e issue 147: force-compute nested structs before parent structs.  Occurs mainly...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 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.1.7...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `comtypes` from 1.4.12 to 1.4.15\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/enthought/comtypes/releases\"\u003ecomtypes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eTYPE_E_ELEMENTNOTFOUND\u003c/code\u003e HRESULT constant value. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003eITypeInfo\u003c/code\u003e testing in \u003ccode\u003etest_typeinfo.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImprove type hints for for generated dispmethods and properties. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance tests for generated type hints. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove Internet Explorer dependency from \u003ccode\u003etest_QueryService.py\u003c/code\u003e and \u003ccode\u003etest_casesensitivity.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etest_ie.py\u003c/code\u003e to \u003ccode\u003etest_eventinterface.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSyntaxError\u003c/code\u003e in \u003ccode\u003eDispMethodAnnotator\u003c/code\u003e signature generation. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etest_msi.py\u003c/code\u003e to \u003ccode\u003etest_puredispatch.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etest_wmi.py\u003c/code\u003e to \u003ccode\u003etest_variant_outparam.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junk...\n\n_Description has been truncated_","html_url":"https://github.com/FreeCAD/Addons/pull/1","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreeCAD%2FAddons/issues/1","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1/packages"},{"uuid":"3843278803","node_id":"PR_kwDOIoSAbM6-txLz","number":323,"state":"closed","title":"Bump the pip-updates group across 1 directory with 24 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-26T11:47:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-22T14:47:02.000Z","updated_at":"2026-01-26T11:48:00.000Z","time_to_close":334857,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-updates","update_count":24,"packages":[{"name":"aws-opentelemetry-distro","old_version":"0.12.2","new_version":"0.14.2","repository_url":"https://github.com/aws-observability/aws-otel-python-instrumentation"},{"name":"beautifulsoup4","old_version":"4.11.1","new_version":"4.14.3"},{"name":"black","old_version":"25.1.0","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"blinker","old_version":"1.7.0","new_version":"1.9.0","repository_url":"https://github.com/pallets-eco/blinker"},{"name":"fido2","old_version":"1.2.0","new_version":"2.1.1","repository_url":"https://github.com/Yubico/python-fido2"},{"name":"flake8","old_version":"7.0.0","new_version":"7.3.0","repository_url":"https://github.com/pycqa/flake8"},{"name":"flake8-bugbear","old_version":"22.10.27","new_version":"25.11.29","repository_url":"https://github.com/PyCQA/flake8-bugbear"},{"name":"flask","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/flask"},{"name":"flask-wtf","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/pallets-eco/flask-wtf"},{"name":"freezegun","old_version":"1.2.2","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"govuk-bank-holidays","old_version":"0.15","new_version":"0.18","repository_url":"https://github.com/ministryofjustice/govuk-bank-holidays"},{"name":"govuk-frontend-jinja","old_version":"3.3.0","new_version":"3.10.0","repository_url":"https://github.com/LandRegistry/govuk-frontend-jinja"},{"name":"humanize","old_version":"4.4.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"isort","old_version":"5.12.0","new_version":"7.0.0","repository_url":"https://github.com/PyCQA/isort"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"2.1.5","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"moto","old_version":"5.1.3","new_version":"5.1.20","repository_url":"https://github.com/getmoto/moto"},{"name":"notifications-python-client","old_version":"8.0.0","new_version":"10.0.1","repository_url":"https://github.com/alphagov/notifications-python-client"},{"name":"pyproj","old_version":"3.6.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytz","old_version":"2022.6","new_version":"2025.2","repository_url":"https://github.com/stub42/pytz"},{"name":"requests-mock","old_version":"1.10.0","new_version":"1.12.1","repository_url":"https://github.com/jamielennox/requests-mock"},{"name":"shapely","old_version":"2.1.1","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"wtforms","old_version":"3.1.2","new_version":"3.2.1","repository_url":"https://github.com/pallets-eco/wtforms"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-updates group with 24 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aws-opentelemetry-distro](https://github.com/aws-observability/aws-otel-python-instrumentation) | `0.12.2` | `0.14.2` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.11.1` | `4.14.3` |\n| [black](https://github.com/psf/black) | `25.1.0` | `26.1.0` |\n| [blinker](https://github.com/pallets-eco/blinker) | `1.7.0` | `1.9.0` |\n| [fido2](https://github.com/Yubico/python-fido2) | `1.2.0` | `2.1.1` |\n| [flake8](https://github.com/pycqa/flake8) | `7.0.0` | `7.3.0` |\n| [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear) | `22.10.27` | `25.11.29` |\n| [flask](https://github.com/pallets/flask) | `3.0.2` | `3.0.3` |\n| [flask-wtf](https://github.com/pallets-eco/flask-wtf) | `1.2.1` | `1.2.2` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.2.2` | `1.5.5` |\n| [govuk-bank-holidays](https://github.com/ministryofjustice/govuk-bank-holidays) | `0.15` | `0.18` |\n| [govuk-frontend-jinja](https://github.com/LandRegistry/govuk-frontend-jinja) | `3.3.0` | `3.10.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.4.0` | `4.15.0` |\n| [isort](https://github.com/PyCQA/isort) | `5.12.0` | `7.0.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `2.1.5` | `3.0.3` |\n| [moto](https://github.com/getmoto/moto) | `5.1.3` | `5.1.20` |\n| [notifications-python-client](https://github.com/alphagov/notifications-python-client) | `8.0.0` | `10.0.1` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.6.1` | `3.7.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [pytz](https://github.com/stub42/pytz) | `2022.6` | `2025.2` |\n| [requests-mock](https://github.com/jamielennox/requests-mock) | `1.10.0` | `1.12.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.1.1` | `2.1.2` |\n| [wtforms](https://github.com/pallets-eco/wtforms) | `3.1.2` | `3.2.1` |\n\n\nUpdates `aws-opentelemetry-distro` from 0.12.2 to 0.14.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws-observability/aws-otel-python-instrumentation/releases\"\u003eaws-opentelemetry-distro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd custom ADOT UserAgent for OTLP Spans Exporter\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable django instrumentation if DJANGO_SETTINGS_MODULE is not set\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/549\"\u003e#549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Service and Environment dimensions to EMF metrics when Application Signals EMF export is enabled\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/548\"\u003e#548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor configuration for adding Application Signals Dimensions to EMF exporter\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/552\"\u003e#552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix CVE-2025-66471. No associated PR since \u003ccode\u003eurllib3\u003c/code\u003e dependency will auto-bump to \u003ccode\u003e2.6.x\u003c/code\u003e upon release.\u003c/li\u003e\n\u003cli\u003e[PATCH] Add safety check for bedrock ConverseStream responses\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpstream Components\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e - 1.33.1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e - 1.33.1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e - 1.33.1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e - 1.33.1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-propagator-b3\u003c/code\u003e - 1.33.1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-propagator-jaeger\u003c/code\u003e - 1.33.1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-common\u003c/code\u003e - 1.33.1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk-extension-aws\u003c/code\u003e - 2.0.2\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-propagator-aws-xray\u003c/code\u003e - 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-distro\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-propagator-ot-trace\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aws-lambda\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aio-pika\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aiohttp-client\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aiokafka\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aiopg\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-asgi\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-asyncpg\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-boto\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-boto3sqs\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-botocore\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-celery\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-django\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-elasticsearch\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-falcon\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-fastapi\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-flask\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-grpc\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-httpx\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-jinja2\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/aws-observability/aws-otel-python-instrumentation/blob/main/CHANGELOG.md\"\u003eaws-opentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e This CHANGELOG was created starting from version 0.12.0. Earlier changes are not documented here.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eFor any change that affects end users of this package, please add an entry under the \u003cstrong\u003eUnreleased\u003c/strong\u003e section. Briefly summarize the change and provide the link to the PR. Example:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eadd GenAI attribute support for Amazon Bedrock models\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf your change does not need a CHANGELOG entry, add the \u0026quot;skip changelog\u0026quot; label to your PR.\u003c/p\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Support new fields in X-Ray API responses\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/577\"\u003e#577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSign Lambda layer by AWS Signer\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport PyPI Signature\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/571\"\u003e#571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove redundant environment variable configuration in Lambda layer\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd custom ADOT UserAgent for OTLP Spans Exporter\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable django instrumentation if DJANGO_SETTINGS_MODULE is not set\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/549\"\u003e#549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PATCH] Add safety check for bedrock ConverseStream responses\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Service and Environment dimensions to EMF metrics when Application Signals EMF export is enabled\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/548\"\u003e#548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor configuration for adding Application Signals Dimensions to EMF exporter\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/552\"\u003e#552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix CVE-2025-66471 and CVE-2026-21441. No associated PR since \u003ccode\u003eurllib3\u003c/code\u003e dependency will auto-bump to the latest \u003ccode\u003e2.6.x\u003c/code\u003e version upon release.\u003c/li\u003e\n\u003cli\u003eUpdate opentelemetry-sdk-extension-aws to version 2.1.0, and remove unneeded Resource Detector patches\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd cloud.platform attribute to resource attributes in lambda\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.14.1 - 2025-12-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd custom ADOT UserAgent for OTLP Spans Exporter\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable django instrumentation if DJANGO_SETTINGS_MODULE is not set\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/549\"\u003e#549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Service and Environment dimensions to EMF metrics when Application Signals EMF export is enabled\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/548\"\u003e#548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor configuration for adding Application Signals Dimensions to EMF exporter\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/552\"\u003e#552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix CVE-2025-66471. No associated PR since \u003ccode\u003eurllib3\u003c/code\u003e dependency will auto-bump to \u003ccode\u003e2.6.x\u003c/code\u003e upon release.\u003c/li\u003e\n\u003cli\u003e[PATCH] Add safety check for bedrock ConverseStream responses\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/547\"\u003e#547\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\u003eSee full diff in \u003ca href=\"https://github.com/aws-observability/aws-otel-python-instrumentation/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.11.1 to 4.14.3\n\nUpdates `black` from 25.1.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.1.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 `blinker` from 1.7.0 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/blinker/releases\"\u003eblinker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.9.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.9.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.9.0/\"\u003ehttps://pypi.org/project/blinker/1.9.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/stable/#version-1-9-0\"\u003ehttps://blinker.readthedocs.io/en/stable/#version-1-9-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/blinker/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/blinker/milestone/1?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e, \u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/173\"\u003e#173\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.2\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.2/\"\u003ehttps://pypi.org/project/blinker/1.8.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-2\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-2\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify type for \u003ccode\u003e_async_wrapper\u003c/code\u003e and \u003ccode\u003e_sync_wrapper\u003c/code\u003e arguments. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/156\"\u003e#156\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.1\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.1/\"\u003ehttps://pypi.org/project/blinker/1.8.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-1\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore identity handling for \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eint\u003c/code\u003e senders. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/148\"\u003e#148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.WeakNamespace\u003c/code\u003e import. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/149\"\u003e#149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.receiver_connected import\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/153\"\u003e#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse types from \u003ccode\u003ecollections.abc\u003c/code\u003e instead of \u003ccode\u003etyping\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/150\"\u003e#150\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully specify exported types as reported by pyright. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/152\"\u003e#152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.0 feature release, which may include new features, remove previously deprecated code, or add new deprecations. The 1.8.x line is now the supported fix branch, support has ended for the 1.7.x line. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.0/\"\u003ehttps://pypi.org/project/blinker/1.8.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-0\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-0\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;blinker\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/128\"\u003e#128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify that the deprecated \u003ccode\u003etemporarily_connected_to\u003c/code\u003e will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated global \u003ccode\u003ereceiver_connected\u003c/code\u003e signal and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated \u003ccode\u003eWeakNamespace\u003c/code\u003e and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eGreatly simplify how the library uses weakrefs. This is a significant change internally but should not affect any public API. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/144\"\u003e#144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose the namespace used by \u003ccode\u003esignal()\u003c/code\u003e as \u003ccode\u003edefault_namespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/145\"\u003e#145\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-eco/blinker/blob/main/CHANGES.rst\"\u003eblinker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e175\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e,\n\u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. :pr:\u003ccode\u003e172\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down.\n:issue:\u003ccode\u003e173\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.2\u003c/h2\u003e\n\u003cp\u003eReleased 2024-05-06\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify type for \u003ccode\u003e_async_wrapper\u003c/code\u003e and \u003ccode\u003e_sync_wrapper\u003c/code\u003e arguments.\n:pr:\u003ccode\u003e156\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.1\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-28\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore identity handling for \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eint\u003c/code\u003e senders. :pr:\u003ccode\u003e148\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.WeakNamespace\u003c/code\u003e import. :pr:\u003ccode\u003e149\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.receiver_connected import\u003c/code\u003e. :pr:\u003ccode\u003e153\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse types from \u003ccode\u003ecollections.abc\u003c/code\u003e instead of \u003ccode\u003etyping\u003c/code\u003e. :pr:\u003ccode\u003e150\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFully specify exported types as reported by pyright. :pr:\u003ccode\u003e152\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;blinker\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e128\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSpecify that the deprecated \u003ccode\u003etemporarily_connected_to\u003c/code\u003e will be removed in\nthe next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated global \u003ccode\u003ereceiver_connected\u003c/code\u003e\nsignal and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated \u003ccode\u003eWeakNamespace\u003c/code\u003e and specify\nthat it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eGreatly simplify how the library uses weakrefs. This is a significant change\ninternally but should not affect any public API. :pr:\u003ccode\u003e144\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eExpose the namespace used by \u003ccode\u003esignal()\u003c/code\u003e as \u003ccode\u003edefault_namespace\u003c/code\u003e.\n:pr:\u003ccode\u003e145\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-eco/blinker/commit/669f3a027828d19786e708b511277fabcd6b9532\"\u003e\u003ccode\u003e669f3a0\u003c/code\u003e\u003c/a\u003e release version 1.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/cfe116fa7912d8dcb0deee4907aa63d1efaadf5b\"\u003e\u003ccode\u003ecfe116f\u003c/code\u003e\u003c/a\u003e try disabling attestions on test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/16e4bd70a19353d9d7cf47e4df7de54936296377\"\u003e\u003ccode\u003e16e4bd7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/174\"\u003e#174\u003c/a\u003e from projectgus/bugfix/weakref_disconnect_shutdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/42561fdf065032f5c39aea04d8c3fb4db93f73f3\"\u003e\u003ccode\u003e42561fd\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;Exception ignored\u0026quot; in weakref callback during interpreter shutdown.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/dcce3e97743494433025e0b68f742f3582b6ba6a\"\u003e\u003ccode\u003edcce3e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e from pallets-eco/drop-python3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/efa95eaa080b0d4a8dcfc46ad1f387ea1ddebd97\"\u003e\u003ccode\u003eefa95ea\u003c/code\u003e\u003c/a\u003e drop support for python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/82305185358d8ce21619ec0f324688a14a89c23b\"\u003e\u003ccode\u003e8230518\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/94f1202f08c6d00a9fe1ecf5c8cba9da84e4b22f\"\u003e\u003ccode\u003e94f1202\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/8c983ecd764e1d113d24522838c2a7312460b7eb\"\u003e\u003ccode\u003e8c983ec\u003c/code\u003e\u003c/a\u003e remove previously deprecated code (\u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/f5915f3bfcd9f9da0caf6cd4858bf68068c52963\"\u003e\u003ccode\u003ef5915f3\u003c/code\u003e\u003c/a\u003e set up pre-commit lite workflow\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/blinker/compare/1.7.0...1.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fido2` from 1.2.0 to 2.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Yubico/python-fido2/releases\"\u003efido2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epython-fido2 2.1.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.1.1 (released 2026-01-19)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Platform detection in fido2.hid module for BSD's.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epython-fido2 2.1.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.1.0 (released 2026-01-14)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCTAP 2.3 support:\n\u003cul\u003e\n\u003cli\u003eAdd new GetInfo fields: enc_cred_store_state.\u003c/li\u003e\n\u003cli\u003eAdd support for pinComplexityPolicy extension.\u003c/li\u003e\n\u003cli\u003eAdd thirdPartyPayment bit to credman.\u003c/li\u003e\n\u003cli\u003eCheck support for config subcommands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eWebAuthn:\n\u003cul\u003e\n\u003cli\u003eAllow UserEntity without 'name' field for improved spec compliance.\u003c/li\u003e\n\u003cli\u003eUpdate MDS3 dataclasses with new fields.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFido2Client:\n\u003cul\u003e\n\u003cli\u003eFallback to PIN after UV_BLOCKED error.\u003c/li\u003e\n\u003cli\u003eImprove preflight handling when message exceeds maximum size.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eWindowsClient:\n\u003cul\u003e\n\u003cli\u003eFix: Parse 'credentialProtectionPolicy' properly.\u003c/li\u003e\n\u003cli\u003eUpdate win_api.py from latest webauthn.h.\u003c/li\u003e\n\u003cli\u003eAdd support for hmac-secret-mc extension.\u003c/li\u003e\n\u003cli\u003eAdd support for hints.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDevelopment:\n\u003cul\u003e\n\u003cli\u003eSwitch from Poetry to uv for project management.\u003c/li\u003e\n\u003cli\u003eAdd pyright and ty for improved type checking.\u003c/li\u003e\n\u003cli\u003eReplace bandit and flake8 with ruff for linting.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epython-fido2 2.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.0.0 (released 2025-05-20)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSee also the migration guide: doc/Migration_1-2.adoc.\u003c/li\u003e\n\u003cli\u003ePython 3.10 or later is now required.\u003c/li\u003e\n\u003cli\u003eWebAuthn dataclasses have been updated to align with the WebAuthn Level 3\nWorking Draft. Constructors now require keyword arguments (\u003ccode\u003ekwargs_only=True\u003c/code\u003e),\nand serialization to/from dictionaries is compatible with standardized JSON\nformats.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003efeatures.webauthn_json_mapping\u003c/code\u003e flag has been removed, as its\nbehavior (standardized JSON mapping) is now default.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFido2Client\u003c/code\u003e and \u003ccode\u003eWindowsClient\u003c/code\u003e constructors now accept a\n\u003ccode\u003eClientDataCollector\u003c/code\u003e instance instead of \u003ccode\u003eorigin\u003c/code\u003e and \u003ccode\u003everify\u003c/code\u003e parameters.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWindowsClient\u003c/code\u003e has been relocated to \u003ccode\u003efido2.client.windows\u003c/code\u003e. Importing this\nclass on non-Windows platforms will now raise an \u003ccode\u003eImportError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFido2Client\u003c/code\u003e methods now return \u003ccode\u003eRegistrationResponse\u003c/code\u003e and\n\u003ccode\u003eAuthenticationResponse\u003c/code\u003e objects, instead of raw attestation/assertion data.\u003c/li\u003e\n\u003cli\u003eCTAP2/WebAuthn extension handling has been redesigned. \u003ccode\u003eFido2Client\u003c/code\u003e now\nexpects a list of \u003ccode\u003eCtap2Extension\u003c/code\u003e instances. Default behavior includes\nextensions commonly supported by browsers.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003efido2.cbor\u003c/code\u003e module's \u003ccode\u003eload_x\u003c/code\u003e and \u003ccode\u003edump_x\u003c/code\u003e functions have been made\nprivate (renamed with a leading underscore) and should not be used directly.\u003c/li\u003e\n\u003cli\u003ePreviously deprecated functions and APIs have been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/Yubico/python-fido2/blob/main/NEWS\"\u003efido2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eVersion 2.1.1 (released 2026-01-19)\n** Fix: Platform detection in fido2.hid module for BSD's.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVersion 2.1.0 (released 2026-01-14)\n** CTAP 2.3 support:\n*** Add new GetInfo fields: enc_cred_store_state.\n*** Add support for pinComplexityPolicy extension.\n*** Add thirdPartyPayment bit to credman.\n*** Check support for config subcommands.\n** WebAuthn:\n*** Allow UserEntity without 'name' field for improved spec compliance.\n*** Update MDS3 dataclasses with new fields.\n** Fido2Client:\n*** Fallback to PIN after UV_BLOCKED error.\n*** Improve preflight handling when message exceeds maximum size.\n** WindowsClient:\n*** Fix: Parse 'credentialProtectionPolicy' properly.\n*** Update win_api.py from latest webauthn.h.\n*** Add support for hmac-secret-mc extension.\n*** Add support for hints.\n** Development:\n*** Switch from Poetry to uv for project management.\n*** Add pyright and ty for improved type checking.\n*** Replace bandit and flake8 with ruff for linting.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVersion 2.0.0 (released 2025-05-20)\n** See also the migration guide: doc/Migration_1-2.adoc.\n** Python 3.10 or later is now required.\n** WebAuthn dataclasses have been updated to align with the WebAuthn Level 3\nWorking Draft. Constructors now require keyword arguments (\u003ccode\u003ekwargs_only=True\u003c/code\u003e),\nand serialization to/from dictionaries is compatible with standardized JSON\nformats.\n** The \u003ccode\u003efeatures.webauthn_json_mapping\u003c/code\u003e flag has been removed, as its\nbehavior (standardized JSON mapping) is now default.\n** \u003ccode\u003eFido2Client\u003c/code\u003e and \u003ccode\u003eWindowsClient\u003c/code\u003e constructors now accept a\n\u003ccode\u003eClientDataCollector\u003c/code\u003e instance instead of \u003ccode\u003eorigin\u003c/code\u003e and \u003ccode\u003everify\u003c/code\u003e parameters.\n** \u003ccode\u003eWindowsClient\u003c/code\u003e has been relocated to \u003ccode\u003efido2.client.windows\u003c/code\u003e. Importing this\nclass on non-Windows platforms will now raise an \u003ccode\u003eImportError\u003c/code\u003e.\n** \u003ccode\u003eFido2Client\u003c/code\u003e methods now return \u003ccode\u003eRegistrationResponse\u003c/code\u003e and\n\u003ccode\u003eAuthenticationResponse\u003c/code\u003e objects, instead of raw attestation/assertion data.\n** CTAP2/WebAuthn extension handling has been redesigned. \u003ccode\u003eFido2Client\u003c/code\u003e now\nexpects a list of \u003ccode\u003eCtap2Extension\u003c/code\u003e instances. Default behavior includes\nextensions commonly supported by browsers.\n** The \u003ccode\u003efido2.cbor\u003c/code\u003e module's \u003ccode\u003eload_x\u003c/code\u003e and \u003ccode\u003edump_x\u003c/code\u003e functions have been made\nprivate (renamed with a leading underscore) and should not be used directly.\n** Previously deprecated functions and APIs have been removed.\n** The \u003ccode\u003e__version__\u003c/code\u003e attribute in \u003ccode\u003efido2/__init__.py\u003c/code\u003e has been removed. Use\n\u003ccode\u003eimportlib.metadata.version('fido2')\u003c/code\u003e to get the package version.\n** Add new GetInfo fields based on CTAP 2.2.\n** Add support for Persistent PinUvAuthToken and encIdentifier.\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/Yubico/python-fido2/commit/0f10447369f147172490e781c57bd5f5b81c5c2b\"\u003e\u003ccode\u003e0f10447\u003c/code\u003e\u003c/a\u003e Prepare version 2.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/ad65653688a1646db4390fb6e862c96282f05992\"\u003e\u003ccode\u003ead65653\u003c/code\u003e\u003c/a\u003e Add comment to avoid accidental change in the future\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/e14b1ea205379d5b5511aad31635bcbf5e11c8f2\"\u003e\u003ccode\u003ee14b1ea\u003c/code\u003e\u003c/a\u003e Merge PR \u003ca href=\"https://redirect.github.com/Yubico/python-fido2/issues/276\"\u003e#276\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/70336138f3226608b1153ea7a10300030723517b\"\u003e\u003ccode\u003e7033613\u003c/code\u003e\u003c/a\u003e Properly detect platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/2a063f11332976cda21d5fee78c7045bb43e76f0\"\u003e\u003ccode\u003e2a063f1\u003c/code\u003e\u003c/a\u003e Merge PR \u003ca href=\"https://redirect.github.com/Yubico/python-fido2/issues/275\"\u003e#275\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/48dca0d3dcc264a6907c25597f88e21438413deb\"\u003e\u003ccode\u003e48dca0d\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/d27a282fe3e0cafbe0b05437bd24666ec5cd97d0\"\u003e\u003ccode\u003ed27a282\u003c/code\u003e\u003c/a\u003e Prepare version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/1c6dc4208bb8eafad3551e31777e14a0128fde9a\"\u003e\u003ccode\u003e1c6dc42\u003c/code\u003e\u003c/a\u003e Improve test cleanup for certain keys\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/c4e086760a9c98198a5d6f1873678f5f6817bc3e\"\u003e\u003ccode\u003ec4e0867\u003c/code\u003e\u003c/a\u003e Fix tests for non-HID devices\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/dd25d385549812dcd181a38e10486fdfab3f6a8d\"\u003e\u003ccode\u003edd25d38\u003c/code\u003e\u003c/a\u003e Bump example deps\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Yubico/python-fido2/compare/1.2.0...2.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8` from 7.0.0 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/c48217e1fc006c2dddd14df54e83b67da15de5cd\"\u003e\u003ccode\u003ec48217e\u003c/code\u003e\u003c/a\u003e Release 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/f9e0f33281d5bb892cae2c674ac398439d99c732\"\u003e\u003ccode\u003ef9e0f33\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1986\"\u003e#1986\u003c/a\u003e from PyCQA/document-f542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6bcdb628597fa2d03494965089ff87a492ffc1e9\"\u003e\u003ccode\u003e6bcdb62\u003c/code\u003e\u003c/a\u003e document F542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/70a15b8890d5bdf8c449ebb1b5259bd0140cc16b\"\u003e\u003ccode\u003e70a15b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1985\"\u003e#1985\u003c/a\u003e from PyCQA/upgrade-deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/4941a3e32e54488698ecbc23993bfeb2a60c0fc5\"\u003e\u003ccode\u003e4941a3e\u003c/code\u003e\u003c/a\u003e upgrade pyflakes / pycodestyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/23e4005c5501999c29e1e3774de7ed18d1e4e22d\"\u003e\u003ccode\u003e23e4005\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1983\"\u003e#1983\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/019424b80d3d7d5d8a2a1638f5877080546e3f46\"\u003e\u003ccode\u003e019424b\u003c/code\u003e\u003c/a\u003e add support for t-strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6b6f3d5fefecc994a06f425c18c3cddc9b71e4a4\"\u003e\u003ccode\u003e6b6f3d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1980\"\u003e#1980\u003c/a\u003e from PyCQA/asottile-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/8dfa6695b4fb1e1401b357367a0a71037d29f6aa\"\u003e\u003ccode\u003e8dfa669\u003c/code\u003e\u003c/a\u003e add rtd sphinx config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/ce3411118382d9332feb2749c8f417d10bfa2584\"\u003e\u003ccode\u003ece34111\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1976\"\u003e#1976\u003c/a\u003e from PyCQA/document-f824\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pycqa/flake8/compare/7.0.0...7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8-bugbear` from 22.10.27 to 25.11.29\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/releases\"\u003eflake8-bugbear's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.11.29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB043: Add new check to state don't call delattr with constant (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/514\"\u003e#514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB042: ignore overloaded init, ignore if str+pickle dunder, improve README\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.10.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB042: New check for reminding to call super().\u003cstrong\u003einit\u003c/strong\u003e in custom exceptions\u003c/li\u003e\n\u003cli\u003eB028: Skip if skip_file_prefixes is used (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB912: New check for \u003ccode\u003emap()\u003c/code\u003e without an explicit \u003ccode\u003estrict=\u003c/code\u003e parameter. (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd python3.14 Support / CI\u003c/li\u003e\n\u003cli\u003eRemove python3.9 support / CI\u003c/li\u003e\n\u003cli\u003eflake8-bugbear now requires at least Python 3.10, like the next release of flake8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.12.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB012 and B025 now also handle try/except* (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip B028 if warnings.warn is called with \u003ccode\u003e*args\u003c/code\u003e or \u003ccode\u003e**kwargs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd B911: itertools.batched without strict= (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReadme has anchors per check (they do not seem to render on GitHub tho)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.10.31\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB041: New dictionary same key AND value check (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/496\"\u003e#496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB037: Fix typo in error message\u003c/li\u003e\n\u003cli\u003eB024: No longer treats assigned class variables as abstract (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/471\"\u003e#471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump required attrs version to 22.2.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.8.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB910: implement to suggest using Counter() instead of defaultdict(int) (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/489\"\u003e#489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB901: Do not trigger with explicit Generator return type (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/481\"\u003e#481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB008: add some comments, rename b008_extend_immutable_calls (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB040: exception with note added not reraised or used (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB039, Add \u003ccode\u003eContextVar\u003c/code\u003e with mutable literal or function call as default\u003c/li\u003e\n\u003cli\u003eB040: Add Exception with added note not reraised. (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRun tests in Python 3.13\u003c/li\u003e\n\u003cli\u003eType annotated code (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/481\"\u003e#481\u003c/a\u003e + \u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/483\"\u003e#483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace hash with unsafe_hash (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.4.26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB909: Fix false positive affecting containers of mutables (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/469\"\u003e#469\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.4.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB950: Add pragma comment to line length ignores (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/463\"\u003e#463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB909: Add more cases to detect + more container mutating functions (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB902: Remove decorators named validator and root_validator from B902 checks (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/459\"\u003e#459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB038: Change B038 to B909 and make it optional (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/456\"\u003e#456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB038: Restrict rule to mutation functions only (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/453\"\u003e#453\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.16\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/a5ace0a2fe0697c42bca1c37cebc3d95e2c10df9\"\u003e\u003ccode\u003ea5ace0a\u003c/code\u003e\u003c/a\u003e Update CHANGES + move to version 25.11.29 to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/0afdcce2e33cf8fcbfe22d2d6f24e33b2f66eb1a\"\u003e\u003ccode\u003e0afdcce\u003c/code\u003e\u003c/a\u003e b042: ignore overloaded init, ignore if str+pickle dunder, improve README (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/2d2fd4d8abb1e3c5c831253ca8afd1717d4221e2\"\u003e\u003ccode\u003e2d2fd4d\u003c/code\u003e\u003c/a\u003e Add B043: Do not call delattr with constant (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/514\"\u003e#514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/9677fa878cdb35f82e79a51b37d635256edd84df\"\u003e\u003ccode\u003e9677fa8\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/ad43575c1a2cc58efca7148f5036ed3d9cd54cdc\"\u003e\u003ccode\u003ead43575\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/cdd75f1942294a152f864c978376f59b2ec08558\"\u003e\u003ccode\u003ecdd75f1\u003c/code\u003e\u003c/a\u003e Update CHANGES + move to version 25.10.21 to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/4601fe6e1993d7a8309dd26105a55d8c77aeae0d\"\u003e\u003ccode\u003e4601fe6\u003c/code\u003e\u003c/a\u003e Drop 3.9 support + add 3.14 CI (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/39699611b4b399a6e81d726e76c58cbcdffa25ab\"\u003e\u003ccode\u003e3969961\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/6276149b6807114307569d67be8516dae306beab\"\u003e\u003ccode\u003e6276149\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/d264420dec52a034efe05f160c4ac157f053c6e8\"\u003e\u003ccode\u003ed264420\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/compare/22.10.27...25.11.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` 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/flask/releases\"\u003eflask'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 a fix release for the 3.0.x feature branch.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.0.3/\"\u003ehttps://pypi.org/project/Flask/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/3.0.x/changes/#version-3-0-3\"\u003ehttps://flask.palletsprojects.com/en/3.0.x/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/35?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/35?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5448\"\u003e#5448\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't initialize the \u003ccode\u003ecli\u003c/code\u003e attribute in the sansio scaffold, but rather in the \u003ccode\u003eFlask\u003c/code\u003e concrete class. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5270\"\u003e#5270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-07\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e5448\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't initialize the \u003ccode\u003ecli\u003c/code\u003e attribute in the sansio scaffold, but rather in\nthe \u003ccode\u003eFlask\u003c/code\u003e concrete class. :pr:\u003ccode\u003e5270\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c12a5d874c5a014495eb2db8a73f40037bc813ac\"\u003e\u003ccode\u003ec12a5d8\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/5e22cc9eec0d1da2da706ccf724fde702b30d5f2\"\u003e\u003ccode\u003e5e22cc9\u003c/code\u003e\u003c/a\u003e Don't set the cli attribute in the sansio scaffold (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/5fdce4c331ac530280cc941179d364a07f4a1088\"\u003e\u003ccode\u003e5fdce4c\u003c/code\u003e\u003c/a\u003e Don't set the cli attribute in the sansio scaffold\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/adb7dd99c295a28726c8d818fba54c7b3f958ecc\"\u003e\u003ccode\u003eadb7dd9\u003c/code\u003e\u003c/a\u003e don't access app.logger when configuring app.logger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/b73939095564ec5c088c53e7595b00d174a018f5\"\u003e\u003ccode\u003eb739390\u003c/code\u003e\u003c/a\u003e support FIPS builds without SHA-1 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5460\"\u003e#5460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/db461112c70d5f2bf93c7a6ac27eeb665c232dd0\"\u003e\u003ccode\u003edb46111\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/7320e311a0a3f190351173f8be90cab31dadbf73\"\u003e\u003ccode\u003e7320e31\u003c/code\u003e\u003c/a\u003e start version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/87d5f5b9a9697434e6d972b021201105eabb54e6\"\u003e\u003ccode\u003e87d5f5b\u003c/code\u003e\u003c/a\u003e update project files (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5457\"\u003e#5457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/d5e321b792cd6f3cd7b072d175f47eacbd5ee14f\"\u003e\u003ccode\u003ed5e321b\u003c/code\u003e\u003c/a\u003e release version 3.0.2 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5403\"\u003e#5403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pallets/flask/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 `flask-wtf` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-wtf/releases\"\u003eflask-wtf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove the project to the pallets-eco organization. \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/602\"\u003e#602\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.8. Start support for Python 3.13. \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/603\"\u003e#603\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-eco/flask-wtf/blob/main/docs/changes.rst\"\u003eflask-wtf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2024-10-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMove the project to the pallets-eco organization. :pr:\u003ccode\u003e602\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.8. Start support for Python 3.13. :pr:\u003ccode\u003e603\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-eco/flask-wtf/commit/2e142951788d8209815fd4797c93f6f3c275ed71\"\u003e\u003ccode\u003e2e14295\u003c/code\u003e\u003c/a\u003e chore: pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/552b7a763235abbd69efc732147ec1e2c4c61ac8\"\u003e\u003ccode\u003e552b7a7\u003c/code\u003e\u003c/a\u003e chore: bump to 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/32f12767656e0f4304221e62c027fe99b67ea037\"\u003e\u003ccode\u003e32f1276\u003c/code\u003e\u003c/a\u003e chore: install 'build' dependency for the release GHA workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/f712367414346196e7fc436ad771533ed2c98898\"\u003e\u003ccode\u003ef712367\u003c/code\u003e\u003c/a\u003e chore: dependencies update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/b929162626b813b7ee2a8edb58fce861cd2e34af\"\u003e\u003ccode\u003eb929162\u003c/code\u003e\u003c/a\u003e chore: use Flask inspired GHA workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/07049e3b87aec17c693dd8cd6993e09bce679705\"\u003e\u003ccode\u003e07049e3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/604\"\u003e#604\u003c/a\u003e from azmeuk/flask-pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/49a13806e95b87735f7c196663ef5155a752dfec\"\u003e\u003ccode\u003e49a1380\u003c/code\u003e\u003c/a\u003e chore: pre-commit configuration insipred from Flask\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/f2bbd1b67a982131278488cc18ba1f65b3caafac\"\u003e\u003ccode\u003ef2bbd1b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/603\"\u003e#603\u003c/a\u003e from azmeuk/py313\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/d3cd8bf1e0d4dbd15daf1cbbf521da41e2c30d50\"\u003e\u003ccode\u003ed3cd8bf\u003c/code\u003e\u003c/a\u003e chore: stop support for python 3.8; start support for python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/0b2e5e413efb614b47f5deb8416847555e2ea07a\"\u003e\u003ccode\u003e0b2e5e4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/602\"\u003e#602\u003c/a\u003e from azmeuk/pallets-eco\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-wtf/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.2.2 to 1.5.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spulec/freezegun/blob/master/CHANGELOG\"\u003efreezegun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow parametrized arguments called 'func' (Broken in 1.5.4)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Ability to yield fixtures (broken in 1.5.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility with pytest 8.4.0 when using fixtures\u003c/li\u003e\n\u003cli\u003eAdd (back) class-decorator overload to guarantee Pytype understands it\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.7\u003c/li\u003e\n\u003cli\u003eExplicitly marks support for Python 3.13\u003c/li\u003e\n\u003cli\u003eImproved project documentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the typing of the \u003ccode\u003etick()\u003c/code\u003e method, and improve it's behaviour.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe default ignore list now contains the \u003ccode\u003equeue\u003c/code\u003e-package\u003c/li\u003e\n\u003cli\u003eAdded a missing \u003ccode\u003emove_to\u003c/code\u003e-function when calling \u003ccode\u003efreeze_time(tick=True)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixes a rounding error in \u003ccode\u003etime.time_ns()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed a bug where the default ignore list could not be empty (\u003ccode\u003econfigure(default_ignore_list=[])\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAll \u003ccode\u003etick()\u003c/code\u003e methods now return the new datetime (instead of None)\u003c/li\u003e\n\u003cli\u003eType improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e-support from 1.3.x introduced quite a few  bugs, so that functionality is now hidden behind a flag:\n\u003ccode\u003ewith freeze_time('1970-01-02', real_asyncio=True):\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded documentation for the \u003ccode\u003ereal_asyncio\u003c/code\u003e parameter in the \u003ccode\u003eREADME.rst\u003c/code\u003e file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the release number in the build\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003easyncio\u003c/code\u003e support to avoid \u003ccode\u003eawait asyncio.sleep(1)\u003c/code\u003e hanging forever.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.12\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/spulec/freezegun/commit/c9bf52c5aa12ea1b5b8647a136a92504ea071f2f\"\u003e\u003ccode\u003ec9bf52c\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0f2bd7ed8b420da73372f4cbb0207b777caa66e9\"\u003e\u003ccode\u003e0f2bd7e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/582\"\u003e#582\u003c/a\u003e from spulec/fixture-called-func\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/a6080557cbcbe4891843934c1334430bb1c5ead7\"\u003e\u003ccode\u003ea608055\u003c/code\u003e\u003c/a\u003e Allow parametrized arguments with name 'func'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/2bb47113a5f9f290d26630c92732e58f49557179\"\u003e\u003ccode\u003e2bb4711\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/7599eeea16b8f206e881892dc104128a5b36de82\"\u003e\u003ccode\u003e7599eee\u003c/code\u003e\u003c/a\u003e Add 1.5.4 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0d00e7ddd9ad33fc63fbed29af17853b18bc3c61\"\u003e\u003ccode\u003e0d00e7d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/579\"\u003e#579\u003c/a\u003e from zsh8/decorate_generator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/10c93f2d6c98f82e54470b05144cd0f17d3e1b46\"\u003e\u003ccode\u003e10c93f2\u003c/code\u003e\u003c/a\u003e fix: preserve functionality in pytest yield fixtures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/d2e0a00addb0653b0cf3be65f8fa7137c7e3bda1\"\u003e\u003ccode\u003ed2e0a00\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/6229e27d27ec61c4c55d7006db7ede6f16d7280a\"\u003e\u003ccode\u003e6229e27\u003c/code\u003e\u003c/a\u003e Add 1.5.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/3111775d6e484f55a85030c626180b592adef569\"\u003e\u003ccode\u003e3111775\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/576\"\u003e#576\u003c/a\u003e from spulec/support-fixtures-pytest-840\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spulec/freezegun/compare/1.2.2...1.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-bank-holidays` from 0.15 to 0.18\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/releases\"\u003egovuk-bank-holidays's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18\u003c/h2\u003e\n\u003cp\u003eAdded support for python 3.14 and removed 3.9 which has reached end-of-life.\nMigrated to trusted publishing.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.17...0.18\"\u003eChanges\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.17\u003c/h2\u003e\n\u003cp\u003eAdded timeout for source downloads (default being GOV.UK) before falling back to cache. With thanks to \u003ca href=\"https://github.com/ibrechin\"\u003e\u003ccode\u003e@​ibrechin\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.16...0.17\"\u003eChanges\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.16\u003c/h2\u003e\n\u003cp\u003eRemoved support for python versions older than 3.9 since they have reached end-of-life and are not available for testing in Github Actions.\nAdded python 3.13 to testing matrix.\nUpdated cached bank holidays file to include latest holidays published by GOV.UK.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.15...0.16\"\u003eChanges\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/ministryofjustice/govuk-bank-holidays/commit/d0eaced4110ac7fe7db4852b98a7fa878e3d44c8\"\u003e\u003ccode\u003ed0eaced\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/govuk-bank-holidays/issues/28\"\u003e#28\u003c/a\u003e from ministryofjustice/trusted-publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/d0edb45645dcebce3889010265b7f1593f83b0e9\"\u003e\u003ccode\u003ed0edb45\u003c/code\u003e\u003c/a\u003e Move to trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/6ccc756d9c91113f3be831e091a3545ee5b2b004\"\u003e\u003ccode\u003e6ccc756\u003c/code\u003e\u003c/a\u003e Update Github Actions dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/cf09505bbbb87a1c623144536707e2322f7cb528\"\u003e\u003ccode\u003ecf09505\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/8df5dea82c1369410c01e0e1ef406cd311d96b85\"\u003e\u003ccode\u003e8df5dea\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/a15061da364cb2927c441289a9defb767fa95551\"\u003e\u003ccode\u003ea15061d\u003c/code\u003e\u003c/a\u003e Bump to 0.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/7ccd9106a893cb6a470734e4c4e8a84439b7b24e\"\u003e\u003ccode\u003e7ccd910\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/govuk-bank-holidays/issues/25\"\u003e#25\u003c/a\u003e from ibrechin/add-request-timeout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/11dd549d0fd663e510a40772f9ebb5ec87f72fca\"\u003e\u003ccode\u003e11dd549\u003c/code\u003e\u003c/a\u003e Add configurable timeout for downloading live holiday data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/11ddc9c2e3bba5e140a5d17d54e7dd38aaa7fb56\"\u003e\u003ccode\u003e11ddc9c\u003c/code\u003e\u003c/a\u003e Bump to 0.16\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/5ad9b7b086865aa779e9a087555f841df80a858d\"\u003e\u003ccode\u003e5ad9b7b\u003c/code\u003e\u003c/a\u003e Remove (official) support and testing on python \u0026lt; 3.9 (though it should conti...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.15...0.18\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-frontend-jinja` from 3.3.0 to 3.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases\"\u003egovuk-frontend-jinja's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.14.0\"\u003eGOV.UK Frontend v5.14.0\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.13.0\"\u003eGOV.UK Frontend v5.13.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated from \u003ccode\u003esetup.py\u003c/code\u003e to \u003ccode\u003epyproject.toml\u003c/code\u003e for packaging config\u003c/li\u003e\n\u003cli\u003eMigrated from \u003ccode\u003epip-tools\u003c/code\u003e to \u003ccode\u003epipenv\u003c/code\u003e for dependency management\u003c/li\u003e\n\u003cli\u003eReduced test Docker image size from 1.28GB to 400MB (-69.5%)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.8.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.12.0\"\u003eGOV.UK Frontend v5.12.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.9 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/82\"\u003e#82\u003c/a\u003e - Templates use lower filter on values where it should not\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/tim-s-ccs\"\u003e\u003ccode\u003e@​tim-s-ccs\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/samuelhwilliams\"\u003e\u003ccode\u003e@​samuelhwilliams\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.11.1\"\u003eGOV.UK Frontend v5.11.1\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.10.0\"\u003eGOV.UK Frontend v5.10.0\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIntroduced rebranding logic in \u003ccode\u003eheader\u003c/code\u003e, \u003ccode\u003efooter\u003c/code\u003e, and \u003ccode\u003eservice-navigation\u003c/code\u003e components.\u003c/li\u003e\n\u003cli\u003eAdded a new \u003ccode\u003elogo.html\u003c/code\u003e macro for enhanced branding capabilities.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003etemplate.html\u003c/code\u003e to handle rebranding dynamically through variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgraded dependencies in \u003ccode\u003erequirements-test-*.txt\u003c/code\u003e files to the latest minor/patch versions:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eclick\u003c/code\u003e → v8.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflake8\u003c/code\u003e → v7.2.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/blob/main/CHANGELOG.md\"\u003egovuk-frontend-jinja's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.10.0\"\u003e3.10.0\u003c/a\u003e - 15/01/2026\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.14.0\"\u003eGOV.UK Frontend v5.14.0\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.9.0\"\u003e3.9.0\u003c/a\u003e - 13/10/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.13.0\"\u003eGOV.UK Frontend v5.13.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated from \u003ccode\u003esetup.py\u003c/code\u003e to \u003ccode\u003epyproject.toml\u003c/code\u003e for packaging config\u003c/li\u003e\n\u003cli\u003eMigrated from \u003ccode\u003epip-tools\u003c/code\u003e to \u003ccode\u003epipenv\u003c/code\u003e for dependency management\u003c/li\u003e\n\u003cli\u003eReduced test Docker image size from 1.28GB to 400MB (-69.5%)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.8.0\"\u003e3.8.0\u003c/a\u003e - 06/10/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.12.0\"\u003eGOV.UK Frontend v5.12.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.9 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/alphagov/emergency-alerts-admin/pull/323","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphagov%2Femergency-alerts-admin/issues/323","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/323/packages"},{"uuid":"3755433246","node_id":"PR_kwDOAozSis66Opa_","number":516,"state":"open","title":"Bump the all-deps group across 1 directory with 72 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-22T22:32:38.000Z","updated_at":"2025-12-22T22:35:08.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-deps","update_count":72,"packages":[{"name":"aiofiles","old_version":"24.1.0","new_version":"25.1.0","repository_url":"https://github.com/Tinche/aiofiles"},{"name":"aiosqlite","old_version":"0.20.0","new_version":"0.22.0","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"antlr4-python3-runtime","old_version":"4.13.1","new_version":"4.13.2"},{"name":"asyncua","old_version":"1.1.5","new_version":"1.1.8","repository_url":"https://github.com/FreeOpcUa/opcua-asyncio"},{"name":"atomicwrites","old_version":"1.4.0","new_version":"1.4.1","repository_url":"https://github.com/untitaker/python-atomicwrites"},{"name":"autobahn","old_version":"21.3.1","new_version":"25.12.2","repository_url":"https://github.com/crossbario/autobahn-python"},{"name":"awkward","old_version":"2.6.10","new_version":"2.8.11","repository_url":"https://github.com/scikit-hep/awkward-1.0"},{"name":"awkward-cpp","old_version":"40","new_version":"51","repository_url":"https://github.com/scikit-hep/awkward-1.0"},{"name":"blinker","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/pallets-eco/blinker"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"click","old_version":"8.1.7","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"comtypes","old_version":"1.4.12","new_version":"1.4.14","repository_url":"https://github.com/enthought/comtypes"},{"name":"configparser","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/jaraco/configparser"},{"name":"contourpy","old_version":"1.1.1","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"cpylog","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/SteveDoyle2/cpylog"},{"name":"docutils","old_version":"0.20.1","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"ezdxf","old_version":"1.1.4","new_version":"1.4.3","repository_url":"https://github.com/mozman/ezdxf"},{"name":"fonttools","old_version":"4.57.0","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"fsspec","old_version":"2025.3.0","new_version":"2025.12.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"geomdl","old_version":"5.3.1","new_version":"5.4.0","repository_url":"https://github.com/orbingol/NURBS-Python"},{"name":"ijson","old_version":"3.3.0","new_version":"3.4.0.post0","repository_url":"https://github.com/ICRAR/ijson"},{"name":"imageio","old_version":"2.35.1","new_version":"2.37.2","repository_url":"https://github.com/imageio/imageio"},{"name":"importlib-metadata","old_version":"8.5.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"importlib-resources","old_version":"6.4.5","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.4.9","repository_url":"https://github.com/nucleic/kiwi"},{"name":"llvmlite","old_version":"0.41.1","new_version":"0.46.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"markdown","old_version":"3.7","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"markdown-it-py","old_version":"3.0.0","new_version":"4.0.0","repository_url":"https://github.com/executablebooks/markdown-it-py"},{"name":"matplotlib","old_version":"3.7.5","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"msgpack","old_version":"1.1.1","new_version":"1.1.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"networkx","old_version":"3.1","new_version":"3.6.1","repository_url":"https://github.com/networkx/networkx"},{"name":"numba","old_version":"0.58.1","new_version":"0.63.1","repository_url":"https://github.com/numba/numba"},{"name":"numpy","old_version":"1.24.4","new_version":"2.4.0","repository_url":"https://github.com/numpy/numpy"},{"name":"pandas","old_version":"2.0.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pillow","old_version":"10.4.0","new_version":"12.0.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"posthog","old_version":"4.2.0","new_version":"7.4.2","repository_url":"https://github.com/posthog/posthog-python"},{"name":"protobuf","old_version":"5.29.5","new_version":"6.33.2","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pyfakefs","old_version":"5.10.2","new_version":"6.0.0","repository_url":"https://github.com/pytest-dev/pyfakefs"},{"name":"pygit2","old_version":"1.13.3","new_version":"1.19.0","repository_url":"https://github.com/libgit2/pygit2"},{"name":"pyjwt","old_version":"2.9.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pynastran","old_version":"1.3.4","new_version":"1.4.1","repository_url":"https://github.com/SteveDoyle2/pyNastran"},{"name":"pyopenxr","old_version":"1.1.4601","new_version":"1.1.5301","repository_url":"https://github.com/cmbruns/pyopenxr"},{"name":"pyoptools","old_version":"0.2.1","new_version":"0.3.7"},{"name":"pyparsing","old_version":"3.1.4","new_version":"3.3.0","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pypresence","old_version":"4.3.0","new_version":"4.6.1","repository_url":"https://github.com/qwertyquerty/pypresence"},{"name":"pyproj","old_version":"3.5.0","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"python-docx","old_version":"1.1.2","new_version":"1.2.0","repository_url":"https://github.com/python-openxml/python-docx"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pyvista","old_version":"0.44.2","new_version":"0.46.4","repository_url":"https://github.com/pyvista/pyvista"},{"name":"pywavelets","old_version":"1.4.1","new_version":"1.9.0","repository_url":"https://github.com/PyWavelets/pywt"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"scikit-image","old_version":"0.21.0","new_version":"0.26.0","repository_url":"https://github.com/scikit-image/scikit-image"},{"name":"scikit-learn","old_version":"1.3.2","new_version":"1.8.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.10.1","new_version":"1.16.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.47.0","new_version":"2.48.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"streamdeck","old_version":"0.9.6","new_version":"0.9.8","repository_url":"https://github.com/abcminiuser/python-elgato-streamdeck"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"testtools","old_version":"2.7.2","new_version":"2.8.2","repository_url":"https://github.com/testing-cabal/testtools"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tifffile","old_version":"2023.7.10","new_version":"2025.12.20","repository_url":"https://github.com/cgohlke/tifffile"},{"name":"txaio","old_version":"23.1.1","new_version":"25.12.2","repository_url":"https://github.com/crossbario/txaio"},{"name":"typing-extensions","old_version":"4.13.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"tzdata","old_version":"2025.2","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"tzlocal","old_version":"5.2","new_version":"5.3.1","repository_url":"https://github.com/regebro/tzlocal"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"vtk","old_version":"9.3.1","new_version":"9.5.2"},{"name":"xarray","old_version":"2023.1.0","new_version":"2025.12.0","repository_url":"https://github.com/pydata/xarray"},{"name":"zipp","old_version":"3.20.2","new_version":"3.23.0","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-deps group with 72 updates in the /constraints directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.20.0` | `0.22.0` |\n| [antlr4-python3-runtime](http://www.antlr.org) | `4.13.1` | `4.13.2` |\n| [asyncua](https://github.com/FreeOpcUa/opcua-asyncio) | `1.1.5` | `1.1.8` |\n| [atomicwrites](https://github.com/untitaker/python-atomicwrites) | `1.4.0` | `1.4.1` |\n| [autobahn](https://github.com/crossbario/autobahn-python) | `21.3.1` | `25.12.2` |\n| [awkward](https://github.com/scikit-hep/awkward-1.0) | `2.6.10` | `2.8.11` |\n| [awkward-cpp](https://github.com/scikit-hep/awkward-1.0) | `40` | `51` |\n| [blinker](https://github.com/pallets-eco/blinker) | `1.8.2` | `1.9.0` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.1` |\n| [comtypes](https://github.com/enthought/comtypes) | `1.4.12` | `1.4.14` |\n| [configparser](https://github.com/jaraco/configparser) | `7.1.0` | `7.2.0` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.1.1` | `1.3.3` |\n| [cpylog](https://github.com/SteveDoyle2/cpylog) | `1.5.0` | `1.6.0` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.20.1` | `0.22.4` |\n| [ezdxf](https://github.com/mozman/ezdxf) | `1.1.4` | `1.4.3` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.57.0` | `4.61.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.3.0` | `2025.12.0` |\n| [geomdl](https://github.com/orbingol/NURBS-Python) | `5.3.1` | `5.4.0` |\n| [ijson](https://github.com/ICRAR/ijson) | `3.3.0` | `3.4.0.post0` |\n| [imageio](https://github.com/imageio/imageio) | `2.35.1` | `2.37.2` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.5.0` | `8.7.1` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `6.4.5` | `6.5.2` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.4.9` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.41.1` | `0.46.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.7` | `3.10` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `3.0.0` | `4.0.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.7.5` | `3.10.8` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.1` | `1.1.2` |\n| [networkx](https://github.com/networkx/networkx) | `3.1` | `3.6.1` |\n| [numba](https://github.com/numba/numba) | `0.58.1` | `0.63.1` |\n| [numpy](https://github.com/numpy/numpy) | `1.24.4` | `2.4.0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.0.3` | `2.3.3` |\n| [pillow](https://github.com/python-pillow/Pillow) | `10.4.0` | `12.0.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.5.1` |\n| [posthog](https://github.com/posthog/posthog-python) | `4.2.0` | `7.4.2` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.5` | `6.33.2` |\n| [pyfakefs](https://github.com/pytest-dev/pyfakefs) | `5.10.2` | `6.0.0` |\n| [pygit2](https://github.com/libgit2/pygit2) | `1.13.3` | `1.19.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.9.0` | `2.10.1` |\n| [pynastran](https://github.com/SteveDoyle2/pyNastran) | `1.3.4` | `1.4.1` |\n| [pyopenxr](https://github.com/cmbruns/pyopenxr) | `1.1.4601` | `1.1.5301` |\n| pyoptools | `0.2.1` | `0.3.7` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.1.4` | `3.3.0` |\n| [pypresence](https://github.com/qwertyquerty/pypresence) | `4.3.0` | `4.6.1` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.5.0` | `3.7.2` |\n| [python-docx](https://github.com/python-openxml/python-docx) | `1.1.2` | `1.2.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.1` |\n| [pyvista](https://github.com/pyvista/pyvista) | `0.44.2` | `0.46.4` |\n| [pywavelets](https://github.com/PyWavelets/pywt) | `1.4.1` | `1.9.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [scikit-image](https://github.com/scikit-image/scikit-image) | `0.21.0` | `0.26.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.3.2` | `1.8.0` |\n| [scipy](https://github.com/scipy/scipy) | `1.10.1` | `1.16.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.47.0` | `2.48.0` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8.1` |\n| [streamdeck](https://github.com/abcminiuser/python-elgato-streamdeck) | `0.9.6` | `0.9.8` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [testtools](https://github.com/testing-cabal/testtools) | `2.7.2` | `2.8.2` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tifffile](https://github.com/cgohlke/tifffile) | `2023.7.10` | `2025.12.20` |\n| [txaio](https://github.com/crossbario/txaio) | `23.1.1` | `25.12.2` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.13.2` | `4.15.0` |\n| [tzdata](https://github.com/python/tzdata) | `2025.2` | `2025.3` |\n| [tzlocal](https://github.com/regebro/tzlocal) | `5.2` | `5.3.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.6.2` |\n| [vtk](https://vtk.org) | `9.3.1` | `9.5.2` |\n| [xarray](https://github.com/pydata/xarray) | `2023.1.0` | `2025.12.0` |\n| [zipp](https://github.com/jaraco/zipp) | `3.20.2` | `3.23.0` |\n\n\nUpdates `aiofiles` from 24.1.0 to 25.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Tinche/aiofiles/releases\"\u003eaiofiles's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev25.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to \u003ca href=\"https://docs.astral.sh/uv/\"\u003euv\u003c/a\u003e + add Python v3.14 support.  (\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eruff\u003c/code\u003e formatter and linter. \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/216\"\u003e#216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 support. If you require it, use version 24.1.0. \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/204\"\u003e#204\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/danielsmyers\"\u003e\u003ccode\u003e@​danielsmyers\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/185\"\u003eTinche/aiofiles#185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stankudrow\"\u003e\u003ccode\u003e@​stankudrow\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/192\"\u003eTinche/aiofiles#192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/221\"\u003eTinche/aiofiles#221\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Tinche/aiofiles/compare/v24.1.0...v25.1.0\"\u003ehttps://github.com/Tinche/aiofiles/compare/v24.1.0...v25.1.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Tinche/aiofiles/blob/main/CHANGELOG.md\"\u003eaiofiles's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.1.0 (2025-10-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to \u003ca href=\"https://docs.astral.sh/uv/\"\u003euv\u003c/a\u003e + add Python v3.14 support.\n(\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eruff\u003c/code\u003e formatter and linter.\n\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/216\"\u003e#216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 support. If you require it, use version 24.1.0.\n\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/204\"\u003e#204\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/Tinche/aiofiles/commit/348f5ef6561c2b2c8a7497bd10487eab4102332f\"\u003e\u003ccode\u003e348f5ef\u003c/code\u003e\u003c/a\u003e v25.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/5e1bb8f12b09bce440cc9d1e28387d239cbc2577\"\u003e\u003ccode\u003e5e1bb8f\u003c/code\u003e\u003c/a\u003e docs: update readme to use ruff badge (\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/issues/221\"\u003e#221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/6fdc25c7812d6738ccf51c5e7d4cd68500053a52\"\u003e\u003ccode\u003e6fdc25c\u003c/code\u003e\u003c/a\u003e Move to uv. (\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/1989132423dc300c61e22434abd02725e922ddeb\"\u003e\u003ccode\u003e1989132\u003c/code\u003e\u003c/a\u003e set 'function' as a default fixture loop scope value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/8986452a1b28b109903078f8e9a805ec01e248a6\"\u003e\u003ccode\u003e8986452\u003c/code\u003e\u003c/a\u003e add the 'asyncio_default_fixture_loop_scope=session' option\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/ccab1ff77640c59b353046cb528c25ffa11caa73\"\u003e\u003ccode\u003eccab1ff\u003c/code\u003e\u003c/a\u003e update pytest-asyncio==1.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/8727c96f5be46235af412a9fe504ba7c149df7f3\"\u003e\u003ccode\u003e8727c96\u003c/code\u003e\u003c/a\u003e add PR \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/issues/216\"\u003e#216\u003c/a\u003e into the CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/a9388e5f8de9142c3e920917775e741bbf9f73b2\"\u003e\u003ccode\u003ea9388e5\u003c/code\u003e\u003c/a\u003e add TID and ignore TID252\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/760366489aed1fb041ef35652e2babb1870973d0\"\u003e\u003ccode\u003e7603664\u003c/code\u003e\u003c/a\u003e remove [ruff].exclude keyval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/7c49a5c5f2520233198487145423a7842805d740\"\u003e\u003ccode\u003e7c49a5c\u003c/code\u003e\u003c/a\u003e add final newlines\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Tinche/aiofiles/compare/v24.1.0...v25.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiosqlite` from 0.20.0 to 0.22.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cp\u003eFeature release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eset_authorizer\u003c/code\u003e query access controls (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWait for transaction queue to complete when closing connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit warning when connection goes out of scope without being closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on \u003ccode\u003etyping_extensions\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.21.0...v0.22.0\n     1\tAlec Berryman\n     1\tAmethyst Reese\n     1\tDavid Andreoletti\n     1\tMarkus Heidelberg\n     1\tbeerpsi\n    19\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.21.0\u003c/h2\u003e\n\u003cp\u003eMaintenance release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix: close connection correctly when BaseException raised in connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMetadata improvements\u003c/li\u003e\n\u003cli\u003eTested and supported on Python 3.13\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eDrop testing on PyPy\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.20.0...v0.21.0\n     6\tAmethyst Reese\n     1\tGabriel\n     1\tStanley Kudrow\n    11\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/a869d73678adbc14472e4ac2c31f4e706efe8ef3\"\u003e\u003ccode\u003ea869d73\u003c/code\u003e\u003c/a\u003e Version bump v0.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/1cd60adcab12347577150a6fa6c7d92b7b86d989\"\u003e\u003ccode\u003e1cd60ad\u003c/code\u003e\u003c/a\u003e Emit warning if connection is deleted before it is closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/611d7b4f29fc3d7df6c173b2e79b0892e9d249aa\"\u003e\u003ccode\u003e611d7b4\u003c/code\u003e\u003c/a\u003e Add set_authorizer support for fine-grained access control (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/81d00c8f1676851c8634ca98f99e0973083ea75f\"\u003e\u003ccode\u003e81d00c8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/7a26722f7e6da6a1ae0febf515b4624794173fcc\"\u003e\u003ccode\u003e7a26722\u003c/code\u003e\u003c/a\u003e Bump coverage[toml] from 7.8.0 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/445754087ec452f888cc152debf79590d8a25d86\"\u003e\u003ccode\u003e4457540\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.2.0 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/b650dad318ad72e582b7ba1143cc05f270f8ab6b\"\u003e\u003ccode\u003eb650dad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/065ffdd1291693c5e69d2f3efff17e351d9a0163\"\u003e\u003ccode\u003e065ffdd\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.15.0 to 1.19.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/3a6d7b03bf86054551b6fd90498056f652671c52\"\u003e\u003ccode\u003e3a6d7b0\u003c/code\u003e\u003c/a\u003e Remove obsolete dependency on typing_extensions (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/e9d6b44af028e7704293b5d7a31ae02077fea5e6\"\u003e\u003ccode\u003ee9d6b44\u003c/code\u003e\u003c/a\u003e Bump black from 25.1.0 to 25.11.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.20.0...v0.22.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `antlr4-python3-runtime` from 4.13.1 to 4.13.2\n\nUpdates `asyncua` from 1.1.5 to 1.1.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/releases\"\u003easyncua's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.8\u003c/h2\u003e\n\u003cp\u003efix release script and upload\u003c/p\u003e\n\u003ch2\u003ev1.1.7\u003c/h2\u003e\n\u003cp\u003eorigin/master, origin/HEAD) Replace time.time() with time.monotonic() in asyncua core modules\nb3dd3a17ffdd554807df230b6b34403b8c946c30 make pytest loop scope explicit\na5d72a2dc2a53e21d84c5f3b9091e27ae14e007e finally unfreeze pytest-asyncio\ncc874c30e2154e86a43523006ecb5839412cc157 Feat: Support import/export of struct and enum Field descriptions (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1851\"\u003e#1851\u003c/a\u003e)\n97095b909c141daf9b7d300114f7d5d924444b76 Support pre 1.04 struct length fields for B\u0026amp;R\n5b1091795dc7745efb94acd94381db17274779e8 fix  connecting to new prosys opcua server (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1827\"\u003e#1827\u003c/a\u003e)\n120d2e8c090fe0dbe34fb27a3e2f723dcb83ab8d Fix small bug if imported xml has also the stardard namespace included (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1832\"\u003e#1832\u003c/a\u003e)\nd52d319b7ccf8c52f0e0fce469d06b9a10db0a24 Enhancement: Chunked Build ETree Function (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1833\"\u003e#1833\u003c/a\u003e)\n6b6f4bb220b47b7d6d5612dc4d8daccf386373b0 Fix: Issues with missing namespace URIs when importing and exporting XMLs (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1830\"\u003e#1830\u003c/a\u003e)\nf12f3e19b3e7a3bc3db38add30176eef0cecd300 fix ClientNonce and/or peer_certificate may be None\ne3e02e3cfaca19647aec9348e9452594c6ebd657 Include support for x509 certificate chains in DER format (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003ev1.1.6\u003c/h2\u003e\n\u003cp\u003eupdate ua adresse space to 1.0.5\nParse ExtensionObjects with missing length (= -1)\nadd: Number in uatypes.py\nAllow setting password to None.\nFix usage of X509IdentityToken\u003c/p\u003e\n\u003cp\u003ebug fixes\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/FreeOpcUa/opcua-asyncio/commit/d8a5de3fe4050f82f39690bb43157a4b8e20c545\"\u003e\u003ccode\u003ed8a5de3\u003c/code\u003e\u003c/a\u003e new release v1.1.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/fe795e16ad86a4aea8ee09905ab080f9a0841748\"\u003e\u003ccode\u003efe795e1\u003c/code\u003e\u003c/a\u003e fix release script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/cacd6a0c355cd5d5e3af9e1d50c8829b69c2ed88\"\u003e\u003ccode\u003ecacd6a0\u003c/code\u003e\u003c/a\u003e Replace time.time() with time.monotonic() in asyncua core modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/b3dd3a17ffdd554807df230b6b34403b8c946c30\"\u003e\u003ccode\u003eb3dd3a1\u003c/code\u003e\u003c/a\u003e make pytest loop scope explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/a5d72a2dc2a53e21d84c5f3b9091e27ae14e007e\"\u003e\u003ccode\u003ea5d72a2\u003c/code\u003e\u003c/a\u003e finally unfreeze pytest-asyncio\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/cc874c30e2154e86a43523006ecb5839412cc157\"\u003e\u003ccode\u003ecc874c3\u003c/code\u003e\u003c/a\u003e Feat: Support import/export of struct and enum Field descriptions (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1851\"\u003e#1851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/97095b909c141daf9b7d300114f7d5d924444b76\"\u003e\u003ccode\u003e97095b9\u003c/code\u003e\u003c/a\u003e Support pre 1.04 struct length fields for B\u0026amp;R\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/5b1091795dc7745efb94acd94381db17274779e8\"\u003e\u003ccode\u003e5b10917\u003c/code\u003e\u003c/a\u003e fix  connecting to new prosys opcua server (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1827\"\u003e#1827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/120d2e8c090fe0dbe34fb27a3e2f723dcb83ab8d\"\u003e\u003ccode\u003e120d2e8\u003c/code\u003e\u003c/a\u003e Fix small bug if imported xml has also the stardard namespace included (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1832\"\u003e#1832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/d52d319b7ccf8c52f0e0fce469d06b9a10db0a24\"\u003e\u003ccode\u003ed52d319\u003c/code\u003e\u003c/a\u003e Enhancement: Chunked Build ETree Function (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1833\"\u003e#1833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/compare/v1.1.5...v1.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `atomicwrites` from 1.4.0 to 1.4.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/e05d8c985a10176ad43eefb9c4bfa6d7ab176719\"\u003e\u003ccode\u003ee05d8c9\u003c/code\u003e\u003c/a\u003e version 1.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/ea90c67ffe5f38cd39d89625022d417da1966522\"\u003e\u003ccode\u003eea90c67\u003c/code\u003e\u003c/a\u003e fix name typo (\u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/60\"\u003e#60\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/c35cd32eb364d5a4210e64bf38fd1a55f329f316\"\u003e\u003ccode\u003ec35cd32\u003c/code\u003e\u003c/a\u003e Add Power Support ppc64le (\u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/57\"\u003e#57\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/9f8db6527db8a7d20879756ff83d86009df8c9c5\"\u003e\u003ccode\u003e9f8db65\u003c/code\u003e\u003c/a\u003e wrap line\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/6699a1fc44bc5cea2ee258cf960a8bd6cc584e21\"\u003e\u003ccode\u003e6699a1f\u003c/code\u003e\u003c/a\u003e migrate to travis-ci.com\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/ec443a88e5e6cfbc9b667b1bcfd52e5a0a485f7e\"\u003e\u003ccode\u003eec443a8\u003c/code\u003e\u003c/a\u003e Add documentation for open_kwargs, fix \u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/56\"\u003e#56\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/de33f6fac140f32a6eff9eb002feaa6dc7182182\"\u003e\u003ccode\u003ede33f6f\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/d17830127887b97f404f1596ac76d46d730e31f5\"\u003e\u003ccode\u003ed178301\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/72b5dcc9c5225fc8b54559f0f9c02d3211dfd403\"\u003e\u003ccode\u003e72b5dcc\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/14e7f1f5407344f215f0b06b5cbe49fe65e90d1d\"\u003e\u003ccode\u003e14e7f1f\u003c/code\u003e\u003c/a\u003e Clean up some FAQ/Frequently asked question repetition in readme (\u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/53\"\u003e#53\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/untitaker/python-atomicwrites/compare/1.4.0...1.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `autobahn` from 21.3.1 to 25.12.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/crossbario/autobahn-python/releases\"\u003eautobahn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v25_12_2\u003c/h1\u003e\n\u003cp\u003eOfficial release v25_12_2\u003c/p\u003e\n\u003ch2\u003eIncluded Platforms\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLinux\u003c/strong\u003e: x86_64, ARM64 (manylinux_2_34 wheels with NVX)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emacOS\u003c/strong\u003e: Apple Silicon ARM64 (binary wheels with NVX)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWindows\u003c/strong\u003e: x86_64 (binary wheels with NVX)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython Versions\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCPython\u003c/strong\u003e: 3.11, 3.12, 3.13, 3.14\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePyPy\u003c/strong\u003e: 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install autobahn[all]==v25_12_2\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr download wheels directly from this release.\u003c/p\u003e\n\u003ch2\u003eBuild Information\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRelease Date\u003c/strong\u003e: 2025-12-15 11:12:00 UTC\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTotal Wheels\u003c/strong\u003e: 16\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSource Distributions\u003c/strong\u003e: 3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cp\u003eAutobahn|Python provides:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eWebSocket\u003c/strong\u003e client and server implementations (RFC 6455)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWAMP\u003c/strong\u003e client library for both Twisted and asyncio\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNVX acceleration\u003c/strong\u003e for high-performance networking (binary wheels)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePure Python fallback\u003c/strong\u003e wheels for maximum compatibility\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://autobahn.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python\"\u003eGitHub Repository\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://wamp-proto.org\"\u003eWAMP Protocol\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eDevelopment Build fork-7ce4f0c4-oberstet_autobahn_python-sync_autobahn_zlmdb-202512132337\u003c/h1\u003e\n\u003cp\u003eDevelopment build from pull request\u003c/p\u003e\n\u003ch2\u003eBuild Information\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/crossbario/autobahn-python/blob/master/docs/changelog.rst\"\u003eautobahn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBuild \u0026amp; CI/CD\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSynchronize CI/CD, FlatBuffers vendoring, and wamp-ai/wamp-cicd submodules between autobahn-python and zlmdb (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSwitch manylinux container from 2_34 to 2_28 for x86_64 ISA compatibility (fixes auditwheel flatc bundling)\u003c/li\u003e\n\u003cli\u003eIncrease ARM64 build timeout to 60 minutes for QEMU emulation\u003c/li\u003e\n\u003cli\u003eAdd .github/workflows/README.md documenting CI/CD architecture\u003c/li\u003e\n\u003cli\u003eConsolidate download-github-release and download-release-artifacts recipes\u003c/li\u003e\n\u003cli\u003eAdd checksum verification to artifact download workflow\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFlatBuffers\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify vendored FlatBuffers - use upstream as-is\u003c/li\u003e\n\u003cli\u003eTrack vendored FlatBuffers in git (like zlmdb approach)\u003c/li\u003e\n\u003cli\u003eAdd version() function to vendored FlatBuffers runtime\u003c/li\u003e\n\u003cli\u003eAdd check_zlmdb_flatbuffers_version_in_sync() for cross-project compatibility\u003c/li\u003e\n\u003cli\u003eGenerate .bfbs files for WAMP schemas during wheel build\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eOther\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRename install-flatc to install-flatc-system with prominent warning\u003c/li\u003e\n\u003cli\u003eRemove legacy readthedocs.yml to activate .readthedocs.yaml\u003c/li\u003e\n\u003cli\u003eRemove dev-latest optional dependency (PyPI rejects direct URLs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.12.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNew\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd vendored Flatbuffers (v25.9.23) (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1761\"\u003e#1761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WAMP serdes functional and benchmark testing; WAMP-Flatbuffers; WAMP Serializer Composition (transport/payload) (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1765\"\u003e#1765\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFix\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix 1757 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1758\"\u003e#1758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix 1767 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1769\"\u003e#1769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix 1771 complete (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1774\"\u003e#1774\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eOther\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRel v25.10.2 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1734\"\u003e#1734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRel v25.10.2 part2 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1741\"\u003e#1741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWAMP Flatbuffers serialization test coverage; WAMP message classes refactoring (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1773\"\u003e#1773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eModernization phase 1.1 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1785\"\u003e#1785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePhase 1.2: Build Tooling Modernization (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1788\"\u003e#1788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePhase 1.3: CI/CD Modernization (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1791\"\u003e#1791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRel25 12 1 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1794\"\u003e#1794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eModernization phase 1.4 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1797\"\u003e#1797\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/crossbario/autobahn-python/commit/5e4f7e086a074892231377f465099946e8f66ac4\"\u003e\u003ccode\u003e5e4f7e0\u003c/code\u003e\u003c/a\u003e docs: add changelog and release notes for v25.12.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/e97953b3cdc42b103075146dabe9eb9f30111c8b\"\u003e\u003ccode\u003ee97953b\u003c/code\u003e\u003c/a\u003e fix: add checksum verification and unify artifact download paths\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/05f1193cb2b2cdf71a92edfd2d12965083000a68\"\u003e\u003ccode\u003e05f1193\u003c/code\u003e\u003c/a\u003e fix: download-github-release now downloads all release artifacts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/467581c1ef461c97e3c24ece03d61119bbc0e126\"\u003e\u003ccode\u003e467581c\u003c/code\u003e\u003c/a\u003e Synchronize CI/CD, Flatbuffers vendoring and wamp-ai and wamp-cicd Submodules...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/60f226c5356feaab3545f7d015c0655924d9444c\"\u003e\u003ccode\u003e60f226c\u003c/code\u003e\u003c/a\u003e build: remove legacy readthedocs.yml to activate .readthedocs.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/0dac159de6194c94d4be19b1958bddf627aba856\"\u003e\u003ccode\u003e0dac159\u003c/code\u003e\u003c/a\u003e Add missing docs deps to dev, ignore CFFI build artifacts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/e2503361b7c6f7cfd9fd38b5e2093703f3035166\"\u003e\u003ccode\u003ee250336\u003c/code\u003e\u003c/a\u003e Simplify vendored flatbuffers - use upstream as-is\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/03e2e157268713e71e10f5322e521349bc485116\"\u003e\u003ccode\u003e03e2e15\u003c/code\u003e\u003c/a\u003e Track vendored flatbuffers in git (like zlmdb approach)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/41f7e3c6595b911c482f332f5ea40de7f9c0bc1c\"\u003e\u003ccode\u003e41f7e3c\u003c/code\u003e\u003c/a\u003e Move vendor-flatbuffers logic to external Python script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/8db464888d9c738fb51b78544706c130cc1c47a6\"\u003e\u003ccode\u003e8db4648\u003c/code\u003e\u003c/a\u003e bump package version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/crossbario/autobahn-python/compare/v21.3.1...v25.12.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `awkward` from 2.6.10 to 2.8.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scikit-hep/awkward-1.0/releases\"\u003eawkward's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.8.11\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add behavior cls validation hook by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3710\"\u003escikit-hep/awkward#3710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add a playground for cccl studies by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3734\"\u003escikit-hep/awkward#3734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add cuda.compute implementation to CCCL study by \u003ca href=\"https://github.com/shwina\"\u003e\u003ccode\u003e@​shwina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3748\"\u003escikit-hep/awkward#3748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: ability to optionally disable the caching of virtual arrays on themselves by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3741\"\u003escikit-hep/awkward#3741\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug-fixes and performance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: string array numpy conversion fails with int32 offsets from parquet by \u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3697\"\u003escikit-hep/awkward#3697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: only check length against empty form in \u003ccode\u003eak.from_buffers\u003c/code\u003e if it is known by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3714\"\u003escikit-hep/awkward#3714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: typestr respects now limit_cols for .show and \u003cem\u003erepr_mimebundle\u003c/em\u003e by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3712\"\u003escikit-hep/awkward#3712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003eArrayBuilder.__bool__ \u003c/code\u003e raises \u003ccode\u003eTypeError\u003c/code\u003e when builder length is 1 by \u003ca href=\"https://github.com/T90REAL\"\u003e\u003ccode\u003e@​T90REAL\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3738\"\u003escikit-hep/awkward#3738\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: prevent teardown from crashing GPU test suite by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3747\"\u003escikit-hep/awkward#3747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: hide awkward.ak_* and awkward.str.akstr_* from 'awkward' and 'awkward.str' module by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3752\"\u003escikit-hep/awkward#3752\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: align multi-level indices before merge in \u003ccode\u003eto_dataframe()\u003c/code\u003e by \u003ca href=\"https://github.com/TaiSakuma\"\u003e\u003ccode\u003e@​TaiSakuma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3733\"\u003escikit-hep/awkward#3733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: numba test failures on Python 3.14 by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3757\"\u003escikit-hep/awkward#3757\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: incorrect passing of \u003ccode\u003eIndex\u003c/code\u003e inside nplike function in \u003ccode\u003eto_IndexedOptionArray64\u003c/code\u003e by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3727\"\u003escikit-hep/awkward#3727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: weights should not be raised to the power n in the n-th moment calculation by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3729\"\u003escikit-hep/awkward#3729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003eak.Record\u003c/code\u003e creation from iterable with nested dicts by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3728\"\u003escikit-hep/awkward#3728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: keep track of buffer key instead of field path for VirtualNDArrays \u0026amp; PlaceholderArrays by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3751\"\u003escikit-hep/awkward#3751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: typetracer nplike's \u003ccode\u003eall\u003c/code\u003e function leads to infinite recursion for \u003ccode\u003eaxis=None\u003c/code\u003e by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3765\"\u003escikit-hep/awkward#3765\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: fix compilation on self-hosted CI and test with multiple versions of CUDA by \u003ca href=\"https://github.com/ariostas\"\u003e\u003ccode\u003e@​ariostas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3704\"\u003escikit-hep/awkward#3704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update acknowledgements to include NumFOCUS affiliation by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3708\"\u003escikit-hep/awkward#3708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update pre-commit hooks 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/scikit-hep/awkward/pull/3709\"\u003escikit-hep/awkward#3709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: pytest log_level is better than log_cli_level by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3719\"\u003escikit-hep/awkward#3719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update requirements files for latest possible python versions by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3739\"\u003escikit-hep/awkward#3739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump the actions 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/scikit-hep/awkward/pull/3744\"\u003escikit-hep/awkward#3744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update pre-commit hooks 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/scikit-hep/awkward/pull/3754\"\u003escikit-hep/awkward#3754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Remove CUDA 11 support by \u003ca href=\"https://github.com/shwina\"\u003e\u003ccode\u003e@​shwina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3758\"\u003escikit-hep/awkward#3758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(ci): use macos-15-intel for x86 wheel building and testing by \u003ca href=\"https://github.com/ariostas\"\u003e\u003ccode\u003e@​ariostas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3720\"\u003escikit-hep/awkward#3720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add new versions to version selector by \u003ca href=\"https://github.com/ariostas\"\u003e\u003ccode\u003e@​ariostas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3707\"\u003escikit-hep/awkward#3707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: 3.14 is supported by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3717\"\u003escikit-hep/awkward#3717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add T90REAL as a contributor for code by \u003ca href=\"https://github.com/allcontributors\"\u003e\u003ccode\u003e@​allcontributors\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3742\"\u003escikit-hep/awkward#3742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add dependency and version change guidelines by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3745\"\u003escikit-hep/awkward#3745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add shwina as a contributor for code by \u003ca href=\"https://github.com/allcontributors\"\u003e\u003ccode\u003e@​allcontributors\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3759\"\u003escikit-hep/awkward#3759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add an example summation reducer using cccl by \u003ca href=\"https://github.com/maxymnaumchyk\"\u003e\u003ccode\u003e@​maxymnaumchyk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3762\"\u003escikit-hep/awkward#3762\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/T90REAL\"\u003e\u003ccode\u003e@​T90REAL\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3738\"\u003escikit-hep/awkward#3738\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shwina\"\u003e\u003ccode\u003e@​shwina\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3748\"\u003escikit-hep/awkward#3748\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/scikit-hep/awkward/compare/v2.8.10...v2.8.11\"\u003ehttps://github.com/scikit-hep/awkward/compare/v2.8.10...v2.8.11\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 2.8.10\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: preserve field order when replacing existing fields in with_field by \u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3681\"\u003escikit-hep/awkward#3681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add to_/from_safetensors by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3685\"\u003escikit-hep/awkward#3685\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/scikit-hep/awkward/commit/c4a2e57b47f6738670ffc0e4781a3990e7c3ff03\"\u003e\u003ccode\u003ec4a2e57\u003c/code\u003e\u003c/a\u003e awkward 2.8.11 and awkward-cpp 51\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/60072263c91fd8d5df48b487427319c5a10ae70d\"\u003e\u003ccode\u003e6007226\u003c/code\u003e\u003c/a\u003e awkward 2.8.11 and awkward-cpp 51\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/0ad8b1e25b0bd493508bade8ab8d79a383a854a0\"\u003e\u003ccode\u003e0ad8b1e\u003c/code\u003e\u003c/a\u003e fix: typetracer nplike's \u003ccode\u003eall\u003c/code\u003e function leads to infinite recursion for `axis...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/0941b378a8236a660990bd02d2c14e4d6593f28e\"\u003e\u003ccode\u003e0941b37\u003c/code\u003e\u003c/a\u003e fix: keep track of buffer key instead of field path for VirtualNDArrays \u0026amp; Pla...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/efea08c134963bc37c1013adc4ab320ebeb4d7a3\"\u003e\u003ccode\u003eefea08c\u003c/code\u003e\u003c/a\u003e chore(ci): use macos-15-intel for x86 wheel building and testing (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3720\"\u003e#3720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/87765b6adb379ba27b0f6b984607c250443b170c\"\u003e\u003ccode\u003e87765b6\u003c/code\u003e\u003c/a\u003e fix: \u003ccode\u003eak.Record\u003c/code\u003e creation from iterable with nested dicts (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3728\"\u003e#3728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/306274c1fd6028ed549fa0f9a5e47a8bd76e693c\"\u003e\u003ccode\u003e306274c\u003c/code\u003e\u003c/a\u003e fix: weights should not be raised to the power n in the n-th moment calculati...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/8872e1f4ffd781b07c2a661c235dc2d0a5f5bade\"\u003e\u003ccode\u003e8872e1f\u003c/code\u003e\u003c/a\u003e fix: incorrect passing of \u003ccode\u003eIndex\u003c/code\u003e inside nplike function in `to_IndexedOption...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/1594a70bb0d39e174996275dd251305a13f83b2b\"\u003e\u003ccode\u003e1594a70\u003c/code\u003e\u003c/a\u003e fix: numba test failures on Python 3.14 (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3757\"\u003e#3757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/ca066ddc96dd690d52956535fc7422de71ed92e3\"\u003e\u003ccode\u003eca066dd\u003c/code\u003e\u003c/a\u003e feat: ability to optionally disable the caching of virtual arrays on themselv...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scikit-hep/awkward-1.0/compare/v2.6.10...v2.8.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `awkward-cpp` from 40 to 51\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/scikit-hep/awkward-1.0/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `blinker` from 1.8.2 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/blinker/releases\"\u003eblinker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.9.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.9.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.9.0/\"\u003ehttps://pypi.org/project/blinker/1.9.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/stable/#version-1-9-0\"\u003ehttps://blinker.readthedocs.io/en/stable/#version-1-9-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/blinker/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/blinker/milestone/1?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e, \u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/173\"\u003e#173\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-eco/blinker/blob/main/CHANGES.rst\"\u003eblinker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e175\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e,\n\u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. :pr:\u003ccode\u003e172\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down.\n:issue:\u003ccode\u003e173\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-eco/blinker/commit/669f3a027828d19786e708b511277fabcd6b9532\"\u003e\u003ccode\u003e669f3a0\u003c/code\u003e\u003c/a\u003e release version 1.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/cfe116fa7912d8dcb0deee4907aa63d1efaadf5b\"\u003e\u003ccode\u003ecfe116f\u003c/code\u003e\u003c/a\u003e try disabling attestions on test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/16e4bd70a19353d9d7cf47e4df7de54936296377\"\u003e\u003ccode\u003e16e4bd7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/174\"\u003e#174\u003c/a\u003e from projectgus/bugfix/weakref_disconnect_shutdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/42561fdf065032f5c39aea04d8c3fb4db93f73f3\"\u003e\u003ccode\u003e42561fd\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;Exception ignored\u0026quot; in weakref callback during interpreter shutdown.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/dcce3e97743494433025e0b68f742f3582b6ba6a\"\u003e\u003ccode\u003edcce3e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e from pallets-eco/drop-python3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/efa95eaa080b0d4a8dcfc46ad1f387ea1ddebd97\"\u003e\u003ccode\u003eefa95ea\u003c/code\u003e\u003c/a\u003e drop support for python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/82305185358d8ce21619ec0f324688a14a89c23b\"\u003e\u003ccode\u003e8230518\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/94f1202f08c6d00a9fe1ecf5c8cba9da84e4b22f\"\u003e\u003ccode\u003e94f1202\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/8c983ecd764e1d113d24522838c2a7312460b7eb\"\u003e\u003ccode\u003e8c983ec\u003c/code\u003e\u003c/a\u003e remove previously deprecated code (\u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/f5915f3bfcd9f9da0caf6cd4858bf68068c52963\"\u003e\u003ccode\u003ef5915f3\u003c/code\u003e\u003c/a\u003e set up pre-commit lite workflow\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/blinker/compare/1.8.2...1.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cffi` from 1.17.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-cffi/cffi/releases\"\u003ecffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only) - huge thanks to the folks at Quansight Labs for all the work to get this one sorted!\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only).\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/6366c01d84e9a78e7e85f12ebe9760ba5d19b6d3\"\u003e\u003ccode\u003e6366c01\u003c/code\u003e\u003c/a\u003e release 2.0.0 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/95c847663aec401e4003927a274e4de9b8595f4f\"\u003e\u003ccode\u003e95c8476\u003c/code\u003e\u003c/a\u003e 2.0.0 post beta backports (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/195cbda66b6be9297ef6d584644e50cfdcca4e8a\"\u003e\u003ccode\u003e195cbda\u003c/code\u003e\u003c/a\u003e Release 2.0.0b1 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b4bbe7940d3f76027534db1aecbae9b61c35221a\"\u003e\u003ccode\u003eb4bbe79\u003c/code\u003e\u003c/a\u003e fix version test to support beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/7ed073de66e713cf791b6fdfa23685c81fdfd6ad\"\u003e\u003ccode\u003e7ed073d\u003c/code\u003e\u003c/a\u003e Add support for the free-threaded build (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/67a170dc7972dc9361743690b38da3d963b200ef\"\u003e\u003ccode\u003e67a170d\u003c/code\u003e\u003c/a\u003e Change the license from MIT to MIT-no-attribution, which is the same without ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/92645ec9329feb03e3fa86240b40fe0fc37469d1\"\u003e\u003ccode\u003e92645ec\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support/testing (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/177\"\u003e#177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/2b81170583a898478a6996c9705d8c38ab7f73a1\"\u003e\u003ccode\u003e2b81170\u003c/code\u003e\u003c/a\u003e doc: update test commands in Section Testing/development tips (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/25172b84cf51cf58241f074ccd1efd9c7648cb43\"\u003e\u003ccode\u003e25172b8\u003c/code\u003e\u003c/a\u003e doc: update year (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b57a92c03eb2078a99c900519a37d18b4d52324f\"\u003e\u003ccode\u003eb57a92c\u003c/code\u003e\u003c/a\u003e issue 147: force-compute nested structs before parent structs.  Occurs mainly...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 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.1.7...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `comtypes` from 1.4.12 to 1.4.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/enthought/comtypes/releases\"\u003ecomtypes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace \u003ccode\u003esetup.py\u003c/code\u003e with \u003ccode\u003epyproject.toml\u003c/code\u003e. By \u003ca href=\"https://github.com/moi15moi\"\u003e\u003ccode\u003e@​moi15moi\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate codebases for PEP585 compliance. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove Python 3.8 and add Python 3.14 to the CI pipelines. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eDeclare the minimum Python version as 3.9. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003ePyCArgObject.value\u003c/code\u003e for Python 3.14 compatibility. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd version bridges for the \u003ccode\u003e__pointer_type__\u003c/code\u003e attribute protocol. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/enthought/comtypes/blob/main/CHANGES.txt\"\u003ecomtypes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.4.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace \u003ccode\u003esetup.py\u003c/code\u003e with \u003ccode\u003epyproject.toml\u003c/code\u003e. By \u003ca href=\"https://github.com/moi15moi\"\u003e\u003ccode\u003e@​moi15moi\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate codebases for PEP585 compliance. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 1.4.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove Python 3.8 and add Python 3.14 to the CI pipelines. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eDeclare the minimum Python version as 3.9. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003ePyCArgObject.value\u003c/code\u003e for Python 3.14 compatibility. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd version bridges for the \u003ccode\u003e__pointer_type__\u003c/code\u003e attribute protocol. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\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/enthought/comtypes/commit/b4226687d1df5ccaa6d0ee0df596c0c9adc50b0a\"\u003e\u003ccode\u003eb422668\u003c/code\u003e\u003c/a\u003e Bump version and update change log for 1.4.14 (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/882\"\u003e#882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/ee4320fc96134277bf72cd42df4221772bcd902b\"\u003e\u003ccode\u003eee4320f\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003ecollections.abc.Iterator\u003c/code\u003e in \u003ccode\u003etypeannotator\u003c/code\u003e to align with PEP 585. (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/881\"\u003e#881\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/4c95d110d0d5fd286378bae0dc211b69c01f837d\"\u003e\u003ccode\u003e4c95d11\u003c/code\u003e\u003c/a\u003e Replace setup.py with pyproject.toml (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/848\"\u003e#848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/f2bd6052aa6daf3d3791e30b40bdd3fd85e3bfdd\"\u003e\u003ccode\u003ef2bd605\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003e*.py\u003c/code\u003e and \u003ccode\u003e_post_coinit/*.py\u003c/code\u003e files for PEP585 compliance. (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/ab2b95e8c76b2fa6ddc24cc911742845ede79f54\"\u003e\u003ccode\u003eab2b95e\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etools/**/*.py\u003c/code\u003e, \u003ccode\u003eserver/*.py\u003c/code\u003e and \u003ccode\u003eclient/*.py\u003c/code\u003e files for PEP585 comp...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/4134455d4c290a10e084a97c9b18ccb5ef62aaf4\"\u003e\u003ccode\u003e4134455\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest/*.py\u003c/code\u003e files for PEP585 compliance. (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/5fd01e33d9f2fc571a0f02fffab1f4ed8b241931\"\u003e\u003ccode\u003e5fd01e3\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003ehints.pyi\u003c/code\u003e and the type symbols under \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e blocks in the g...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/6d80cc6a742623130564469aaa543582e10c6301\"\u003e\u003ccode\u003e6d80cc6\u003c/code\u003e\u003c/a\u003e Improve \u003ccode\u003eGetModuleFileName\u003c/code\u003e tests and clarify virtual environment behavior. (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/fb8fd5823d83f866df43ce6f15d1b8dfd7f51f8c\"\u003e\u003ccode\u003efb8fd58\u003c/code\u003e\u003c/a\u003e Bump version and update change log for 1.4.13 (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/874\"\u003e#874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/2429d3461e30387daa901cf59fdab02aae851696\"\u003e\u003ccode\u003e2429d34\u003c/code\u003e\u003c/a\u003e Support Python 3.14 and drop Python 3.8. (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/839\"\u003e#839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/enthought/comtypes/compare/1.4.12...1.4.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `configparser` from 7.1.0 to 7.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jaraco/configparser/blob/main/NEWS.rst\"\u003econfigparser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.2.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefreshed with implementation from CPython main (3.14).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/configparser/commit/196691a5900488f11cdf276af745e36776e2209a\"\u003e\u003ccode\u003e196691a\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j...\n\n_Description has been truncated_","html_url":"https://github.com/FreeCAD/FreeCAD-addons/pull/516","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreeCAD%2FFreeCAD-addons/issues/516","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/516/packages"},{"uuid":"3705259885","node_id":"PR_kwDONa-oLc63nqM-","number":17,"state":"closed","title":"Bump pyproj from 3.7.0 to 3.7.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-08T17:31:45.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-08T08:35:12.000Z","updated_at":"2025-12-08T17:31:47.000Z","time_to_close":32193,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pyproj","old_version":"3.7.0","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pyproj](https://github.com/pyproj4/pyproj) from 3.7.0 to 3.7.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.22 to 2.23 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/pyproj4/pyproj/pull/1479\"\u003epyproj4/pyproj#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Only import time.perf_counter by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1480\"\u003epyproj4/pyproj#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1481\"\u003epyproj4/pyproj#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Python 3.11+ by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1483\"\u003epyproj4/pyproj#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.1 to 0.6.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/pyproj4/pyproj/pull/1488\"\u003epyproj4/pyproj#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: update doc geometry_area_perimeter by \u003ca href=\"https://github.com/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Remove 'noqa: E501' from docstrings by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epyproj.crs: add imports to \u003cstrong\u003eall\u003c/strong\u003e by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1494\"\u003epyproj4/pyproj#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: replace black and isort with ruff format and lint by \u003ca href=\"https://github.com/mwtoews\"\u003e\u003ccode\u003e@​mwtoews\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1496\"\u003epyproj4/pyproj#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUILD/CI: Add win_arm64 wheel build by \u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.23 to 3.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/pyproj4/pyproj/pull/1502\"\u003epyproj4/pyproj#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 3.0.0 to 3.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/pyproj4/pyproj/pull/1505\"\u003epyproj4/pyproj#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBLD: Enable free-threading compatibility by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1512\"\u003epyproj4/pyproj#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add 3.13 free-threading wheels by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1514\"\u003epyproj4/pyproj#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-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/pyproj4/pyproj/pull/1520\"\u003epyproj4/pyproj#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1519\"\u003epyproj4/pyproj#1519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout 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/pyproj4/pyproj/pull/1521\"\u003epyproj4/pyproj#1521\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/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.2rc1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.2rc0\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.1 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1477\"\u003epyproj4/pyproj#1477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in  \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1475\"\u003epyproj4/pyproj#1475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: Add wheels for musllinux by \u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead. by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1450\"\u003epyproj4/pyproj#1450\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1452\"\u003epyproj4/pyproj#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 by \u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1455\"\u003epyproj4/pyproj#1455\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Disallow type error without code by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1456\"\u003epyproj4/pyproj#1456\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/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\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/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.11 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Add CRS imports to \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add win_arm64 wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.13 free-threading wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.14 and 3.14 free-threading wheels\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Add wheels for musllinux (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1477\"\u003e#1477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1446\"\u003e#1446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff \u0026amp; lint fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1455\"\u003e#1455\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1456\"\u003e#1456\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/pyproj4/pyproj/commit/f16037d2c45c3274ef28b828998267c3390393c8\"\u003e\u003ccode\u003ef16037d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/878615decadbde676f9acc82bce9763d62fbacbe\"\u003e\u003ccode\u003e878615d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4813b2db7c0fb92f598748bb1aca85288765a354\"\u003e\u003ccode\u003e4813b2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1521\"\u003e#1521\u003c/a\u003e from pyproj4/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/66b8e0b2fb2f93a83be484cd3ae741c140123930\"\u003e\u003ccode\u003e66b8e0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/ff97ab97b5bfd02a714bf84ebd847ec366da48f8\"\u003e\u003ccode\u003eff97ab9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1519\"\u003e#1519\u003c/a\u003e from djhoese/remove-old-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3692f8aa7fc9373927178fa1774ae69811387cfb\"\u003e\u003ccode\u003e3692f8a\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1520\"\u003e#1520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f3815db4169e399271d87ce9970175edb4b4170b\"\u003e\u003ccode\u003ef3815db\u003c/code\u003e\u003c/a\u003e MNT: Update history with test removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e5ee13f82067e9c577a1bb5e2484ed91c5f96c22\"\u003e\u003ccode\u003ee5ee13f\u003c/code\u003e\u003c/a\u003e TST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26b3cdb7d68e677ebfec62549288eea02bc38ed9\"\u003e\u003ccode\u003e26b3cdb\u003c/code\u003e\u003c/a\u003e MNT: 3.7.2rc0 and update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0cd586a0fb7094b4f8fb43fe34dd2e249aec0da0\"\u003e\u003ccode\u003e0cd586a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1514\"\u003e#1514\u003c/a\u003e from djhoese/ci-313-ft\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.0...3.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyproj\u0026package-manager=pip\u0026previous-version=3.7.0\u0026new-version=3.7.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Ifeoluwakolopin/lba/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ifeoluwakolopin%2Flba/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"},{"uuid":"3704392014","node_id":"PR_kwDOO1bbZM63kwzP","number":34,"state":"closed","title":"chore(deps): bump the production-dependencies group across 1 directory with 73 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-15T02:26:50.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-08T02:32:25.000Z","updated_at":"2025-12-15T02:26:52.000Z","time_to_close":604465,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"production-dependencies","update_count":73,"packages":[{"name":"ipykernel","old_version":"6.29.5","new_version":"7.1.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"matplotlib","old_version":"3.10.3","new_version":"3.10.7","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"plotly","old_version":"6.1.2","new_version":"6.5.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"pypsa","old_version":"0.34.1","new_version":"1.0.5","repository_url":"https://github.com/PyPSA/PyPSA"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"attrs","old_version":"25.3.0","new_version":"25.4.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"bottleneck","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pydata/bottleneck"},{"name":"cdsapi","old_version":"0.7.6","new_version":"0.7.7","repository_url":"https://github.com/ecmwf/cdsapi"},{"name":"certifi","old_version":"2025.4.26","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"cfgrib","old_version":"0.9.15.0","new_version":"0.9.15.1","repository_url":"https://github.com/ecmwf/cfgrib"},{"name":"cftime","old_version":"1.6.4.post1","new_version":"1.6.5","repository_url":"https://github.com/Unidata/cftime"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"cloudpickle","old_version":"3.1.1","new_version":"3.1.2","repository_url":"https://github.com/cloudpipe/cloudpickle"},{"name":"comm","old_version":"0.2.2","new_version":"0.2.3","repository_url":"https://github.com/ipython/comm"},{"name":"contourpy","old_version":"1.3.2","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"dask","old_version":"2025.5.1","new_version":"2025.11.0","repository_url":"https://github.com/dask/dask"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.17","repository_url":"https://github.com/microsoft/debugpy"},{"name":"eccodes","old_version":"2.42.0","new_version":"2.44.0","repository_url":"https://github.com/ecmwf/eccodes-python"},{"name":"ecmwf-datastores-client","old_version":"0.2.0","new_version":"0.4.1","repository_url":"https://github.com/ecmwf/ecmwf-datastores-client"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"findlibs","old_version":"0.1.1","new_version":"0.1.2","repository_url":"https://github.com/ecmwf/findlibs"},{"name":"fonttools","old_version":"4.58.1","new_version":"4.61.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"fsspec","old_version":"2025.5.1","new_version":"2025.12.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"geopandas","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/geopandas/geopandas"},{"name":"h5netcdf","old_version":"1.6.3","new_version":"1.7.3","repository_url":"https://github.com/h5netcdf/h5netcdf"},{"name":"h5py","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/h5py/h5py"},{"name":"highspy","old_version":"1.10.0","new_version":"1.12.0","repository_url":"https://github.com/ERGO-Code/HiGHS"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"ipython","old_version":"9.3.0","new_version":"9.8.0","repository_url":"https://github.com/ipython/ipython"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"jsonschema-specifications","old_version":"2025.4.1","new_version":"2025.9.1","repository_url":"https://github.com/python-jsonschema/jsonschema-specifications"},{"name":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"kiwisolver","old_version":"1.4.8","new_version":"1.4.9","repository_url":"https://github.com/nucleic/kiwi"},{"name":"linopy","old_version":"0.5.5","new_version":"0.5.8","repository_url":"https://github.com/PyPSA/linopy"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"multiurl","old_version":"0.3.6","new_version":"0.3.7","repository_url":"https://github.com/ecmwf/multiurl"},{"name":"narwhals","old_version":"1.41.0","new_version":"2.13.0","repository_url":"https://github.com/narwhals-dev/narwhals"},{"name":"netcdf4","old_version":"1.7.2","new_version":"1.7.3","repository_url":"https://github.com/Unidata/netcdf4-python"},{"name":"networkx","old_version":"3.5","new_version":"3.6","repository_url":"https://github.com/networkx/networkx"},{"name":"numexpr","old_version":"2.10.2","new_version":"2.14.1","repository_url":"https://github.com/pydata/numexpr"},{"name":"numpy","old_version":"2.2.0","new_version":"2.3.5","repository_url":"https://github.com/numpy/numpy"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pillow","old_version":"11.2.1","new_version":"12.0.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"polars","old_version":"1.30.0","new_version":"1.35.2","repository_url":"https://github.com/pola-rs/polars"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pyogrio","old_version":"0.11.0","new_version":"0.12.1","repository_url":"https://github.com/geopandas/pyogrio"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.2.5","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyproj","old_version":"3.7.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"pytz","old_version":"2024.2","new_version":"2025.2","repository_url":"https://github.com/stub42/pytz"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"pyzmq","old_version":"26.4.0","new_version":"27.1.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"scipy","old_version":"1.15.3","new_version":"1.16.3","repository_url":"https://github.com/scipy/scipy"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"toolz","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/pytoolz/toolz"},{"name":"tornado","old_version":"6.5.1","new_version":"6.5.2","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"tzdata","old_version":"2024.2","new_version":"2025.2","repository_url":"https://github.com/python/tzdata"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.2.14","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xarray","old_version":"2025.4.0","new_version":"2025.12.0","repository_url":"https://github.com/pydata/xarray"},{"name":"zipp","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 73 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.29.5` | `7.1.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.3` | `3.10.7` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.1.2` | `6.5.0` |\n| [pypsa](https://github.com/PyPSA/PyPSA) | `0.34.1` | `1.0.5` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `25.3.0` | `25.4.0` |\n| [bottleneck](https://github.com/pydata/bottleneck) | `1.5.0` | `1.6.0` |\n| [cdsapi](https://github.com/ecmwf/cdsapi) | `0.7.6` | `0.7.7` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.4.26` | `2025.11.12` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [cfgrib](https://github.com/ecmwf/cfgrib) | `0.9.15.0` | `0.9.15.1` |\n| [cftime](https://github.com/Unidata/cftime) | `1.6.4.post1` | `1.6.5` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [cloudpickle](https://github.com/cloudpipe/cloudpickle) | `3.1.1` | `3.1.2` |\n| [comm](https://github.com/ipython/comm) | `0.2.2` | `0.2.3` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [dask](https://github.com/dask/dask) | `2025.5.1` | `2025.11.0` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.17` |\n| [eccodes](https://github.com/ecmwf/eccodes-python) | `2.42.0` | `2.44.0` |\n| [ecmwf-datastores-client](https://github.com/ecmwf/ecmwf-datastores-client) | `0.2.0` | `0.4.1` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [findlibs](https://github.com/ecmwf/findlibs) | `0.1.1` | `0.1.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.58.1` | `4.61.0` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.5.1` | `2025.12.0` |\n| [geopandas](https://github.com/geopandas/geopandas) | `1.1.0` | `1.1.1` |\n| [h5netcdf](https://github.com/h5netcdf/h5netcdf) | `1.6.3` | `1.7.3` |\n| [h5py](https://github.com/h5py/h5py) | `3.14.0` | `3.15.1` |\n| [highspy](https://github.com/ERGO-Code/HiGHS) | `1.10.0` | `1.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [ipython](https://github.com/ipython/ipython) | `9.3.0` | `9.8.0` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.8` | `1.4.9` |\n| [linopy](https://github.com/PyPSA/linopy) | `0.5.5` | `0.5.8` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [multiurl](https://github.com/ecmwf/multiurl) | `0.3.6` | `0.3.7` |\n| [narwhals](https://github.com/narwhals-dev/narwhals) | `1.41.0` | `2.13.0` |\n| [netcdf4](https://github.com/Unidata/netcdf4-python) | `1.7.2` | `1.7.3` |\n| [networkx](https://github.com/networkx/networkx) | `3.5` | `3.6` |\n| [numexpr](https://github.com/pydata/numexpr) | `2.10.2` | `2.14.1` |\n| [numpy](https://github.com/numpy/numpy) | `2.2.0` | `2.3.5` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.0.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.5.1` |\n| [polars](https://github.com/pola-rs/polars) | `1.30.0` | `1.35.2` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pyogrio](https://github.com/geopandas/pyogrio) | `0.11.0` | `0.12.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.2.5` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.7.1` | `3.7.2` |\n| [pytz](https://github.com/stub42/pytz) | `2024.2` | `2025.2` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `26.4.0` | `27.1.0` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.30.0` |\n| [scipy](https://github.com/scipy/scipy) | `1.15.3` | `1.16.3` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [toolz](https://github.com/pytoolz/toolz) | `1.0.0` | `1.1.0` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.1` | `6.5.2` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n| [tzdata](https://github.com/python/tzdata) | `2024.2` | `2025.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.0` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n| [xarray](https://github.com/pydata/xarray) | `2025.4.0` | `2025.12.0` |\n| [zipp](https://github.com/jaraco/zipp) | `3.22.0` | `3.23.0` |\n\n\nUpdates `ipykernel` from 6.29.5 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ipython/ipykernel/releases\"\u003eipykernel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0\u003c/h2\u003e\n\u003ch2\u003e7.1.0\u003c/h2\u003e\n\u003cp\u003eIPykernel 7.1.0 fixes an issue where display outputs such as Matplotlib plots were not included when using \u003ccode\u003e%notebook\u003c/code\u003e magic to save sessions as \u003ccode\u003e.ipynb\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1435\"\u003e#1435\u003c/a\u003e). This is enabled using the traitlet \u003ccode\u003eZMQDisplayPublisher.store_display_history\u003c/code\u003e which defaults to the previous behaviour of False. This is a minor release rather than a patch release due to the addition of the new traitlet.\u003c/p\u003e\n\u003cp\u003eOutput from threads is restored to the pre-6.29 behavior by default (route to latest cell, unless \u003ccode\u003eget_ipython().set_parent()\u003c/code\u003e is called explicitly from the thread. If it is called, output from that thread will continue to be routed to the same cell). This behavior is now opt-in, instead of unconditional (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1451\"\u003e#1451\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eThis release also fixes bugs that were introduced into the 7.x branch relating to Matplotlib plots in separate windows not being displayed correctly (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1458\"\u003e#1458\u003c/a\u003e), kernels launched in new threads failing asserts (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1455\"\u003e#1455\u003c/a\u003e), and \u003ccode\u003eContextVar\u003c/code\u003es persisting between cells (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1462\"\u003e#1462\u003c/a\u003e). There is also a fix for keyboard interrupts on Windows (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1434\"\u003e#1434\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v7.0.1...6f61a6835c217e42c406ee01b359e2fa235baf43\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStore display outputs in history for \u003ccode\u003e%notebook\u003c/code\u003e magic \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1435\"\u003e#1435\u003c/a\u003e (\u003ca href=\"https://github.com/Darshan808\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix ContextVar persistence across cells \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1462\"\u003e#1462\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix matplotlib eventloops \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1458\"\u003e#1458\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefer to kernel launching thread instead of assuming the main thread \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1455\"\u003e#1455\u003c/a\u003e (\u003ca href=\"https://github.com/dfalbel\"\u003e\u003ccode\u003e@​dfalbel\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix routing of background thread output when no parent is set explicitly \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1451\"\u003e#1451\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix KeyboardInterrupt on Windows by manually resetting interrupt event \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1434\"\u003e#1434\u003c/a\u003e (\u003ca href=\"https://github.com/ptosco\"\u003e\u003ccode\u003e@​ptosco\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate pre-commit and related \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1465\"\u003e#1465\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest that matplotlib event loop integration is responsive \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1463\"\u003e#1463\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate tests for 3.14 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1453\"\u003e#1453\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/graphs/contributors?from=2025-10-14\u0026amp;to=2025-10-27\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ACarreau+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ADarshan808+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Adfalbel+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dfalbel\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aianthomas23+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Akrassowski+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Alumberbot-app+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​lumberbot-app\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aminrk+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aptosco+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ptosco\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.1\u003c/h2\u003e\n\u003ch2\u003e7.0.1\u003c/h2\u003e\n\u003cp\u003eIPykernel 7.0.1 is a bug fix release to support CPython 3.14.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v7.0.0...6d9a14a21a8e328e384ebac48e4ccbaad85b1d45\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid overriding Thread._context in Python 3.14 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1447\"\u003e#1447\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ipython/ipykernel/blob/main/CHANGELOG.md\"\u003eipykernel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0\u003c/h2\u003e\n\u003cp\u003eIPykernel 7.1.0 fixes an issue where display outputs such as Matplotlib plots were not included when using \u003ccode\u003e%notebook\u003c/code\u003e magic to save sessions as \u003ccode\u003e.ipynb\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1435\"\u003e#1435\u003c/a\u003e). This is enabled using the traitlet \u003ccode\u003eZMQDisplayPublisher.store_display_history\u003c/code\u003e which defaults to the previous behaviour of False. This is a minor release rather than a patch release due to the addition of the new traitlet.\u003c/p\u003e\n\u003cp\u003eOutput from threads is restored to the pre-6.29 behavior by default (route to latest cell, unless \u003ccode\u003eget_ipython().set_parent()\u003c/code\u003e is called explicitly from the thread. If it is called, output from that thread will continue to be routed to the same cell). This behavior is now opt-in, instead of unconditional (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1451\"\u003e#1451\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eThis release also fixes bugs that were introduced into the 7.x branch relating to Matplotlib plots in separate windows not being displayed correctly (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1458\"\u003e#1458\u003c/a\u003e), kernels launched in new threads failing asserts (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1455\"\u003e#1455\u003c/a\u003e), and \u003ccode\u003eContextVar\u003c/code\u003es persisting between cells (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1462\"\u003e#1462\u003c/a\u003e). There is also a fix for keyboard interrupts on Windows (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1434\"\u003e#1434\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v7.0.1...6f61a6835c217e42c406ee01b359e2fa235baf43\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStore display outputs in history for \u003ccode\u003e%notebook\u003c/code\u003e magic \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1435\"\u003e#1435\u003c/a\u003e (\u003ca href=\"https://github.com/Darshan808\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix ContextVar persistence across cells \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1462\"\u003e#1462\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix matplotlib eventloops \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1458\"\u003e#1458\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefer to kernel launching thread instead of assuming the main thread \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1455\"\u003e#1455\u003c/a\u003e (\u003ca href=\"https://github.com/dfalbel\"\u003e\u003ccode\u003e@​dfalbel\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix routing of background thread output when no parent is set explicitly \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1451\"\u003e#1451\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix KeyboardInterrupt on Windows by manually resetting interrupt event \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1434\"\u003e#1434\u003c/a\u003e (\u003ca href=\"https://github.com/ptosco\"\u003e\u003ccode\u003e@​ptosco\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate pre-commit and related \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1465\"\u003e#1465\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest that matplotlib event loop integration is responsive \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1463\"\u003e#1463\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate tests for 3.14 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1453\"\u003e#1453\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/graphs/contributors?from=2025-10-14\u0026amp;to=2025-10-27\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ACarreau+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ADarshan808+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Adfalbel+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dfalbel\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aianthomas23+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Akrassowski+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Alumberbot-app+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​lumberbot-app\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aminrk+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aptosco+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ptosco\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e7.0.1\u003c/h2\u003e\n\u003cp\u003eIPykernel 7.0.1 is a bug fix release to support CPython 3.14.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v7.0.0...6d9a14a21a8e328e384ebac48e4ccbaad85b1d45\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid overriding Thread._context in Python 3.14 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1447\"\u003e#1447\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix 7.x license warnings \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1448\"\u003e#1448\u003c/a\u003e (\u003ca href=\"https://github.com/bollwyvl\"\u003e\u003ccode\u003e@​bollwyvl\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: Test on PyPy 3.11 instead of 3.10 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1444\"\u003e#1444\u003c/a\u003e (\u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/39eaf96ab6db0d0ff9ad269831384c53a11e11d8\"\u003e\u003ccode\u003e39eaf96\u003c/code\u003e\u003c/a\u003e Publish 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/6f61a6835c217e42c406ee01b359e2fa235baf43\"\u003e\u003ccode\u003e6f61a68\u003c/code\u003e\u003c/a\u003e test that matplotlib event loop integration is responsive (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1463\"\u003e#1463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/8446e02948c390793e129affeceedfa30ed5080f\"\u003e\u003ccode\u003e8446e02\u003c/code\u003e\u003c/a\u003e Fix KeyboardInterrupt on Windows by manually resetting interrupt event (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1434\"\u003e#1434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/dd1e09484854c8dedcd98436bc01b6b8e1cc9034\"\u003e\u003ccode\u003edd1e094\u003c/code\u003e\u003c/a\u003e update pre-commit and related (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1465\"\u003e#1465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/95f245138589db4f723b8af06107cdfeadc53314\"\u003e\u003ccode\u003e95f2451\u003c/code\u003e\u003c/a\u003e fix ContextVar persistence across cells (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1462\"\u003e#1462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/c56a7aab3cad1fb91f7e7185dc7403d561ecd667\"\u003e\u003ccode\u003ec56a7aa\u003c/code\u003e\u003c/a\u003e Fix matplotlib eventloops (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1458\"\u003e#1458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/c7af34cd19ebcd43f5aafe1919909feb6e898387\"\u003e\u003ccode\u003ec7af34c\u003c/code\u003e\u003c/a\u003e Refer to kernel laucnhing thread instead of assuming the main thread (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1455\"\u003e#1455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/7193d14de447a18470a18d60b81eda5f0048b6aa\"\u003e\u003ccode\u003e7193d14\u003c/code\u003e\u003c/a\u003e Fix routing of background thread output when no parent is set explicitly (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1451\"\u003e#1451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/b8f5dfc3a35a658c66b85213e60f634bd8a44488\"\u003e\u003ccode\u003eb8f5dfc\u003c/code\u003e\u003c/a\u003e Store display outputs in history for \u003ccode\u003e%notebook\u003c/code\u003e magic (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1435\"\u003e#1435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/93f11dbb02692a7922cb6fdb4ebadffdb8b691c0\"\u003e\u003ccode\u003e93f11db\u003c/code\u003e\u003c/a\u003e update tests for 3.14 (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ipython/ipykernel/compare/v6.29.5...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `matplotlib` from 3.10.3 to 3.10.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/matplotlib/matplotlib/releases\"\u003ematplotlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eREL: v3.10.7\u003c/h2\u003e\n\u003cp\u003eThis is the latest bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eThe most important update in this release is that the minimum version\nof \u003ccode\u003epyparsing\u003c/code\u003e has been updated to version 3.0.\u003c/p\u003e\n\u003ch2\u003eREL: v3.10.6\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eHighlights from this release include:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Fix regression of hi-dpi support for Qt\n- Fix race condition in TexManager.make_dvi \u0026amp; make_png\n- Various documentation and other bugfixes\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eREL: v3.10.5\u003c/h2\u003e\n\u003cp\u003eThis is the fourth bugfix release of the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eIncluded in this release is distributed wheels for Python 3.14 (including freethreaded) and Windows ARM.\u003c/p\u003e\n\u003cp\u003eThere are also several smaller bugfixes.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/4aeb773422464799998d900198b35cb80e94b3e1\"\u003e\u003ccode\u003e4aeb773\u003c/code\u003e\u003c/a\u003e REL: v3.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/080add32f6b3c82075ccfb1111b21d5ff9e9c075\"\u003e\u003ccode\u003e080add3\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.6-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/a604a8beed19bdda1355a29a12ab2904367cf140\"\u003e\u003ccode\u003ea604a8b\u003c/code\u003e\u003c/a\u003e Github Stats v3.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/f550261fadf30702a42bc85f71e3489a3c2f6b99\"\u003e\u003ccode\u003ef550261\u003c/code\u003e\u003c/a\u003e Zenodo v3.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/9a5e3e4253a3deaa5c83451b1208b5d46759ff7c\"\u003e\u003ccode\u003e9a5e3e4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30628\"\u003e#30628\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30626-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/eb8cb0ce31f6965713a5d46fe4fadf2dffb74773\"\u003e\u003ccode\u003eeb8cb0c\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30626\"\u003e#30626\u003c/a\u003e: MNT: Fix new F401 unused imports warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/8fadc71e0e372f05aa0305ef425c5152d70d6f39\"\u003e\u003ccode\u003e8fadc71\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/29745\"\u003e#29745\u003c/a\u003e: Use PEP8 style method and function names from (\u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30589\"\u003e#30589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/098876ee6f695f6c5297d4cf3f974c9d64ff4c79\"\u003e\u003ccode\u003e098876e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30614\"\u003e#30614\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30612-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/eb42d8637ba5891aa806fa6b0ed73835c16b2741\"\u003e\u003ccode\u003eeb42d86\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30612\"\u003e#30612\u003c/a\u003e: MNT: update black pin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/4a9c187a73fce92074b262612b3285dcff2d615e\"\u003e\u003ccode\u003e4a9c187\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30572\"\u003e#30572\u003c/a\u003e from QuLogic/auto-backport-of-pr-30571-on-v3.10.x\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.3...v3.10.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.2.3 to 2.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePandas 2.3.3\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.3.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.3.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.3 supports Python 3.9 and higher, and is the first release to support Python 3.14.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.2\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.2.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.2.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.2 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.1\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.1.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3.1/whatsnew/v2.3.1.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.1 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9c8bc3e55188c8aff37207a74f1dd144980b8874\"\u003e\u003ccode\u003e9c8bc3e\u003c/code\u003e\u003c/a\u003e RLS: 2.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/6aa788a00bda9b0f004302076dad94df3edeafc7\"\u003e\u003ccode\u003e6aa788a\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] DOC: prepare 2.3.3 whatsnew notes for release (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62499\"\u003e#62499\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62508\"\u003e#62508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b64f0df403d11ac733d9f460f89a5e99c8044ed0\"\u003e\u003ccode\u003eb64f0df\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: avoid validation error for ufunc with string[python] ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/058eb2b0edfc408dae9966ef1f03372f2a3ff04c\"\u003e\u003ccode\u003e058eb2b\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: String[pyarrow] comparison with mixed object (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62424\"\u003e#62424\u003c/a\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2ca088daef6a9d9333fea8aedffc7e50d28dfdee\"\u003e\u003ccode\u003e2ca088d\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] DEPR: remove the Period resampling deprecation (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62480\"\u003e#62480\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62\"\u003e#62\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/92bf98f623572ed053d48be5818c8503f1b61888\"\u003e\u003ccode\u003e92bf98f\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: fix .str.isdigit to honor unicode superscript for older...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e57c7d6a2247316188fba0ba2a0db3c11028d75c\"\u003e\u003ccode\u003ee57c7d6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62452\"\u003e#62452\u003c/a\u003e on branch 2.3.x (TST: Adjust tests for numexpr 2.13) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62454\"\u003e#62454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e0fe9a03c90e560c34a3bbbdd1735a8b64f7b281\"\u003e\u003ccode\u003ee0fe9a0\u003c/code\u003e\u003c/a\u003e Backport to 2.3.x: REGR: from_records not initializing subclasses properly (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/23a1085e641c8e3a5b500e319c5973e4160b9236\"\u003e\u003ccode\u003e23a1085\u003c/code\u003e\u003c/a\u003e BUG: improve future warning for boolean operations with missaligned indexes (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/61136969fb18b438b6660bd5d485d0236dbf4a71\"\u003e\u003ccode\u003e6113696\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62396\"\u003e#62396\u003c/a\u003e on branch 2.3.x (PKG/DOC: indicate Python 3.14 support in ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.2.3...v2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `plotly` from 6.1.2 to 6.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/plotly/plotly.py/releases\"\u003eplotly's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.5.0\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.2.0 to version 3.3.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v3.3.0\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5421\"\u003e#5421\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehovertemplate\u003c/code\u003e for \u003ccode\u003ecandlestick\u003c/code\u003e and \u003ccode\u003eohlc\u003c/code\u003e traces [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7619\"\u003e#7619\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where numpy datetime contained in Python list was converted to integer [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5415\"\u003e#5415\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/plotly/plotly.py/compare/v6.4.0...v6.5.0\"\u003ehttps://github.com/plotly/plotly.py/compare/v6.4.0...v6.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.4.0\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.1.1 to version 3.2.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5388\"\u003e#5357\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehovertemplatefallback\u003c/code\u003e and \u003ccode\u003etexttemplatefallback\u003c/code\u003e attributes [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7577\"\u003e#7577\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd \u0026quot;SI extended\u0026quot; formatting rule for tick exponents on axis labels, allowing values to be displayed with extended SI prefixes (e.g., femto, pico, atto) [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7249\"\u003e#7249\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate \u003ccode\u003ecreate_hexbin_mapbox\u003c/code\u003e in favor of \u003ccode\u003ecreate_hexbin_map\u003c/code\u003e, update related function calls [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5358\"\u003e5358\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/ajlien\"\u003e\u003ccode\u003e@​ajlien\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.3.1\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate Plotly.js from version 3.1.0 to version 3.1.1. See the Plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5357\"\u003e#5357\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eFix issue preventing Scattergl plots with text elements from rendering [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7563\"\u003eplotly.js#7563\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUse native legends when converting from matplotlib [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5312\"\u003e#5312\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/robertoffmoura\"\u003e\u003ccode\u003e@​robertoffmoura\u003c/code\u003e\u003c/a\u003e to the contribution!\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eshared_yaxes\u003c/code\u003e to work with secondary axes [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5180\"\u003e#5180\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/gmjw\"\u003e\u003ccode\u003e@​gmjw\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue where width/height in plot layout were not respected during Kaleido image export [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5325\"\u003e#5325\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix typo in default argument to \u003ccode\u003e_ternary_contour.py\u003c/code\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5315\"\u003e#5315\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Lexachoc\"\u003e\u003ccode\u003e@​Lexachoc\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix incorrect \u003ccode\u003efig.show()\u003c/code\u003e behavior when \u003ccode\u003eipython\u003c/code\u003e is installed [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5258\"\u003e#5258\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/plotly/plotly.py/compare/v6.3.0...v6.3.1\"\u003ehttps://github.com/plotly/plotly.py/compare/v6.3.0...v6.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.3.0\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Plotly.js from version 3.0.1 to version 3.1.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5318\"\u003e#5318\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExposed \u003ccode\u003eplotly.io.get_chrome()\u003c/code\u003e as a function which can be called from within a Python script. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5282\"\u003e#5282\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolved issue causing extraneous engine deprecation warnings [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5287\"\u003e#5287\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/jdbeel\"\u003e\u003ccode\u003e@​jdbeel\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.2.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd SRI (Subresource Integrity) hash support for CDN script tags when using \u003ccode\u003einclude_plotlyjs='cdn'\u003c/code\u003e. This enhances security by ensuring browser verification of CDN-served plotly.js files [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5165\"\u003e#5165\u003c/a\u003e] (with thanks to \u003ca href=\"https://github.com/ddworken\"\u003e\u003ccode\u003e@​ddworken\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting Plotly.js path via \u003ccode\u003epio.defaults\u003c/code\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5207\"\u003e#5207\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md\"\u003eplotly's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[6.5.0] - 2025-11-17\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.2.0 to version 3.3.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v3.3.0\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5421\"\u003e#5421\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehovertemplate\u003c/code\u003e for \u003ccode\u003ecandlestick\u003c/code\u003e and \u003ccode\u003eohlc\u003c/code\u003e traces [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7619\"\u003e#7619\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where numpy datetime contained in Python list was converted to integer [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5415\"\u003e#5415\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[6.4.0] - 2025-11-02\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.1.1 to version 3.2.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5388\"\u003e#5357\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehovertemplatefallback\u003c/code\u003e and \u003ccode\u003etexttemplatefallback\u003c/code\u003e attributes [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7577\"\u003e#7577\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd \u0026quot;SI extended\u0026quot; formatting rule for tick exponents on axis labels, allowing values to be displayed with extended SI prefixes (e.g., femto, pico, atto) [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7249\"\u003e#7249\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate \u003ccode\u003ecreate_hexbin_mapbox\u003c/code\u003e in favor of \u003ccode\u003ecreate_hexbin_map\u003c/code\u003e, update related function calls [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5358\"\u003e5358\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/ajlien\"\u003e\u003ccode\u003e@​ajlien\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[6.3.1] - 2025-10-02\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate Plotly.js from version 3.1.0 to version 3.1.1. See the Plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5357\"\u003e#5357\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eFix issue preventing Scattergl plots with text elements from rendering [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7563\"\u003eplotly.js#7563\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUse native legends when converting from matplotlib [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5312\"\u003e#5312\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/robertoffmoura\"\u003e\u003ccode\u003e@​robertoffmoura\u003c/code\u003e\u003c/a\u003e to the contribution!\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eshared_yaxes\u003c/code\u003e to work with secondary axes [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5180\"\u003e#5180\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/gmjw\"\u003e\u003ccode\u003e@​gmjw\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue where width/height in plot layout were not respected during Kaleido image export [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5325\"\u003e#5325\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix typo in default argument to \u003ccode\u003e_ternary_contour.py\u003c/code\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5315\"\u003e#5315\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Lexachoc\"\u003e\u003ccode\u003e@​Lexachoc\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix incorrect \u003ccode\u003efig.show()\u003c/code\u003e behavior when \u003ccode\u003eipython\u003c/code\u003e is installed [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5258\"\u003e#5258\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[6.3.0] - 2025-08-12\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Plotly.js from version 3.0.1 to version 3.1.0. See the Plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5318\"\u003e#5318\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExposed \u003ccode\u003eplotly.io.get_chrome()\u003c/code\u003e as a function which can be called from within a Python script. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5282\"\u003e#5282\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolved issue causing extraneous engine deprecation warnings [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5287\"\u003e#5287\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/jdbeel\"\u003e\u003ccode\u003e@​jdbeel\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[6.2.0] - 2025-06-26\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd SRI (Subresource Integrity) hash support for CDN script tags when using \u003ccode\u003einclude_plotlyjs='cdn'\u003c/code\u003e. This enhances security by ensuring browser verification of CDN-served plotly.js files [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5165\"\u003e#5165\u003c/a\u003e] (with thanks to \u003ca href=\"https://github.com/ddworken\"\u003e\u003ccode\u003e@​ddworken\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting Plotly.js path via \u003ccode\u003epio.defaults\u003c/code\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5207\"\u003e#5207\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/b19f8e54350e753b3e82cdc078293e826009a640\"\u003e\u003ccode\u003eb19f8e5\u003c/code\u003e\u003c/a\u003e changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/1ec9a16b3700a3399f7bf6d802a42510fe60c215\"\u003e\u003ccode\u003e1ec9a16\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/83a2b0b4594dd330ff23ccdb77770773ac7ef1bc\"\u003e\u003ccode\u003e83a2b0b\u003c/code\u003e\u003c/a\u003e version changes for v6.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/a49f495aee7fbee5ac0a18dab4f563e7a68ce3e7\"\u003e\u003ccode\u003ea49f495\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5421\"\u003e#5421\u003c/a\u003e from plotly/update-plotlyjs-3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/f68752659ebbe499cd50cb4ca961d882aedfa84a\"\u003e\u003ccode\u003ef687526\u003c/code\u003e\u003c/a\u003e update plotly/labextension with files from ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/83ab425007895dabe5f682400bd45671be1a6386\"\u003e\u003ccode\u003e83ab425\u003c/code\u003e\u003c/a\u003e update package-lock with new plotly.js\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/a3480f0237e76074fc3d9c47363689ae2b8a8ac7\"\u003e\u003ccode\u003ea3480f0\u003c/code\u003e\u003c/a\u003e package-lock indentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/e519d5a46e44c90b24e678a93a2548a7cb0ae567\"\u003e\u003ccode\u003ee519d5a\u003c/code\u003e\u003c/a\u003e update plotly.js to v3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/22b0ac0ee686b1fc06ecb35c1b9b7f8e5261acba\"\u003e\u003ccode\u003e22b0ac0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5415\"\u003e#5415\u003c/a\u003e from plotly/fix-np-date-handling-issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/aa30be57c36d0ca602c0683d2232e7724f2b9dcf\"\u003e\u003ccode\u003eaa30be5\u003c/code\u003e\u003c/a\u003e Update _plotly_utils/basevalidators.py\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/plotly/plotly.py/compare/v6.1.2...v6.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypsa` from 0.34.1 to 1.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyPSA/PyPSA/releases\"\u003epypsa's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.5\u003c/h2\u003e\n\u003cp\u003eRevised release notes are available in the \u003ca href=\"https://docs.pypsa.org/latest/release-notes/\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: free up disk space by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1447\"\u003ePyPSA/PyPSA#1447\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd user Serentica by \u003ca href=\"https://github.com/gincrement\"\u003e\u003ccode\u003e@​gincrement\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1453\"\u003ePyPSA/PyPSA#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1455\"\u003ePyPSA/PyPSA#1455\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: CVaR optimization fails if components have no marginal costs by \u003ca href=\"https://github.com/Irieo\"\u003e\u003ccode\u003e@​Irieo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1457\"\u003ePyPSA/PyPSA#1457\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix markdown syntax for pip install command by \u003ca href=\"https://github.com/flxlchr\"\u003e\u003ccode\u003e@​flxlchr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1460\"\u003ePyPSA/PyPSA#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: run model runs only with src changes by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1462\"\u003ePyPSA/PyPSA#1462\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: using inactive generators in global carrier constraint by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1450\"\u003ePyPSA/PyPSA#1450\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix typo and improve description by \u003ca href=\"https://github.com/flxlchr\"\u003e\u003ccode\u003e@​flxlchr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1461\"\u003ePyPSA/PyPSA#1461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate users.md by \u003ca href=\"https://github.com/gincrement\"\u003e\u003ccode\u003e@​gincrement\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1458\"\u003ePyPSA/PyPSA#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix description in stochastic optimization documentation by \u003ca href=\"https://github.com/energyLS\"\u003e\u003ccode\u003e@​energyLS\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1452\"\u003ePyPSA/PyPSA#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate users.md / Meridian Economics by \u003ca href=\"https://github.com/gincrement\"\u003e\u003ccode\u003e@​gincrement\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1463\"\u003ePyPSA/PyPSA#1463\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broadcasting bug for rolling horizon with linearised UC case by \u003ca href=\"https://github.com/Irieo\"\u003e\u003ccode\u003e@​Irieo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1464\"\u003ePyPSA/PyPSA#1464\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: expressions returning zero for non-extendable generators by \u003ca href=\"https://github.com/FabianHofmann\"\u003e\u003ccode\u003e@​FabianHofmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1451\"\u003ePyPSA/PyPSA#1451\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flxlchr\"\u003e\u003ccode\u003e@​flxlchr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1460\"\u003ePyPSA/PyPSA#1460\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyPSA/PyPSA/compare/v1.0.4...v1.0.5\"\u003ehttps://github.com/PyPSA/PyPSA/compare/v1.0.4...v1.0.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.0.4\u003c/h2\u003e\n\u003cp\u003eRevised release notes are available in the \u003ca href=\"https://PyPSA.readthedocs.io/en/latest/release-notes.html\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd example notebook on negative prices in unit commitment model by \u003ca href=\"https://github.com/Irieo\"\u003e\u003ccode\u003e@​Irieo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1434\"\u003ePyPSA/PyPSA#1434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd pypsa-asean by \u003ca href=\"https://github.com/fneum\"\u003e\u003ccode\u003e@​fneum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1435\"\u003ePyPSA/PyPSA#1435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix link in stochastic optimization example by \u003ca href=\"https://github.com/euronion\"\u003e\u003ccode\u003e@​euronion\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1436\"\u003ePyPSA/PyPSA#1436\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: snapshot selection for operational in multi period optimization by \u003ca href=\"https://github.com/FabianHofmann\"\u003e\u003ccode\u003e@​FabianHofmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1437\"\u003ePyPSA/PyPSA#1437\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: masking of nan constraints in kvl by \u003ca href=\"https://github.com/FabianHofmann\"\u003e\u003ccode\u003e@​FabianHofmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1438\"\u003ePyPSA/PyPSA#1438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of inactive storage components in constraints/variables by \u003ca href=\"https://github.com/Irieo\"\u003e\u003ccode\u003e@​Irieo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1442\"\u003ePyPSA/PyPSA#1442\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: busmap clustering for multilinks by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1441\"\u003ePyPSA/PyPSA#1441\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: follow up on \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1441\"\u003e#1441\u003c/a\u003e by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1445\"\u003ePyPSA/PyPSA#1445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnpin shapely upper bound by \u003ca href=\"https://github.com/brynpickering\"\u003e\u003ccode\u003e@​brynpickering\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1444\"\u003ePyPSA/PyPSA#1444\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: use pixi for model tests by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1443\"\u003ePyPSA/PyPSA#1443\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brynpickering\"\u003e\u003ccode\u003e@​brynpickering\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1444\"\u003ePyPSA/PyPSA#1444\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyPSA/PyPSA/compare/v1.0.3...v1.0.4\"\u003ehttps://github.com/PyPSA/PyPSA/compare/v1.0.3...v1.0.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.0.3\u003c/h2\u003e\n\u003cp\u003eRevised release notes are available in the \u003ca href=\"https://PyPSA.readthedocs.io/en/latest/release-notes.html\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyPSA/PyPSA/blob/master/docs/release-notes.md\"\u003epypsa's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.5\"\u003e\u003cstrong\u003ev1.0.5\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e4th December 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.5\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix curtailment, capacity, and capex expressions returning zero for non-extendable generators. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix using inactive generators in global carrier constraint. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix CVaR optimization to handle networks with zero operational costs. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix xarray broadcasting for rolling-horizon with linearized unit commitment optimization. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.4\"\u003e\u003cstrong\u003ev1.0.4\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e21st November 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.4\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix busmap clustering to correctly remap all bus ports in multi-port links. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of inactive \u003ccode\u003eStorageUnit\u003c/code\u003e or \u003ccode\u003eStore\u003c/code\u003e components (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix snapshot selection in operational limit global constraint with investment period. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new example notebook demonstrating negative electricity prices in linearized unit commitment problem. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.3\"\u003e\u003cstrong\u003ev1.0.3\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e6th November 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.3\u0026quot; }\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix ramp_limit_up/down constraints: correctly detect components with ramp limits, handle rolling-horizon windows by using previous-window dispatch, and add unit tests for Link ramp limits and ramping constraints in rolling horizon mode. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.2\"\u003e\u003cstrong\u003ev1.0.2\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e24th October 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.2\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite recursion error when pickling networks. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.1\"\u003e\u003cstrong\u003ev1.0.1\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e20th October 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.1\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix [\u003ccode\u003en.set_snapshots\u003c/code\u003e][pypsa.Network.set_snapshots] to synchronize investment period weightings when snapshots with new periods are set. (\u003c!-- raw HTML omitted --\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix scenario extraction methods ([pypsa.Network.get_scenario][] and [\u003ccode\u003en['scenario']\u003c/code\u003e][pypsa.Network.\u003cstrong\u003egetitem\u003c/strong\u003e]) to properly handle empty components (\u003c!-- raw HTML omitted --\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bus validation when adding global constraints via [pypsa.Network.add][], eliminating false warnings for GlobalConstraints. (\u003c!-- raw HTML omitted --\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix dimension name consistency when adding investment period weightings. (\u003c!-- raw HTML omitted --\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.0\"\u003e\u003cstrong\u003ev1.0.0\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e14th October 2025\u003c!-- raw HTML omitted --\u003e 🎉 { id=\u0026quot;v1.0.0\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003e\u003cstrong\u003ePyPSA 1.0\u003c/strong\u003e is here!\u003c/h3\u003e\n\u003cp\u003eCheck out \u003ca href=\"https://github.com/PyPSA/PyPSA/blob/master/docs/v1-guide.md\"\u003eWhat's new in PyPSA v1.0\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/470e3de1c8086f8805deca9d4c834d11e2f49c57\"\u003e\u003ccode\u003e470e3de\u003c/code\u003e\u003c/a\u003e [github-actions.ci] prepare release v1.0.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/56e9645a158e7ea8ae7df5bd2fd8b3cde7cbfe05\"\u003e\u003ccode\u003e56e9645\u003c/code\u003e\u003c/a\u003e prepare release \u003ccode\u003ev1.0.5\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/6c46fdd0f68be1543af9f17aac8af978f2030dfc\"\u003e\u003ccode\u003e6c46fdd\u003c/code\u003e\u003c/a\u003e fix: expressions returning zero for non-extendable generators (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1451\"\u003e#1451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/325e6620340d350b3977049eb0a078542c3003d6\"\u003e\u003ccode\u003e325e662\u003c/code\u003e\u003c/a\u003e Fix broadcasting bug for rolling horizon with linearised UC case (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1464\"\u003e#1464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/a4b5416e8346b4e696c6b95d25d1aed28dfd6723\"\u003e\u003ccode\u003ea4b5416\u003c/code\u003e\u003c/a\u003e Update users.md / Meridian Economics (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1463\"\u003e#1463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/4c7037dbd8b241f29494ff6473ba97e36364ee87\"\u003e\u003ccode\u003e4c7037d\u003c/code\u003e\u003c/a\u003e Update example of stochastic optimization documentation (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/53324de38945dd273185d018002649186f9f514b\"\u003e\u003ccode\u003e53324de\u003c/code\u003e\u003c/a\u003e Update users.md (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1458\"\u003e#1458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/2532a8a251cfc58d7c49669dc3693d780bac7f16\"\u003e\u003ccode\u003e2532a8a\u003c/code\u003e\u003c/a\u003e docs: fix typo and improve description (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/7460437c63887d542c1b90d65f103e4e4ff1ca56\"\u003e\u003ccode\u003e7460437\u003c/code\u003e\u003c/a\u003e fix: using inactive generators in global carrier constraint (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/681b9ac3fd5f6edeb9d23bf9ca288107f67b3965\"\u003e\u003ccode\u003e681b9ac\u003c/code\u003e\u003c/a\u003e ci: run model runs only with src changes (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1462\"\u003e#1462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyPSA/PyPSA/compare/v0.34.1...v1.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asttokens` from 3.0.0 to 3.0.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/bdbf396fc0e006912ba82f1137dfd6b2d5aa9af2\"\u003e\u003ccode\u003ebdbf396\u003c/code\u003e\u003c/a\u003e Update mypy; add 3.14 to the CI; drop python 3.8 support (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/167\"\u003e#167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/f859c055e8453650e1987c5aefaaec36582d3a07\"\u003e\u003ccode\u003ef859c05\u003c/code\u003e\u003c/a\u003e Add tests for astroid v2, v3, and v4 to the CI (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/166\"\u003e#166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/84ef059ba28d08816d3d881e363b9ed42bbeae3a\"\u003e\u003ccode\u003e84ef059\u003c/code\u003e\u003c/a\u003e Adapt asttokens for astroid 4.x (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/165\"\u003e#165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9db9335648659520c7c8453bc39550fa4f95d539\"\u003e\u003ccode\u003e9db9335\u003c/code\u003e\u003c/a\u003e Various links improvements (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/163\"\u003e#163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3371ebf7f48f6a731d409fffd6ba235e6a95d85b\"\u003e\u003ccode\u003e3371ebf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/161\"\u003e#161\u003c/a\u003e from gristlabs/dependabot/pip/docs/requests-2.32.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3a60115d3efdb01efc8a6442b59fdd0071518e70\"\u003e\u003ccode\u003e3a60115\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.2 to 2.32.4 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/584b51c6c084455ad4597886657783d1b661ddfa\"\u003e\u003ccode\u003e584b51c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/160\"\u003e#160\u003c/a\u003e from gristlabs/dependabot/pip/docs/urllib3-2.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3e9d703323ce94987bf9e030bd010eae13fa15b4\"\u003e\u003ccode\u003e3e9d703\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.2.2 to 2.5.0 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/64d3f7c3637775fef832a9a9cdb78ec02da494e6\"\u003e\u003ccode\u003e64d3f7c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/158\"\u003e#158\u003c/a\u003e from gristlabs/dependabot/pip/docs/jinja2-3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9b5fb1abfb171cfb1f01c2d996cbd31e9d1f0660\"\u003e\u003ccode\u003e9b5fb1a\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.4 to 3.1.6 in /docs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gristlabs/asttokens/compare/v3.0.0...v3.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 25.3.0 to 25.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bottleneck` from 1.5.0 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydata/bottleneck/blob/master/RELEASE.rst\"\u003ebottleneck's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eBottleneck 1.6.0\u003c/h1\u003e\n\u003cp\u003e\u003cem\u003eRelease date 2025-09-05\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eMaintenance\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Add Python 3.14 support, drop Python 3.9 \n- Add free-threading trove classifier\n- Bump upper bound on numpy to account for numpy 2.3.x\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/3e5e705762b866e401eb9c0de9ce16b4cabc6348\"\u003e\u003ccode\u003e3e5e705\u003c/code\u003e\u003c/a\u003e MAINT: fix warning about \u003ccode\u003epp_*\u003c/code\u003e skip selector for PyPy wheels not being neede...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/e3978ab0b742fc1d826193dbdf81f8c0f96b9bcf\"\u003e\u003ccode\u003ee3978ab\u003c/code\u003e\u003c/a\u003e MNT: Prepare changelog for 1.6.0  (\u003ca href=\"https://redirect.github.com/pydata/bottleneck/issues/482\"\u003e#482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/aff8796c9ccb5e4fe5baa7b0dff0076eacdfcae3\"\u003e\u003ccode\u003eaff8796\u003c/code\u003e\u003c/a\u003e CI: windows-2019 runner was retired, move to windows-2022\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/f5f011f1e165f7ad8ce64d306aaff0a3f4d335a8\"\u003e\u003ccode\u003ef5f011f\u003c/code\u003e\u003c/a\u003e MAINT: add Python 3.14 support, drop Python 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/f3944e9b02b1fa48322624e2efd1468f33a05f79\"\u003e\u003ccode\u003ef3944e9\u003c/code\u003e\u003c/a\u003e MAINT: add free-threading trove classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/148684f2bfd1af29e791fa6a7773641a7e025754\"\u003e\u003ccode\u003e148684f\u003c/code\u003e\u003c/a\u003e BLD: bump upper bound on numpy to account for numpy 2.3.x\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydata/bottleneck/compare/v1.5.0...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cdsapi` from 0.7.6 to 0.7.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ecmwf/cdsapi/releases\"\u003ecdsapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.7.7\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ecmwf/cdsapi/compare/0.7.6...0.7.7\"\u003ehttps://github.com/ecmwf/cdsapi/compare/0.7.6...0.7.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ecmwf/cdsapi/commit/e1be102bce7b7dafb27e9831c42863fdeada557b\"\u003e\u003ccode\u003ee1be102\u003c/code\u003e\u003c/a\u003e Update setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ecmwf/cdsapi/commit/72d7cec0b611c2f71c1a69da4668368df5118cdb\"\u003e\u003ccode\u003e72d7cec\u003c/code\u003e\u003c/a\u003e back to development version\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ecmwf/cdsapi/compare/0.7.6...0.7.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.4.26 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37ea150bee10958559f804f128de2fdd48e1ed45\"\u003e\u003ccode\u003e37ea150\u003c/code\u003e\u003c/a\u003e 2025.11.12 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2fa50bb698145e2401e17b23f6969d3952a6f7c1\"\u003e\u003ccode\u003e2fa50bb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.2 to 5.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6cadb5304715523e57ea425f833aa3495a4e01e4\"\u003e\u003ccode\u003e6cadb53\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fb14ac49a976b1695d84b1ac1307276a20b3aac9\"\u003e\u003ccode\u003efb14ac4\u003c/code\u003e\u003c/a\u003e 2025.10.05 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2c7c7ee6b76a118191b685a4cc028d4241f22eb7\"\u003e\u003ccode\u003e2c7c7ee\u003c/code\u003e\u003c/a\u003e Add Python 3.14 classifier in setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1a5cb7b3771bba256755f88b3dcf3ac13f064622\"\u003e\u003ccode\u003e1a5cb7b\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/dea59605ef2b266c2e0e67938e8c8535a04b1211\"\u003e\u003ccode\u003edea5960\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/83566b7c993eef772facdaff59c7bba105675329\"\u003e\u003ccode\u003e83566b7\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ca2e121bdb304fd01f802d3b1ee6a65684f569f2\"\u003e\u003ccode\u003eca2e121\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.3.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.04.26...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cffi` from 1.17.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-cffi/cffi/releases\"\u003ecffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only) - huge thanks to the folks at Quansight Labs for all the work to get this one sorted!\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only).\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/6366c01d84e9a78e7e85f12ebe9760ba5d19b6d3\"\u003e\u003ccode\u003e6366c01\u003c/code\u003e\u003c/a\u003e release 2.0.0 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/95c847663aec401e4003927a274e4de9b8595f4f\"\u003e\u003ccode\u003e95c8476\u003c/code\u003e\u003c/a\u003e 2.0.0 post beta backports (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/195cbda66b6be9297ef6d584644e50cfdcca4e8a\"\u003e\u003ccode\u003e195cbda\u003c/code\u003e\u003c/a\u003e Release 2.0.0b1 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b4bbe7940d3f76027534db1aecbae9b61c35221a\"\u003e\u003ccode\u003eb4bbe79\u003c/code\u003e\u003c/a\u003e fix version test to support beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/7ed073de66e713cf791b6fdfa23685c81fdfd6ad\"\u003e\u003ccode\u003e7ed073d\u003c/code\u003e\u003c/a\u003e Add support for the free-threaded build (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/67a170dc7972dc9361743690b38da3d963b200ef\"\u003e\u003ccode\u003e67a170d\u003c/code\u003e\u003c/a\u003e Change the license from MIT to MIT-no-attribution, which is the same without ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://githu...\n\n_Description has been truncated_","html_url":"https://github.com/ryanjenkinson/data-centre-modelling/pull/34","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanjenkinson%2Fdata-centre-modelling/issues/34","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/34/packages"},{"uuid":"3657076561","node_id":"PR_kwDOQbupqc61GrKj","number":22,"state":"open","title":"Update pyproj requirement from \u003c3.7.0 to \u003c3.8.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-24T04:50:40.000Z","updated_at":"2025-11-24T04:50:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"pyproj","old_version":"\u003c3.7.0","new_version":"\u003c3.8.0","repository_url":"https://github.com/pyproj4/pyproj"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [pyproj](https://github.com/pyproj4/pyproj) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.22 to 2.23 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/pyproj4/pyproj/pull/1479\"\u003epyproj4/pyproj#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Only import time.perf_counter by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1480\"\u003epyproj4/pyproj#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1481\"\u003epyproj4/pyproj#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Python 3.11+ by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1483\"\u003epyproj4/pyproj#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.1 to 0.6.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/pyproj4/pyproj/pull/1488\"\u003epyproj4/pyproj#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: update doc geometry_area_perimeter by \u003ca href=\"https://github.com/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Remove 'noqa: E501' from docstrings by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epyproj.crs: add imports to \u003cstrong\u003eall\u003c/strong\u003e by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1494\"\u003epyproj4/pyproj#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: replace black and isort with ruff format and lint by \u003ca href=\"https://github.com/mwtoews\"\u003e\u003ccode\u003e@​mwtoews\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1496\"\u003epyproj4/pyproj#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUILD/CI: Add win_arm64 wheel build by \u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.23 to 3.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/pyproj4/pyproj/pull/1502\"\u003epyproj4/pyproj#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 3.0.0 to 3.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/pyproj4/pyproj/pull/1505\"\u003epyproj4/pyproj#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBLD: Enable free-threading compatibility by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1512\"\u003epyproj4/pyproj#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add 3.13 free-threading wheels by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1514\"\u003epyproj4/pyproj#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-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/pyproj4/pyproj/pull/1520\"\u003epyproj4/pyproj#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1519\"\u003epyproj4/pyproj#1519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout 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/pyproj4/pyproj/pull/1521\"\u003epyproj4/pyproj#1521\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/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.11 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Add CRS imports to \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add win_arm64 wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.13 free-threading wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.14 and 3.14 free-threading wheels\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Add wheels for musllinux (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1477\"\u003e#1477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1446\"\u003e#1446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff \u0026amp; lint fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1455\"\u003e#1455\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1456\"\u003e#1456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.4.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1423\"\u003e#1423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.10 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1357\"\u003e#1357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.2 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add :meth:\u003ccode\u003eCRS.is_deprecated\u003c/code\u003e and :meth:\u003ccode\u003eCRS.get_non_deprecated\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1383\"\u003e#1383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePERF: thread local context (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add runtime \u0026amp; compiled PROJ versions (discussion \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1420\"\u003e#1420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Handle changes to HotineObliqueMercatorBConversion (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1429\"\u003e#1429\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.3.0 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Remove pkg_resources from setup.py (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Cython 3 compatibility fixes (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1321\"\u003e#1321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.9 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1111\"\u003e#1111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.2.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1291\"\u003e#1291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added allow_superseded kwargs to :class:\u003ccode\u003epyproj.transformer.TransformerGroup\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1269\"\u003e#1269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added :meth:\u003ccode\u003eCRS.to_2d\u003c/code\u003e to demote 3D CRS to 2D (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1266\"\u003e#1266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added parameter \u003ccode\u003eoutput_axis_rule\u003c/code\u003e to :meth:\u003ccode\u003eCRS.to_wkt\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1287\"\u003e#1287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: fix Geod.npts NaN handling (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1282\"\u003e#1282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.0 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1223\"\u003e#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: PROJ 9.2 in wheels (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1243\"\u003e#1243\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/pyproj4/pyproj/commit/f16037d2c45c3274ef28b828998267c3390393c8\"\u003e\u003ccode\u003ef16037d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/878615decadbde676f9acc82bce9763d62fbacbe\"\u003e\u003ccode\u003e878615d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4813b2db7c0fb92f598748bb1aca85288765a354\"\u003e\u003ccode\u003e4813b2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1521\"\u003e#1521\u003c/a\u003e from pyproj4/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/66b8e0b2fb2f93a83be484cd3ae741c140123930\"\u003e\u003ccode\u003e66b8e0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/ff97ab97b5bfd02a714bf84ebd847ec366da48f8\"\u003e\u003ccode\u003eff97ab9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1519\"\u003e#1519\u003c/a\u003e from djhoese/remove-old-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3692f8aa7fc9373927178fa1774ae69811387cfb\"\u003e\u003ccode\u003e3692f8a\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1520\"\u003e#1520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f3815db4169e399271d87ce9970175edb4b4170b\"\u003e\u003ccode\u003ef3815db\u003c/code\u003e\u003c/a\u003e MNT: Update history with test removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e5ee13f82067e9c577a1bb5e2484ed91c5f96c22\"\u003e\u003ccode\u003ee5ee13f\u003c/code\u003e\u003c/a\u003e TST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26b3cdb7d68e677ebfec62549288eea02bc38ed9\"\u003e\u003ccode\u003e26b3cdb\u003c/code\u003e\u003c/a\u003e MNT: 3.7.2rc0 and update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0cd586a0fb7094b4f8fb43fe34dd2e249aec0da0\"\u003e\u003ccode\u003e0cd586a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1514\"\u003e#1514\u003c/a\u003e from djhoese/ci-313-ft\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/v2.0.2...3.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/kharadi-saqib/geospace/pull/22","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kharadi-saqib%2Fgeospace/issues/22","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/22/packages"},{"uuid":"3577336442","node_id":"PR_kwDOBObiS86w9NkB","number":5886,"state":"closed","title":"Bump pyproj from 3.7.0 to 3.7.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-03T11:05:29.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-01T06:01:50.000Z","updated_at":"2025-11-03T11:05:38.000Z","time_to_close":191019,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pyproj","old_version":"3.7.0","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pyproj](https://github.com/pyproj4/pyproj) from 3.7.0 to 3.7.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.22 to 2.23 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/pyproj4/pyproj/pull/1479\"\u003epyproj4/pyproj#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Only import time.perf_counter by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1480\"\u003epyproj4/pyproj#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1481\"\u003epyproj4/pyproj#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Python 3.11+ by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1483\"\u003epyproj4/pyproj#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.1 to 0.6.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/pyproj4/pyproj/pull/1488\"\u003epyproj4/pyproj#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: update doc geometry_area_perimeter by \u003ca href=\"https://github.com/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Remove 'noqa: E501' from docstrings by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epyproj.crs: add imports to \u003cstrong\u003eall\u003c/strong\u003e by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1494\"\u003epyproj4/pyproj#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: replace black and isort with ruff format and lint by \u003ca href=\"https://github.com/mwtoews\"\u003e\u003ccode\u003e@​mwtoews\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1496\"\u003epyproj4/pyproj#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUILD/CI: Add win_arm64 wheel build by \u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.23 to 3.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/pyproj4/pyproj/pull/1502\"\u003epyproj4/pyproj#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 3.0.0 to 3.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/pyproj4/pyproj/pull/1505\"\u003epyproj4/pyproj#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBLD: Enable free-threading compatibility by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1512\"\u003epyproj4/pyproj#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add 3.13 free-threading wheels by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1514\"\u003epyproj4/pyproj#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-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/pyproj4/pyproj/pull/1520\"\u003epyproj4/pyproj#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1519\"\u003epyproj4/pyproj#1519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout 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/pyproj4/pyproj/pull/1521\"\u003epyproj4/pyproj#1521\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/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.2rc1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.2rc0\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.1 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1477\"\u003epyproj4/pyproj#1477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in  \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1475\"\u003epyproj4/pyproj#1475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: Add wheels for musllinux by \u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead. by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1450\"\u003epyproj4/pyproj#1450\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1452\"\u003epyproj4/pyproj#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 by \u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1455\"\u003epyproj4/pyproj#1455\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Disallow type error without code by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1456\"\u003epyproj4/pyproj#1456\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/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\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/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.11 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Add CRS imports to \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add win_arm64 wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.13 free-threading wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.14 and 3.14 free-threading wheels\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Add wheels for musllinux (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1477\"\u003e#1477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1446\"\u003e#1446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff \u0026amp; lint fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1455\"\u003e#1455\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1456\"\u003e#1456\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/pyproj4/pyproj/commit/f16037d2c45c3274ef28b828998267c3390393c8\"\u003e\u003ccode\u003ef16037d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/878615decadbde676f9acc82bce9763d62fbacbe\"\u003e\u003ccode\u003e878615d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4813b2db7c0fb92f598748bb1aca85288765a354\"\u003e\u003ccode\u003e4813b2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1521\"\u003e#1521\u003c/a\u003e from pyproj4/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/66b8e0b2fb2f93a83be484cd3ae741c140123930\"\u003e\u003ccode\u003e66b8e0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/ff97ab97b5bfd02a714bf84ebd847ec366da48f8\"\u003e\u003ccode\u003eff97ab9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1519\"\u003e#1519\u003c/a\u003e from djhoese/remove-old-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3692f8aa7fc9373927178fa1774ae69811387cfb\"\u003e\u003ccode\u003e3692f8a\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1520\"\u003e#1520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f3815db4169e399271d87ce9970175edb4b4170b\"\u003e\u003ccode\u003ef3815db\u003c/code\u003e\u003c/a\u003e MNT: Update history with test removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e5ee13f82067e9c577a1bb5e2484ed91c5f96c22\"\u003e\u003ccode\u003ee5ee13f\u003c/code\u003e\u003c/a\u003e TST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26b3cdb7d68e677ebfec62549288eea02bc38ed9\"\u003e\u003ccode\u003e26b3cdb\u003c/code\u003e\u003c/a\u003e MNT: 3.7.2rc0 and update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0cd586a0fb7094b4f8fb43fe34dd2e249aec0da0\"\u003e\u003ccode\u003e0cd586a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1514\"\u003e#1514\u003c/a\u003e from djhoese/ci-313-ft\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.0...3.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyproj\u0026package-manager=pip\u0026previous-version=3.7.0\u0026new-version=3.7.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/skyportal/skyportal/pull/5886","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyportal%2Fskyportal/issues/5886","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5886/packages"},{"uuid":"3504080464","node_id":"PR_kwDOIoSAbM6tJ6DK","number":291,"state":"open","title":"Bump the pip-updates group across 1 directory with 26 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-10-10T18:31:15.000Z","updated_at":"2025-11-13T20:00:37.104Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-updates","update_count":26,"packages":[{"name":"beautifulsoup4","old_version":"4.11.1","new_version":"4.14.2"},{"name":"black","old_version":"25.1.0","new_version":"25.9.0","repository_url":"https://github.com/psf/black"},{"name":"blinker","old_version":"1.7.0","new_version":"1.9.0","repository_url":"https://github.com/pallets-eco/blinker"},{"name":"fido2","old_version":"1.2.0","new_version":"2.0.0","repository_url":"https://github.com/Yubico/python-fido2"},{"name":"flake8","old_version":"7.0.0","new_version":"7.3.0","repository_url":"https://github.com/pycqa/flake8"},{"name":"flake8-bugbear","old_version":"22.10.27","new_version":"24.12.12","repository_url":"https://github.com/PyCQA/flake8-bugbear"},{"name":"flask","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/flask"},{"name":"flask-wtf","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/pallets-eco/flask-wtf"},{"name":"freezegun","old_version":"1.2.2","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"govuk-bank-holidays","old_version":"0.15","new_version":"0.17","repository_url":"https://github.com/ministryofjustice/govuk-bank-holidays"},{"name":"govuk-frontend-jinja","old_version":"3.3.0","new_version":"3.8.0","repository_url":"https://github.com/LandRegistry/govuk-frontend-jinja"},{"name":"humanize","old_version":"4.4.0","new_version":"4.13.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"isort","old_version":"5.12.0","new_version":"6.1.0","repository_url":"https://github.com/PyCQA/isort"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"2.1.5","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"moto","old_version":"5.1.3","new_version":"5.1.14","repository_url":"https://github.com/getmoto/moto"},{"name":"notifications-python-client","old_version":"8.0.0","new_version":"10.0.1","repository_url":"https://github.com/alphagov/notifications-python-client"},{"name":"pyproj","old_version":"3.6.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-env","old_version":"1.1.5","new_version":"1.2.0","repository_url":"https://github.com/pytest-dev/pytest-env"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-xdist","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"pytz","old_version":"2022.6","new_version":"2025.2","repository_url":"https://github.com/stub42/pytz"},{"name":"requests-mock","old_version":"1.10.0","new_version":"1.12.1","repository_url":"https://github.com/jamielennox/requests-mock"},{"name":"shapely","old_version":"2.1.1","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"wtforms","old_version":"3.1.2","new_version":"3.2.1","repository_url":"https://github.com/pallets-eco/wtforms"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-updates group with 26 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.11.1` | `4.14.2` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.9.0` |\n| [blinker](https://github.com/pallets-eco/blinker) | `1.7.0` | `1.9.0` |\n| [fido2](https://github.com/Yubico/python-fido2) | `1.2.0` | `2.0.0` |\n| [flake8](https://github.com/pycqa/flake8) | `7.0.0` | `7.3.0` |\n| [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear) | `22.10.27` | `24.12.12` |\n| [flask](https://github.com/pallets/flask) | `3.0.2` | `3.0.3` |\n| [flask-wtf](https://github.com/pallets-eco/flask-wtf) | `1.2.1` | `1.2.2` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.2.2` | `1.5.5` |\n| [govuk-bank-holidays](https://github.com/ministryofjustice/govuk-bank-holidays) | `0.15` | `0.17` |\n| [govuk-frontend-jinja](https://github.com/LandRegistry/govuk-frontend-jinja) | `3.3.0` | `3.8.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.4.0` | `4.13.0` |\n| [isort](https://github.com/PyCQA/isort) | `5.12.0` | `6.1.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `2.1.5` | `3.0.3` |\n| [moto](https://github.com/getmoto/moto) | `5.1.3` | `5.1.14` |\n| [notifications-python-client](https://github.com/alphagov/notifications-python-client) | `8.0.0` | `10.0.1` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.6.1` | `3.7.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-env](https://github.com/pytest-dev/pytest-env) | `1.1.5` | `1.2.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.6.1` | `3.8.0` |\n| [pytz](https://github.com/stub42/pytz) | `2022.6` | `2025.2` |\n| [requests-mock](https://github.com/jamielennox/requests-mock) | `1.10.0` | `1.12.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.1.1` | `2.1.2` |\n| [wtforms](https://github.com/pallets-eco/wtforms) | `3.1.2` | `3.2.1` |\n\n\nUpdates `beautifulsoup4` from 4.11.1 to 4.14.2\n\nUpdates `black` from 25.1.0 to 25.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.9.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for pre-python 3.7 \u003ccode\u003eawait/async\u003c/code\u003e as soft keywords/variable names\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash while formatting a long \u003ccode\u003edel\u003c/code\u003e statement containing tuples (\u003ca href=\"https://redirect.github.com/psf/black/issues/4628\"\u003e#4628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash while formatting expressions using the walrus operator in complex \u003ccode\u003ewith\u003c/code\u003e\nstatements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4630\"\u003e#4630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003e# fmt: skip\u003c/code\u003e followed by a comment at the end of file (\u003ca href=\"https://redirect.github.com/psf/black/issues/4635\"\u003e#4635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when a tuple appears in the \u003ccode\u003eas\u003c/code\u003e clause of a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4634\"\u003e#4634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when tuple is used as a context manager inside a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4646\"\u003e#4646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when formatting a \u003ccode\u003e\\\u003c/code\u003e followed by a \u003ccode\u003e\\r\u003c/code\u003e followed by a comment (\u003ca href=\"https://redirect.github.com/psf/black/issues/4663\"\u003e#4663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on a \u003ccode\u003e\\\\r\\n\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4673\"\u003e#4673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on \u003ccode\u003eawait ...\u003c/code\u003e (where \u003ccode\u003e...\u003c/code\u003e is a literal \u003ccode\u003eEllipsis\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on parenthesized expression inside a type parameter bound (\u003ca href=\"https://redirect.github.com/psf/black/issues/4684\"\u003e#4684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when using line ranges excluding indented single line decorated items\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a bug where one-liner functions/conditionals marked with \u003ccode\u003e# fmt: skip\u003c/code\u003e would still\nbe formatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4552\"\u003e#4552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003emultiline_string_handling\u003c/code\u003e with ternaries and dictionaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug where \u003ccode\u003estring_processing\u003c/code\u003e would not split f-strings directly after\nexpressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4680\"\u003e#4680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap the \u003ccode\u003ein\u003c/code\u003e clause of comprehensions across lines if necessary (\u003ca href=\"https://redirect.github.com/psf/black/issues/4699\"\u003e#4699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove parentheses around multiple exception types in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without\n\u003ccode\u003eas\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to normalize file newlines both from\nand to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eParser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRewrite tokenizer to improve performance and compliance (\u003ca href=\"https://redirect.github.com/psf/black/issues/4536\"\u003e#4536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\nparameter bounds and defaults. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4602\"\u003e#4602\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using an extra process when running with only one worker (\u003ca href=\"https://redirect.github.com/psf/black/issues/4734\"\u003e#4734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix the version check in the vim file to reject Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4567\"\u003e#4567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to read Black version from an additional section in\npyproject.toml: \u003ccode\u003e[project.dependency-groups]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4606\"\u003e#4606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild gallery docker image with python3-slim and reduce image size (\u003ca href=\"https://redirect.github.com/psf/black/issues/4686\"\u003e#4686\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.9.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for pre-python 3.7 \u003ccode\u003eawait/async\u003c/code\u003e as soft keywords/variable names\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash while formatting a long \u003ccode\u003edel\u003c/code\u003e statement containing tuples (\u003ca href=\"https://redirect.github.com/psf/black/issues/4628\"\u003e#4628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash while formatting expressions using the walrus operator in complex \u003ccode\u003ewith\u003c/code\u003e\nstatements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4630\"\u003e#4630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003e# fmt: skip\u003c/code\u003e followed by a comment at the end of file (\u003ca href=\"https://redirect.github.com/psf/black/issues/4635\"\u003e#4635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when a tuple appears in the \u003ccode\u003eas\u003c/code\u003e clause of a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4634\"\u003e#4634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when tuple is used as a context manager inside a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4646\"\u003e#4646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when formatting a \u003ccode\u003e\\\u003c/code\u003e followed by a \u003ccode\u003e\\r\u003c/code\u003e followed by a comment (\u003ca href=\"https://redirect.github.com/psf/black/issues/4663\"\u003e#4663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on a \u003ccode\u003e\\\\r\\n\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4673\"\u003e#4673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on \u003ccode\u003eawait ...\u003c/code\u003e (where \u003ccode\u003e...\u003c/code\u003e is a literal \u003ccode\u003eEllipsis\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on parenthesized expression inside a type parameter bound (\u003ca href=\"https://redirect.github.com/psf/black/issues/4684\"\u003e#4684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when using line ranges excluding indented single line decorated items\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a bug where one-liner functions/conditionals marked with \u003ccode\u003e# fmt: skip\u003c/code\u003e would still\nbe formatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4552\"\u003e#4552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003emultiline_string_handling\u003c/code\u003e with ternaries and dictionaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug where \u003ccode\u003estring_processing\u003c/code\u003e would not split f-strings directly after\nexpressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4680\"\u003e#4680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap the \u003ccode\u003ein\u003c/code\u003e clause of comprehensions across lines if necessary (\u003ca href=\"https://redirect.github.com/psf/black/issues/4699\"\u003e#4699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove parentheses around multiple exception types in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without\n\u003ccode\u003eas\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to normalize file newlines both from\nand to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eParser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRewrite tokenizer to improve performance and compliance (\u003ca href=\"https://redirect.github.com/psf/black/issues/4536\"\u003e#4536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\nparameter bounds and defaults. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4602\"\u003e#4602\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using an extra process when running with only one worker (\u003ca href=\"https://redirect.github.com/psf/black/issues/4734\"\u003e#4734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix the version check in the vim file to reject Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4567\"\u003e#4567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to read Black version from an additional section in\npyproject.toml: \u003ccode\u003e[project.dependency-groups]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4606\"\u003e#4606\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/af0ba72a73598c76189d6dd1b21d8532255d5942\"\u003e\u003ccode\u003eaf0ba72\u003c/code\u003e\u003c/a\u003e Prepare docs for release 25.9.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4751\"\u003e#4751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ffc01a027580d99401abb3197e83d50dc4f4c746\"\u003e\u003ccode\u003effc01a0\u003c/code\u003e\u003c/a\u003e Fix schema generation error caused by new click version (\u003ca href=\"https://redirect.github.com/psf/black/issues/4750\"\u003e#4750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/626b32fe2b5387656be6694da9a4b7a3148fb892\"\u003e\u003ccode\u003e626b32f\u003c/code\u003e\u003c/a\u003e Add normalizing for \u003ccode\u003e\\r\u003c/code\u003e style newlines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/57a461258f324e33bca189b2eb49d7f7a944ffe7\"\u003e\u003ccode\u003e57a4612\u003c/code\u003e\u003c/a\u003e Fix mypy type issue (\u003ca href=\"https://redirect.github.com/psf/black/issues/4745\"\u003e#4745\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4f6ad7cf8c3092e0fb4d82f54fe77ccde134468a\"\u003e\u003ccode\u003e4f6ad7c\u003c/code\u003e\u003c/a\u003e Wrap the \u003ccode\u003ein\u003c/code\u003e clause of comprehensions across lines if necessary (\u003ca href=\"https://redirect.github.com/psf/black/issues/4699\"\u003e#4699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/24f516961720c5578069dee30415b776359b7be5\"\u003e\u003ccode\u003e24f5169\u003c/code\u003e\u003c/a\u003e ci: Run diff-shades on unstable instead of preview (\u003ca href=\"https://redirect.github.com/psf/black/issues/4741\"\u003e#4741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4d55e6017993ee3f0927524e8bc19ead8de9e8ed\"\u003e\u003ccode\u003e4d55e60\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4744\"\u003e#4744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0cf39efdbc3aaea455f95d31e5b42efb6bd61478\"\u003e\u003ccode\u003e0cf39ef\u003c/code\u003e\u003c/a\u003e Improve the performance of get_string_prefix (\u003ca href=\"https://redirect.github.com/psf/black/issues/4742\"\u003e#4742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1f779dec013db37475fa56a5c9939a09eab7e7d6\"\u003e\u003ccode\u003e1f779de\u003c/code\u003e\u003c/a\u003e Fix line ranges decorator edge case (\u003ca href=\"https://redirect.github.com/psf/black/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/203fd6b5cdad975178b8174394a7f7fb13d14f02\"\u003e\u003ccode\u003e203fd6b\u003c/code\u003e\u003c/a\u003e Optimize Line string method (\u003ca href=\"https://redirect.github.com/psf/black/issues/4739\"\u003e#4739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...25.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `blinker` from 1.7.0 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/blinker/releases\"\u003eblinker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.9.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.9.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.9.0/\"\u003ehttps://pypi.org/project/blinker/1.9.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/stable/#version-1-9-0\"\u003ehttps://blinker.readthedocs.io/en/stable/#version-1-9-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/blinker/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/blinker/milestone/1?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e, \u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/173\"\u003e#173\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.2\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.2/\"\u003ehttps://pypi.org/project/blinker/1.8.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-2\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-2\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify type for \u003ccode\u003e_async_wrapper\u003c/code\u003e and \u003ccode\u003e_sync_wrapper\u003c/code\u003e arguments. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/156\"\u003e#156\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.1\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.1/\"\u003ehttps://pypi.org/project/blinker/1.8.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-1\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore identity handling for \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eint\u003c/code\u003e senders. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/148\"\u003e#148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.WeakNamespace\u003c/code\u003e import. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/149\"\u003e#149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.receiver_connected import\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/153\"\u003e#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse types from \u003ccode\u003ecollections.abc\u003c/code\u003e instead of \u003ccode\u003etyping\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/150\"\u003e#150\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully specify exported types as reported by pyright. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/152\"\u003e#152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.0 feature release, which may include new features, remove previously deprecated code, or add new deprecations. The 1.8.x line is now the supported fix branch, support has ended for the 1.7.x line. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.0/\"\u003ehttps://pypi.org/project/blinker/1.8.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-0\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-0\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;blinker\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/128\"\u003e#128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify that the deprecated \u003ccode\u003etemporarily_connected_to\u003c/code\u003e will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated global \u003ccode\u003ereceiver_connected\u003c/code\u003e signal and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated \u003ccode\u003eWeakNamespace\u003c/code\u003e and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eGreatly simplify how the library uses weakrefs. This is a significant change internally but should not affect any public API. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/144\"\u003e#144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose the namespace used by \u003ccode\u003esignal()\u003c/code\u003e as \u003ccode\u003edefault_namespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/145\"\u003e#145\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-eco/blinker/blob/main/CHANGES.rst\"\u003eblinker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e175\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e,\n\u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. :pr:\u003ccode\u003e172\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down.\n:issue:\u003ccode\u003e173\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.2\u003c/h2\u003e\n\u003cp\u003eReleased 2024-05-06\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify type for \u003ccode\u003e_async_wrapper\u003c/code\u003e and \u003ccode\u003e_sync_wrapper\u003c/code\u003e arguments.\n:pr:\u003ccode\u003e156\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.1\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-28\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore identity handling for \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eint\u003c/code\u003e senders. :pr:\u003ccode\u003e148\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.WeakNamespace\u003c/code\u003e import. :pr:\u003ccode\u003e149\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.receiver_connected import\u003c/code\u003e. :pr:\u003ccode\u003e153\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse types from \u003ccode\u003ecollections.abc\u003c/code\u003e instead of \u003ccode\u003etyping\u003c/code\u003e. :pr:\u003ccode\u003e150\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFully specify exported types as reported by pyright. :pr:\u003ccode\u003e152\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;blinker\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e128\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSpecify that the deprecated \u003ccode\u003etemporarily_connected_to\u003c/code\u003e will be removed in\nthe next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated global \u003ccode\u003ereceiver_connected\u003c/code\u003e\nsignal and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated \u003ccode\u003eWeakNamespace\u003c/code\u003e and specify\nthat it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eGreatly simplify how the library uses weakrefs. This is a significant change\ninternally but should not affect any public API. :pr:\u003ccode\u003e144\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eExpose the namespace used by \u003ccode\u003esignal()\u003c/code\u003e as \u003ccode\u003edefault_namespace\u003c/code\u003e.\n:pr:\u003ccode\u003e145\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-eco/blinker/commit/669f3a027828d19786e708b511277fabcd6b9532\"\u003e\u003ccode\u003e669f3a0\u003c/code\u003e\u003c/a\u003e release version 1.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/cfe116fa7912d8dcb0deee4907aa63d1efaadf5b\"\u003e\u003ccode\u003ecfe116f\u003c/code\u003e\u003c/a\u003e try disabling attestions on test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/16e4bd70a19353d9d7cf47e4df7de54936296377\"\u003e\u003ccode\u003e16e4bd7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/174\"\u003e#174\u003c/a\u003e from projectgus/bugfix/weakref_disconnect_shutdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/42561fdf065032f5c39aea04d8c3fb4db93f73f3\"\u003e\u003ccode\u003e42561fd\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;Exception ignored\u0026quot; in weakref callback during interpreter shutdown.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/dcce3e97743494433025e0b68f742f3582b6ba6a\"\u003e\u003ccode\u003edcce3e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e from pallets-eco/drop-python3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/efa95eaa080b0d4a8dcfc46ad1f387ea1ddebd97\"\u003e\u003ccode\u003eefa95ea\u003c/code\u003e\u003c/a\u003e drop support for python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/82305185358d8ce21619ec0f324688a14a89c23b\"\u003e\u003ccode\u003e8230518\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/94f1202f08c6d00a9fe1ecf5c8cba9da84e4b22f\"\u003e\u003ccode\u003e94f1202\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/8c983ecd764e1d113d24522838c2a7312460b7eb\"\u003e\u003ccode\u003e8c983ec\u003c/code\u003e\u003c/a\u003e remove previously deprecated code (\u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/f5915f3bfcd9f9da0caf6cd4858bf68068c52963\"\u003e\u003ccode\u003ef5915f3\u003c/code\u003e\u003c/a\u003e set up pre-commit lite workflow\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/blinker/compare/1.7.0...1.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fido2` from 1.2.0 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Yubico/python-fido2/releases\"\u003efido2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epython-fido2 2.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.0.0 (released 2025-05-20)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSee also the migration guide: doc/Migration_1-2.adoc.\u003c/li\u003e\n\u003cli\u003ePython 3.10 or later is now required.\u003c/li\u003e\n\u003cli\u003eWebAuthn dataclasses have been updated to align with the WebAuthn Level 3\nWorking Draft. Constructors now require keyword arguments (\u003ccode\u003ekwargs_only=True\u003c/code\u003e),\nand serialization to/from dictionaries is compatible with standardized JSON\nformats.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003efeatures.webauthn_json_mapping\u003c/code\u003e flag has been removed, as its\nbehavior (standardized JSON mapping) is now default.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFido2Client\u003c/code\u003e and \u003ccode\u003eWindowsClient\u003c/code\u003e constructors now accept a\n\u003ccode\u003eClientDataCollector\u003c/code\u003e instance instead of \u003ccode\u003eorigin\u003c/code\u003e and \u003ccode\u003everify\u003c/code\u003e parameters.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWindowsClient\u003c/code\u003e has been relocated to \u003ccode\u003efido2.client.windows\u003c/code\u003e. Importing this\nclass on non-Windows platforms will now raise an \u003ccode\u003eImportError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFido2Client\u003c/code\u003e methods now return \u003ccode\u003eRegistrationResponse\u003c/code\u003e and\n\u003ccode\u003eAuthenticationResponse\u003c/code\u003e objects, instead of raw attestation/assertion data.\u003c/li\u003e\n\u003cli\u003eCTAP2/WebAuthn extension handling has been redesigned. \u003ccode\u003eFido2Client\u003c/code\u003e now\nexpects a list of \u003ccode\u003eCtap2Extension\u003c/code\u003e instances. Default behavior includes\nextensions commonly supported by browsers.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003efido2.cbor\u003c/code\u003e module's \u003ccode\u003eload_x\u003c/code\u003e and \u003ccode\u003edump_x\u003c/code\u003e functions have been made\nprivate (renamed with a leading underscore) and should not be used directly.\u003c/li\u003e\n\u003cli\u003ePreviously deprecated functions and APIs have been removed.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003e__version__\u003c/code\u003e attribute in \u003ccode\u003efido2/__init__.py\u003c/code\u003e has been removed. Use\n\u003ccode\u003eimportlib.metadata.version('fido2')\u003c/code\u003e to get the package version.\u003c/li\u003e\n\u003cli\u003eAdd support for Persistent PinUvAuthToken and encIdentifier.\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ehmac-secret-mc\u003c/code\u003e and \u003ccode\u003ethirdPartyPayments\u003c/code\u003e exensions.\u003c/li\u003e\n\u003cli\u003eAdd new GetInfo fields based on CTAP 2.2\u003c/li\u003e\n\u003cli\u003eUpdate COSE algorithnm types.\u003c/li\u003e\n\u003cli\u003eBuilding the library now requires Poetry version 2.0 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epython-fido2 2.0.0-beta.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.0.0-beta.1 (released 2025-02-26) Preview release\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePreview release: The API may undergo changes prior to the final 2.0.0 release!\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Python \u0026gt;= 3.10\u003c/li\u003e\n\u003cli\u003eBuilding requires Poetry \u0026gt;= 2.0\u003c/li\u003e\n\u003cli\u003eWebAuthn dataclasses have been updated to reflect the current state of the spec\n(level 3 working draft), constructors require arguments to be passed by name\n(kwargs_only), and serialization to/from dict is compatible with the standardized\nJSON formats.\u003c/li\u003e\n\u003cli\u003efeatures.webauthn_json_mapping has been removed, as this behavior is now the\nstandard.\u003c/li\u003e\n\u003cli\u003eWindowsClient has been moved to fido2.client.windows. This class can no longer be\nimported on non-windows platforms (throws ImportError).\u003c/li\u003e\n\u003cli\u003eUse RegistrationResponse and AuthenticationResponse classes as return values in\nFido2Client.\u003c/li\u003e\n\u003cli\u003eCTAP2/WebAuthn extension handling has been rewritten, Fido2Client now takes a list\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/Yubico/python-fido2/blob/main/NEWS\"\u003efido2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cul\u003e\n\u003cli\u003eVersion 2.0.0 (released 2025-05-20)\n** See also the migration guide: doc/Migration_1-2.adoc.\n** Python 3.10 or later is now required.\n** WebAuthn dataclasses have been updated to align with the WebAuthn Level 3\nWorking Draft. Constructors now require keyword arguments (\u003ccode\u003ekwargs_only=True\u003c/code\u003e),\nand serialization to/from dictionaries is compatible with standardized JSON\nformats.\n** The \u003ccode\u003efeatures.webauthn_json_mapping\u003c/code\u003e flag has been removed, as its\nbehavior (standardized JSON mapping) is now default.\n** \u003ccode\u003eFido2Client\u003c/code\u003e and \u003ccode\u003eWindowsClient\u003c/code\u003e constructors now accept a\n\u003ccode\u003eClientDataCollector\u003c/code\u003e instance instead of \u003ccode\u003eorigin\u003c/code\u003e and \u003ccode\u003everify\u003c/code\u003e parameters.\n** \u003ccode\u003eWindowsClient\u003c/code\u003e has been relocated to \u003ccode\u003efido2.client.windows\u003c/code\u003e. Importing this\nclass on non-Windows platforms will now raise an \u003ccode\u003eImportError\u003c/code\u003e.\n** \u003ccode\u003eFido2Client\u003c/code\u003e methods now return \u003ccode\u003eRegistrationResponse\u003c/code\u003e and\n\u003ccode\u003eAuthenticationResponse\u003c/code\u003e objects, instead of raw attestation/assertion data.\n** CTAP2/WebAuthn extension handling has been redesigned. \u003ccode\u003eFido2Client\u003c/code\u003e now\nexpects a list of \u003ccode\u003eCtap2Extension\u003c/code\u003e instances. Default behavior includes\nextensions commonly supported by browsers.\n** The \u003ccode\u003efido2.cbor\u003c/code\u003e module's \u003ccode\u003eload_x\u003c/code\u003e and \u003ccode\u003edump_x\u003c/code\u003e functions have been made\nprivate (renamed with a leading underscore) and should not be used directly.\n** Previously deprecated functions and APIs have been removed.\n** The \u003ccode\u003e__version__\u003c/code\u003e attribute in \u003ccode\u003efido2/__init__.py\u003c/code\u003e has been removed. Use\n\u003ccode\u003eimportlib.metadata.version('fido2')\u003c/code\u003e to get the package version.\n** Add new GetInfo fields based on CTAP 2.2.\n** Add support for Persistent PinUvAuthToken and encIdentifier.\n** Add support for hmac-secret-mc and thirdPartyPayments exensions.\n** Update COSE algorithm types.\n** Building the library now requires Poetry version 2.0 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/18cdb62fce476c3f3b864dee924c21e314aadc6a\"\u003e\u003ccode\u003e18cdb62\u003c/code\u003e\u003c/a\u003e Update dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/3b28eee9f148ece775b02ebab1b5989d4c032c08\"\u003e\u003ccode\u003e3b28eee\u003c/code\u003e\u003c/a\u003e Update NEWS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/e484c54b5f114976691e0049638f2fa7f7cc11bf\"\u003e\u003ccode\u003ee484c54\u003c/code\u003e\u003c/a\u003e Add comment for clarification\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/3c21f0c9b769f8e672e7d42bca5ca1f9354e5f3d\"\u003e\u003ccode\u003e3c21f0c\u003c/code\u003e\u003c/a\u003e Bump version, update NEWS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/2c392512c52028ecb7aba4f10c3d201771e6ab55\"\u003e\u003ccode\u003e2c39251\u003c/code\u003e\u003c/a\u003e Use TYPE_CHECKING\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/57e970e17fef820197121c40516518333ac16dab\"\u003e\u003ccode\u003e57e970e\u003c/code\u003e\u003c/a\u003e Set sdist timestamps to commit date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/acd5616826d02b53201e8f5e538166589c8250bb\"\u003e\u003ccode\u003eacd5616\u003c/code\u003e\u003c/a\u003e Merge PR \u003ca href=\"https://redirect.github.com/Yubico/python-fido2/issues/254\"\u003e#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/3f258aa27a59e6edc840f4abd1a343735139c434\"\u003e\u003ccode\u003e3f258aa\u003c/code\u003e\u003c/a\u003e Update docstrings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/2d685d2088694cd816e84f0a0ede872f461cc42d\"\u003e\u003ccode\u003e2d685d2\u003c/code\u003e\u003c/a\u003e Organize imports with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/b7d6a01bb2d88cc4a8759c1bc8a1aa6300ee0972\"\u003e\u003ccode\u003eb7d6a01\u003c/code\u003e\u003c/a\u003e Replace black and flake8 with ruff\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Yubico/python-fido2/compare/1.2.0...2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8` from 7.0.0 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/c48217e1fc006c2dddd14df54e83b67da15de5cd\"\u003e\u003ccode\u003ec48217e\u003c/code\u003e\u003c/a\u003e Release 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/f9e0f33281d5bb892cae2c674ac398439d99c732\"\u003e\u003ccode\u003ef9e0f33\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1986\"\u003e#1986\u003c/a\u003e from PyCQA/document-f542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6bcdb628597fa2d03494965089ff87a492ffc1e9\"\u003e\u003ccode\u003e6bcdb62\u003c/code\u003e\u003c/a\u003e document F542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/70a15b8890d5bdf8c449ebb1b5259bd0140cc16b\"\u003e\u003ccode\u003e70a15b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1985\"\u003e#1985\u003c/a\u003e from PyCQA/upgrade-deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/4941a3e32e54488698ecbc23993bfeb2a60c0fc5\"\u003e\u003ccode\u003e4941a3e\u003c/code\u003e\u003c/a\u003e upgrade pyflakes / pycodestyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/23e4005c5501999c29e1e3774de7ed18d1e4e22d\"\u003e\u003ccode\u003e23e4005\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1983\"\u003e#1983\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/019424b80d3d7d5d8a2a1638f5877080546e3f46\"\u003e\u003ccode\u003e019424b\u003c/code\u003e\u003c/a\u003e add support for t-strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6b6f3d5fefecc994a06f425c18c3cddc9b71e4a4\"\u003e\u003ccode\u003e6b6f3d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1980\"\u003e#1980\u003c/a\u003e from PyCQA/asottile-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/8dfa6695b4fb1e1401b357367a0a71037d29f6aa\"\u003e\u003ccode\u003e8dfa669\u003c/code\u003e\u003c/a\u003e add rtd sphinx config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/ce3411118382d9332feb2749c8f417d10bfa2584\"\u003e\u003ccode\u003ece34111\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1976\"\u003e#1976\u003c/a\u003e from PyCQA/document-f824\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pycqa/flake8/compare/7.0.0...7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8-bugbear` from 22.10.27 to 24.12.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/releases\"\u003eflake8-bugbear's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e24.12.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB012 and B025 now also handle try/except* (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip B028 if warnings.warn is called with \u003ccode\u003e*args\u003c/code\u003e or \u003ccode\u003e**kwargs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd B911: itertools.batched without strict= (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReadme has anchors per check (they do not seem to render on GitHub tho)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.10.31\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB041: New dictionary same key AND value check (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/496\"\u003e#496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB037: Fix typo in error message\u003c/li\u003e\n\u003cli\u003eB024: No longer treats assigned class variables as abstract (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/471\"\u003e#471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump required attrs version to 22.2.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.8.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB910: implement to suggest using Counter() instead of defaultdict(int) (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/489\"\u003e#489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB901: Do not trigger with explicit Generator return type (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/481\"\u003e#481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB008: add some comments, rename b008_extend_immutable_calls (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB040: exception with note added not reraised or used (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB039, Add \u003ccode\u003eContextVar\u003c/code\u003e with mutable literal or function call as default\u003c/li\u003e\n\u003cli\u003eB040: Add Exception with added note not reraised. (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRun tests in Python 3.13\u003c/li\u003e\n\u003cli\u003eType annotated code (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/481\"\u003e#481\u003c/a\u003e + \u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/483\"\u003e#483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace hash with unsafe_hash (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.4.26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB909: Fix false positive affecting containers of mutables (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/469\"\u003e#469\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.4.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB950: Add pragma comment to line length ignores (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/463\"\u003e#463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB909: Add more cases to detect + more container mutating functions (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB902: Remove decorators named validator and root_validator from B902 checks (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/459\"\u003e#459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB038: Change B038 to B909 and make it optional (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/456\"\u003e#456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB038: Restrict rule to mutation functions only (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/453\"\u003e#453\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB036: Fix crash on \u003ccode\u003eraise\u003c/code\u003e statements raising something other than\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB038: Add check for mutations of loop iterator (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/446\"\u003e#446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB037: Add check for yielding or returning values in \u003cstrong\u003einit\u003c/strong\u003e() (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB017: make B017 also apply to BaseException (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/439\"\u003e#439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB036: Add check for except BaseException without re-raising (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/438\"\u003e#438\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e23.12.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB018: to detect useless-statements at all levels (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB018: Add classname to b018 useless-expression output (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB018: Include tuples in b018 useless-statement check (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/432\"\u003e#432\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/PyCQA/flake8-bugbear/commit/3a140377c8f1f585013a1566f2c8bb3ead9c329c\"\u003e\u003ccode\u003e3a14037\u003c/code\u003e\u003c/a\u003e Update CHANGES + move to version 24.12.12 to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/761dbe20148c4cdf18401789812b4a2e50257519\"\u003e\u003ccode\u003e761dbe2\u003c/code\u003e\u003c/a\u003e Make rstcheck pass again sadly ignoring anchor links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/7ee19764bf20abcf999898f5268f65b3ee1caf09\"\u003e\u003ccode\u003e7ee1976\u003c/code\u003e\u003c/a\u003e README: Add anchors for rules and config options (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/491\"\u003e#491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/b96027296277c210bbd412c78842f6f731366d0d\"\u003e\u003ccode\u003eb960272\u003c/code\u003e\u003c/a\u003e add except* support to B012\u0026amp;B025 (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/4fed293390eff2db0e3ab0658d69828ac82dfb3e\"\u003e\u003ccode\u003e4fed293\u003c/code\u003e\u003c/a\u003e Skip \u003ccode\u003eB028\u003c/code\u003e if \u003ccode\u003ewarnings.warn\u003c/code\u003e is called with \u003ccode\u003e*args\u003c/code\u003e or \u003ccode\u003e**kwargs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/994f3dd578005ec6eafff3f8fa11c25e44f5e087\"\u003e\u003ccode\u003e994f3dd\u003c/code\u003e\u003c/a\u003e Add B911: itertools.batched without strict= (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/108bba413ec71eada5c6848114614d61352557de\"\u003e\u003ccode\u003e108bba4\u003c/code\u003e\u003c/a\u003e Fix README format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/72f6116f895af3270707d3795227be63f67641af\"\u003e\u003ccode\u003e72f6116\u003c/code\u003e\u003c/a\u003e Update CHANGES + move to version 24.10.31 to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/07a5676b2181ecaf3be8fceec63b4350b445aa07\"\u003e\u003ccode\u003e07a5676\u003c/code\u003e\u003c/a\u003e Add scentence really explaining B041\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/95f87911a787a05ac22106d50c29a57fd8651e6f\"\u003e\u003ccode\u003e95f8791\u003c/code\u003e\u003c/a\u003e Add B041: Duplicate key-value pairs in dictionary literals (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/496\"\u003e#496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/compare/22.10.27...24.12.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` 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/flask/releases\"\u003eflask'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 a fix release for the 3.0.x feature branch.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.0.3/\"\u003ehttps://pypi.org/project/Flask/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/3.0.x/changes/#version-3-0-3\"\u003ehttps://flask.palletsprojects.com/en/3.0.x/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/35?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/35?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5448\"\u003e#5448\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't initialize the \u003ccode\u003ecli\u003c/code\u003e attribute in the sansio scaffold, but rather in the \u003ccode\u003eFlask\u003c/code\u003e concrete class. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5270\"\u003e#5270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-07\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e5448\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't initialize the \u003ccode\u003ecli\u003c/code\u003e attribute in the sansio scaffold, but rather in\nthe \u003ccode\u003eFlask\u003c/code\u003e concrete class. :pr:\u003ccode\u003e5270\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c12a5d874c5a014495eb2db8a73f40037bc813ac\"\u003e\u003ccode\u003ec12a5d8\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/5e22cc9eec0d1da2da706ccf724fde702b30d5f2\"\u003e\u003ccode\u003e5e22cc9\u003c/code\u003e\u003c/a\u003e Don't set the cli attribute in the sansio scaffold (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/5fdce4c331ac530280cc941179d364a07f4a1088\"\u003e\u003ccode\u003e5fdce4c\u003c/code\u003e\u003c/a\u003e Don't set the cli attribute in the sansio scaffold\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/adb7dd99c295a28726c8d818fba54c7b3f958ecc\"\u003e\u003ccode\u003eadb7dd9\u003c/code\u003e\u003c/a\u003e don't access app.logger when configuring app.logger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/b73939095564ec5c088c53e7595b00d174a018f5\"\u003e\u003ccode\u003eb739390\u003c/code\u003e\u003c/a\u003e support FIPS builds without SHA-1 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5460\"\u003e#5460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/db461112c70d5f2bf93c7a6ac27eeb665c232dd0\"\u003e\u003ccode\u003edb46111\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/7320e311a0a3f190351173f8be90cab31dadbf73\"\u003e\u003ccode\u003e7320e31\u003c/code\u003e\u003c/a\u003e start version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/87d5f5b9a9697434e6d972b021201105eabb54e6\"\u003e\u003ccode\u003e87d5f5b\u003c/code\u003e\u003c/a\u003e update project files (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5457\"\u003e#5457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/d5e321b792cd6f3cd7b072d175f47eacbd5ee14f\"\u003e\u003ccode\u003ed5e321b\u003c/code\u003e\u003c/a\u003e release version 3.0.2 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5403\"\u003e#5403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pallets/flask/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 `flask-wtf` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-wtf/releases\"\u003eflask-wtf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove the project to the pallets-eco organization. \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/602\"\u003e#602\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.8. Start support for Python 3.13. \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/603\"\u003e#603\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-eco/flask-wtf/blob/main/docs/changes.rst\"\u003eflask-wtf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2024-10-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMove the project to the pallets-eco organization. :pr:\u003ccode\u003e602\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.8. Start support for Python 3.13. :pr:\u003ccode\u003e603\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-eco/flask-wtf/commit/2e142951788d8209815fd4797c93f6f3c275ed71\"\u003e\u003ccode\u003e2e14295\u003c/code\u003e\u003c/a\u003e chore: pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/552b7a763235abbd69efc732147ec1e2c4c61ac8\"\u003e\u003ccode\u003e552b7a7\u003c/code\u003e\u003c/a\u003e chore: bump to 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/32f12767656e0f4304221e62c027fe99b67ea037\"\u003e\u003ccode\u003e32f1276\u003c/code\u003e\u003c/a\u003e chore: install 'build' dependency for the release GHA workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/f712367414346196e7fc436ad771533ed2c98898\"\u003e\u003ccode\u003ef712367\u003c/code\u003e\u003c/a\u003e chore: dependencies update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/b929162626b813b7ee2a8edb58fce861cd2e34af\"\u003e\u003ccode\u003eb929162\u003c/code\u003e\u003c/a\u003e chore: use Flask inspired GHA workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/07049e3b87aec17c693dd8cd6993e09bce679705\"\u003e\u003ccode\u003e07049e3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/604\"\u003e#604\u003c/a\u003e from azmeuk/flask-pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/49a13806e95b87735f7c196663ef5155a752dfec\"\u003e\u003ccode\u003e49a1380\u003c/code\u003e\u003c/a\u003e chore: pre-commit configuration insipred from Flask\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/f2bbd1b67a982131278488cc18ba1f65b3caafac\"\u003e\u003ccode\u003ef2bbd1b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/603\"\u003e#603\u003c/a\u003e from azmeuk/py313\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/d3cd8bf1e0d4dbd15daf1cbbf521da41e2c30d50\"\u003e\u003ccode\u003ed3cd8bf\u003c/code\u003e\u003c/a\u003e chore: stop support for python 3.8; start support for python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/0b2e5e413efb614b47f5deb8416847555e2ea07a\"\u003e\u003ccode\u003e0b2e5e4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/602\"\u003e#602\u003c/a\u003e from azmeuk/pallets-eco\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-wtf/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.2.2 to 1.5.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spulec/freezegun/blob/master/CHANGELOG\"\u003efreezegun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow parametrized arguments called 'func' (Broken in 1.5.4)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Ability to yield fixtures (broken in 1.5.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility with pytest 8.4.0 when using fixtures\u003c/li\u003e\n\u003cli\u003eAdd (back) class-decorator overload to guarantee Pytype understands it\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.7\u003c/li\u003e\n\u003cli\u003eExplicitly marks support for Python 3.13\u003c/li\u003e\n\u003cli\u003eImproved project documentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the typing of the \u003ccode\u003etick()\u003c/code\u003e method, and improve it's behaviour.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe default ignore list now contains the \u003ccode\u003equeue\u003c/code\u003e-package\u003c/li\u003e\n\u003cli\u003eAdded a missing \u003ccode\u003emove_to\u003c/code\u003e-function when calling \u003ccode\u003efreeze_time(tick=True)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixes a rounding error in \u003ccode\u003etime.time_ns()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed a bug where the default ignore list could not be empty (\u003ccode\u003econfigure(default_ignore_list=[])\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAll \u003ccode\u003etick()\u003c/code\u003e methods now return the new datetime (instead of None)\u003c/li\u003e\n\u003cli\u003eType improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e-support from 1.3.x introduced quite a few  bugs, so that functionality is now hidden behind a flag:\n\u003ccode\u003ewith freeze_time('1970-01-02', real_asyncio=True):\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded documentation for the \u003ccode\u003ereal_asyncio\u003c/code\u003e parameter in the \u003ccode\u003eREADME.rst\u003c/code\u003e file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the release number in the build\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003easyncio\u003c/code\u003e support to avoid \u003ccode\u003eawait asyncio.sleep(1)\u003c/code\u003e hanging forever.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.12\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/spulec/freezegun/commit/c9bf52c5aa12ea1b5b8647a136a92504ea071f2f\"\u003e\u003ccode\u003ec9bf52c\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0f2bd7ed8b420da73372f4cbb0207b777caa66e9\"\u003e\u003ccode\u003e0f2bd7e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/582\"\u003e#582\u003c/a\u003e from spulec/fixture-called-func\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/a6080557cbcbe4891843934c1334430bb1c5ead7\"\u003e\u003ccode\u003ea608055\u003c/code\u003e\u003c/a\u003e Allow parametrized arguments with name 'func'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/2bb47113a5f9f290d26630c92732e58f49557179\"\u003e\u003ccode\u003e2bb4711\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/7599eeea16b8f206e881892dc104128a5b36de82\"\u003e\u003ccode\u003e7599eee\u003c/code\u003e\u003c/a\u003e Add 1.5.4 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0d00e7ddd9ad33fc63fbed29af17853b18bc3c61\"\u003e\u003ccode\u003e0d00e7d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/579\"\u003e#579\u003c/a\u003e from zsh8/decorate_generator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/10c93f2d6c98f82e54470b05144cd0f17d3e1b46\"\u003e\u003ccode\u003e10c93f2\u003c/code\u003e\u003c/a\u003e fix: preserve functionality in pytest yield fixtures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/d2e0a00addb0653b0cf3be65f8fa7137c7e3bda1\"\u003e\u003ccode\u003ed2e0a00\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/6229e27d27ec61c4c55d7006db7ede6f16d7280a\"\u003e\u003ccode\u003e6229e27\u003c/code\u003e\u003c/a\u003e Add 1.5.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/3111775d6e484f55a85030c626180b592adef569\"\u003e\u003ccode\u003e3111775\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/576\"\u003e#576\u003c/a\u003e from spulec/support-fixtures-pytest-840\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spulec/freezegun/compare/1.2.2...1.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-bank-holidays` from 0.15 to 0.17\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/releases\"\u003egovuk-bank-holidays's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.17\u003c/h2\u003e\n\u003cp\u003eAdded timeout for source downloads (default being GOV.UK) before falling back to cache. With thanks to \u003ca href=\"https://github.com/ibrechin\"\u003e\u003ccode\u003e@​ibrechin\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.16...0.17\"\u003eChanges\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.16\u003c/h2\u003e\n\u003cp\u003eRemoved support for python versions older than 3.9 since they have reached end-of-life and are not available for testing in Github Actions.\nAdded python 3.13 to testing matrix.\nUpdated cached bank holidays file to include latest holidays published by GOV.UK.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.15...0.16\"\u003eChanges\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/ministryofjustice/govuk-bank-holidays/commit/a15061da364cb2927c441289a9defb767fa95551\"\u003e\u003ccode\u003ea15061d\u003c/code\u003e\u003c/a\u003e Bump to 0.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/7ccd9106a893cb6a470734e4c4e8a84439b7b24e\"\u003e\u003ccode\u003e7ccd910\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/govuk-bank-holidays/issues/25\"\u003e#25\u003c/a\u003e from ibrechin/add-request-timeout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/11dd549d0fd663e510a40772f9ebb5ec87f72fca\"\u003e\u003ccode\u003e11dd549\u003c/code\u003e\u003c/a\u003e Add configurable timeout for downloading live holiday data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/11ddc9c2e3bba5e140a5d17d54e7dd38aaa7fb56\"\u003e\u003ccode\u003e11ddc9c\u003c/code\u003e\u003c/a\u003e Bump to 0.16\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/5ad9b7b086865aa779e9a087555f841df80a858d\"\u003e\u003ccode\u003e5ad9b7b\u003c/code\u003e\u003c/a\u003e Remove (official) support and testing on python \u0026lt; 3.9 (though it should conti...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/86fd881acc6825876d46298b51f3a23aec2ea5a1\"\u003e\u003ccode\u003e86fd881\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/govuk-bank-holidays/issues/24\"\u003e#24\u003c/a\u003e from ibrechin/update-cached\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/f4ecaf843e48cb1f417ceb288080d7cd906575e2\"\u003e\u003ccode\u003ef4ecaf8\u003c/code\u003e\u003c/a\u003e Update cached bank holidays\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.15...0.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-frontend-jinja` from 3.3.0 to 3.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases\"\u003egovuk-frontend-jinja's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.8.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.12.0\"\u003eGOV.UK Frontend v5.12.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.9 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/82\"\u003e#82\u003c/a\u003e - Templates use lower filter on values where it should not\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/tim-s-ccs\"\u003e\u003ccode\u003e@​tim-s-ccs\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/samuelhwilliams\"\u003e\u003ccode\u003e@​samuelhwilliams\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.11.1\"\u003eGOV.UK Frontend v5.11.1\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.10.0\"\u003eGOV.UK Frontend v5.10.0\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIntroduced rebranding logic in \u003ccode\u003eheader\u003c/code\u003e, \u003ccode\u003efooter\u003c/code\u003e, and \u003ccode\u003eservice-navigation\u003c/code\u003e components.\u003c/li\u003e\n\u003cli\u003eAdded a new \u003ccode\u003elogo.html\u003c/code\u003e macro for enhanced branding capabilities.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003etemplate.html\u003c/code\u003e to handle rebranding dynamically through variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgraded dependencies in \u003ccode\u003erequirements-test-*.txt\u003c/code\u003e files to the latest minor/patch versions:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eclick\u003c/code\u003e → v8.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflake8\u003c/code\u003e → v7.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ejinja2\u003c/code\u003e → v3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epycodestyle\u003c/code\u003e → v2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epyflakes\u003c/code\u003e → v3.3.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eREADME.md\u003c/code\u003e badges to reflect the latest project state.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecated legacy crown logos in favour of the Tudor Crown.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved attribute handling in \u003ccode\u003eservice-navigation\u003c/code\u003e and other components.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.9.0\"\u003eGOV.UK Frontend v5.9.0\u003c/a\u003e support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/LandRegistry/govuk-frontend-jinja/blob/main/CHANGELOG.md\"\u003egovuk-frontend-jinja's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.8.0\"\u003e3.8.0\u003c/a\u003e - 06/10/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.12.0\"\u003eGOV.UK Frontend v5.12.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.9 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/82\"\u003e#82\u003c/a\u003e - Templates use lower filter on values where it should not\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/tim-s-ccs\"\u003eTim South\u003c/a\u003e and \u003ca href=\"https://github.com/samuelhwilliams\"\u003eSamuel Williams\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.7.0\"\u003e3.7.0\u003c/a\u003e - 14/08/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.11.1\"\u003eGOV.UK Frontend v5.11.1\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.6.0\"\u003e3.6.0\u003c/a\u003e - 14/05/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.10.0\"\u003eGOV.UK Frontend v5.10.0\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIntroduced rebranding logic in \u003ccode\u003eheader\u003c/code\u003e, \u003ccode\u003efooter\u003c/code\u003e, and \u003ccode\u003eservice-navigation\u003c/code\u003e components.\u003c/li\u003e\n\u003cli\u003eAdded a new \u003ccode\u003elogo.html\u003c/code\u003e macro for enhanced branding capabilities.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003etemplate.html\u003c/code\u003e to handle rebranding dynamically through variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgraded dependencies in \u003ccode\u003erequirements-test-*.txt\u003c/code\u003e files to the latest minor/patch versions:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eclick\u003c/code\u003e → v8.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflake8\u003c/code\u003e → v7.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ejinja2\u003c/code\u003e → v3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epycodestyle\u003c/code\u003e → v2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epyflakes\u003c/code\u003e → v3.3.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eREADME.md\u003c/code\u003e badges to reflect the latest project state.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecated legacy crown logos in favor of the Tudor Crown.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved attribute handling in \u003ccode\u003eservice-navigation\u003c/code\u003e and other components.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.5.0\"\u003e3.5.0\u003c/a\u003e - 05/03/2025\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/LandRegistry/govuk-frontend-jinja/commit/b9a6fd3f452c1c61dfbd06a71c875d0bba917018\"\u003e\u003ccode\u003eb9a6fd3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/101\"\u003e#101\u003c/a\u003e from LandRegistry/govuk-frontend-512\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/be989e3c402ebb622eb895b6e5d9a9b6d72fed0d\"\u003e\u003ccode\u003ebe989e3\u003c/code\u003e\u003c/a\u003e refine fixed issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/e28b6095d4909d21e1e3e6c2dfbf44c43b993b6a\"\u003e\u003ccode\u003ee28b609\u003c/code\u003e\u003c/a\u003e identical requirements since 3.9 removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/2738e28a5b77a3e93c2427eec1c57e42ce2e9d81\"\u003e\u003ccode\u003e2738e28\u003c/code\u003e\u003c/a\u003e upgrade test dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/9b9de9b8d38dcffe96c6c169cf69c24e6fd3c7bd\"\u003e\u003ccode\u003e9b9de9b\u003c/code\u003e\u003c/a\u003e Templates use lower filter on values where it should not\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/cdf76723a0476900916454aea731747a80306ad4\"\u003e\u003ccode\u003ecdf7672\u003c/code\u003e\u003c/a\u003e only lowercase bools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/31a0b0a7274fb41d22b628031b33da66b01ab691\"\u003e\u003ccode\u003e31a0b0a\u003c/code\u003e\u003c/a\u003e minor version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/4d2deb03d13f8bebb74984a1978b25835d09d565\"\u003e\u003ccode\u003e4d2deb0\u003c/code\u003e\u003c/a\u003e drop python 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/c125a6501a14edf3febd16c76d755058f5ca739d\"\u003e\u003ccode\u003ec125a65\u003c/code\u003e\u003c/a\u003e test 5.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/0fb146b1d9a5595f0a0a99aaed94fbfd7bddd637\"\u003e\u003ccode\u003e0fb146b\u003c/code\u003e\u003c/a\u003e bump versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/compare/3.3.0...3.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `humanize` from 4.4.0 to 4.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-humanize/humanize/releases\"\u003ehumanize's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.13.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimise \u003ccode\u003enaturalsize\u003c/code\u003e algorithm by using \u003ccode\u003emath.log\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/253\"\u003e#253\u003c/a\u003e) \u003ca href=\"https://github.com/Zaczero\"\u003e\u003ccode\u003e@​Zaczero\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprecisedelta\u003c/code\u003e rounding (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/254\"\u003e#254\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.3\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003enaturalsize\u003c/code\u003e for \u003ccode\u003efloat\u003c/code\u003e and \u003ccode\u003estr\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/250\"\u003e#250\u003c/a\u003e) \u003ca href=\"https://github.com/loicleyendecker\"\u003e\u003ccode\u003e@​loicleyendecker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprovements for French translation (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/248\"\u003e#248\u003c/a\u003e) \u003ca href=\"https://github.com/merwok\"\u003e\u003ccode\u003e@​merwok\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.2\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate license file reference from \u003ccode\u003eLICENSE\u003c/code\u003e to \u003ccode\u003eLICENCE\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/243\"\u003e#243\u003c/a\u003e) \u003ca href=\"https://github.com/williamjamir\"\u003e\u003ccode\u003e@​williamjamir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate docstring in naturaldelta (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/242\"\u003e#242\u003c/a\u003e) \u003ca href=\"https://github.com/teobucci\"\u003e\u003ccode\u003e@​teobucci\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore \u003ccode\u003esys.monitoring\u003c/code\u003e warning for Python 3.11 and earlier in coverage.py config (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/244\"\u003e#244\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003enaturalsize\u003c/code\u003e for float (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/240\"\u003e#240\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and test PyPy3.11 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/235\"\u003e#235\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle en_GB and en_US locale (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/230\"\u003e#230\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease to PyPI using Trusted Publishing (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/213\"\u003e#213\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefer imports for faster overall import time: 19 ms -\u0026gt; 3 ms (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/234\"\u003e#234\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/238\"\u003e#238\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace deprecated classifier with licence expression (PEP 639) (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/236\"\u003e#236\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLint and test with tox-uv (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/212\"\u003e#212\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix overflow issue in \u003ccode\u003enaturalsize\u003c/code\u003e with \u003ccode\u003enp.int32\u003c/code\u003e input (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/218\"\u003e#218\u003c/a\u003e) \u003ca href=\"https://github.com/Toprak2\"\u003e\u003ccode\u003e@​Toprak2\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pt_BR locale (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/216\"\u003e#216\u003c/a\u003e) \u003ca href=\"https://github.com/cuducos\"\u003e\u003ccode\u003e@​cuducos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGenerate translation binaries during release (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/232\"\u003e#232\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003enatural_list\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/110\"\u003e#110\u003c/a\u003e) \u003ca href=\"https://github.com/akshaybabloo\"\u003e\u003ccode\u003e@​akshaybabloo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/0e027051034b7dcb4eb65aded290cf56a89d8aa9\"\u003e\u003ccode\u003e0e02705\u003c/code\u003e\u003c/a\u003e Update config (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/288a7a7c1dbfd1c977add3c54a7c9283039a6c71\"\u003e\u003ccode\u003e288a7a7\u003c/code\u003e\u003c/a\u003e Test free-threaded Python 3.13t and 3.14t (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/0f5d2948d674a88a611f8e341c0df520767b1b80\"\u003e\u003ccode\u003e0f5d294\u003c/code\u003e\u003c/a\u003e Precisedelta rounding (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/254\"\u003e#254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/58d10b43175a22eb9ece2c6f3dcff6b6b681e2df\"\u003e\u003ccode\u003e58d10b4\u003c/code\u003e\u003c/a\u003e Update docs/requirements.txt (\u003ca href=\"http...\n\n_Description has been truncated_","html_url":"https://github.com/alphagov/emergency-alerts-admin/pull/291","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphagov%2Femergency-alerts-admin/issues/291","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/291/packages"},{"uuid":"2891687480","node_id":"PR_kwDOFgUJx86sW6Y4","number":3016,"state":"closed","title":"Bump pyproj from 3.7.1 to 3.7.2 in /requirements","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-10-06T20:36:05.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-06T20:05:14.000Z","updated_at":"2025-10-06T20:36:06.000Z","time_to_close":1851,"merged_at":"2025-10-06T20:36:05.000Z","merged_by":"adamjstewart","closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pyproj","old_version":"3.7.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"}],"path":"/requirements","ecosystem":"pip"},"body":"Bumps [pyproj](https://github.com/pyproj4/pyproj) from 3.7.1 to 3.7.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.22 to 2.23 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/pyproj4/pyproj/pull/1479\"\u003epyproj4/pyproj#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Only import time.perf_counter by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1480\"\u003epyproj4/pyproj#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1481\"\u003epyproj4/pyproj#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Python 3.11+ by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1483\"\u003epyproj4/pyproj#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.1 to 0.6.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/pyproj4/pyproj/pull/1488\"\u003epyproj4/pyproj#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: update doc geometry_area_perimeter by \u003ca href=\"https://github.com/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Remove 'noqa: E501' from docstrings by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epyproj.crs: add imports to \u003cstrong\u003eall\u003c/strong\u003e by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1494\"\u003epyproj4/pyproj#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: replace black and isort with ruff format and lint by \u003ca href=\"https://github.com/mwtoews\"\u003e\u003ccode\u003e@​mwtoews\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1496\"\u003epyproj4/pyproj#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUILD/CI: Add win_arm64 wheel build by \u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.23 to 3.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/pyproj4/pyproj/pull/1502\"\u003epyproj4/pyproj#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 3.0.0 to 3.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/pyproj4/pyproj/pull/1505\"\u003epyproj4/pyproj#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBLD: Enable free-threading compatibility by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1512\"\u003epyproj4/pyproj#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add 3.13 free-threading wheels by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1514\"\u003epyproj4/pyproj#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-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/pyproj4/pyproj/pull/1520\"\u003epyproj4/pyproj#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1519\"\u003epyproj4/pyproj#1519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout 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/pyproj4/pyproj/pull/1521\"\u003epyproj4/pyproj#1521\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/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.2rc1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.2rc0\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\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/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.11 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Add CRS imports to \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add win_arm64 wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.13 free-threading wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.14 and 3.14 free-threading wheels\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f16037d2c45c3274ef28b828998267c3390393c8\"\u003e\u003ccode\u003ef16037d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/878615decadbde676f9acc82bce9763d62fbacbe\"\u003e\u003ccode\u003e878615d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4813b2db7c0fb92f598748bb1aca85288765a354\"\u003e\u003ccode\u003e4813b2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1521\"\u003e#1521\u003c/a\u003e from pyproj4/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/66b8e0b2fb2f93a83be484cd3ae741c140123930\"\u003e\u003ccode\u003e66b8e0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/ff97ab97b5bfd02a714bf84ebd847ec366da48f8\"\u003e\u003ccode\u003eff97ab9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1519\"\u003e#1519\u003c/a\u003e from djhoese/remove-old-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3692f8aa7fc9373927178fa1774ae69811387cfb\"\u003e\u003ccode\u003e3692f8a\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1520\"\u003e#1520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f3815db4169e399271d87ce9970175edb4b4170b\"\u003e\u003ccode\u003ef3815db\u003c/code\u003e\u003c/a\u003e MNT: Update history with test removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e5ee13f82067e9c577a1bb5e2484ed91c5f96c22\"\u003e\u003ccode\u003ee5ee13f\u003c/code\u003e\u003c/a\u003e TST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26b3cdb7d68e677ebfec62549288eea02bc38ed9\"\u003e\u003ccode\u003e26b3cdb\u003c/code\u003e\u003c/a\u003e MNT: 3.7.2rc0 and update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0cd586a0fb7094b4f8fb43fe34dd2e249aec0da0\"\u003e\u003ccode\u003e0cd586a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1514\"\u003e#1514\u003c/a\u003e from djhoese/ci-313-ft\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyproj\u0026package-manager=pip\u0026previous-version=3.7.1\u0026new-version=3.7.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/torchgeo/torchgeo/pull/3016","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/torchgeo%2Ftorchgeo/issues/3016","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3016/packages"},{"uuid":"2891323259","node_id":"PR_kwDOKrpNGs6sVhd7","number":2109,"state":"open","title":"Bump pyproj from 3.6.1 to 3.7.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-06T18:13:53.000Z","updated_at":"2025-10-06T18:13:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pyproj","old_version":"3.6.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pyproj](https://github.com/pyproj4/pyproj) from 3.6.1 to 3.7.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.22 to 2.23 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/pyproj4/pyproj/pull/1479\"\u003epyproj4/pyproj#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Only import time.perf_counter by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1480\"\u003epyproj4/pyproj#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1481\"\u003epyproj4/pyproj#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Python 3.11+ by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1483\"\u003epyproj4/pyproj#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.1 to 0.6.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/pyproj4/pyproj/pull/1488\"\u003epyproj4/pyproj#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: update doc geometry_area_perimeter by \u003ca href=\"https://github.com/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Remove 'noqa: E501' from docstrings by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epyproj.crs: add imports to \u003cstrong\u003eall\u003c/strong\u003e by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1494\"\u003epyproj4/pyproj#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: replace black and isort with ruff format and lint by \u003ca href=\"https://github.com/mwtoews\"\u003e\u003ccode\u003e@​mwtoews\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1496\"\u003epyproj4/pyproj#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUILD/CI: Add win_arm64 wheel build by \u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.23 to 3.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/pyproj4/pyproj/pull/1502\"\u003epyproj4/pyproj#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 3.0.0 to 3.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/pyproj4/pyproj/pull/1505\"\u003epyproj4/pyproj#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBLD: Enable free-threading compatibility by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1512\"\u003epyproj4/pyproj#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add 3.13 free-threading wheels by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1514\"\u003epyproj4/pyproj#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-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/pyproj4/pyproj/pull/1520\"\u003epyproj4/pyproj#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1519\"\u003epyproj4/pyproj#1519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout 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/pyproj4/pyproj/pull/1521\"\u003epyproj4/pyproj#1521\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/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.2rc1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.2rc0\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.1 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1477\"\u003epyproj4/pyproj#1477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in  \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1475\"\u003epyproj4/pyproj#1475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: Add wheels for musllinux by \u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead. by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1450\"\u003epyproj4/pyproj#1450\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1452\"\u003epyproj4/pyproj#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 by \u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1455\"\u003epyproj4/pyproj#1455\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Disallow type error without code by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1456\"\u003epyproj4/pyproj#1456\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/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\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/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.11 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Add CRS imports to \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add win_arm64 wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.13 free-threading wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.14 and 3.14 free-threading wheels\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Add wheels for musllinux (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1477\"\u003e#1477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1446\"\u003e#1446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff \u0026amp; lint fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1455\"\u003e#1455\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1456\"\u003e#1456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.4.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1423\"\u003e#1423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.10 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1357\"\u003e#1357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.2 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add :meth:\u003ccode\u003eCRS.is_deprecated\u003c/code\u003e and :meth:\u003ccode\u003eCRS.get_non_deprecated\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1383\"\u003e#1383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePERF: thread local context (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add runtime \u0026amp; compiled PROJ versions (discussion \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1420\"\u003e#1420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Handle changes to HotineObliqueMercatorBConversion (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1429\"\u003e#1429\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/pyproj4/pyproj/commit/f16037d2c45c3274ef28b828998267c3390393c8\"\u003e\u003ccode\u003ef16037d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/878615decadbde676f9acc82bce9763d62fbacbe\"\u003e\u003ccode\u003e878615d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4813b2db7c0fb92f598748bb1aca85288765a354\"\u003e\u003ccode\u003e4813b2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1521\"\u003e#1521\u003c/a\u003e from pyproj4/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/66b8e0b2fb2f93a83be484cd3ae741c140123930\"\u003e\u003ccode\u003e66b8e0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/ff97ab97b5bfd02a714bf84ebd847ec366da48f8\"\u003e\u003ccode\u003eff97ab9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1519\"\u003e#1519\u003c/a\u003e from djhoese/remove-old-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3692f8aa7fc9373927178fa1774ae69811387cfb\"\u003e\u003ccode\u003e3692f8a\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1520\"\u003e#1520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f3815db4169e399271d87ce9970175edb4b4170b\"\u003e\u003ccode\u003ef3815db\u003c/code\u003e\u003c/a\u003e MNT: Update history with test removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e5ee13f82067e9c577a1bb5e2484ed91c5f96c22\"\u003e\u003ccode\u003ee5ee13f\u003c/code\u003e\u003c/a\u003e TST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26b3cdb7d68e677ebfec62549288eea02bc38ed9\"\u003e\u003ccode\u003e26b3cdb\u003c/code\u003e\u003c/a\u003e MNT: 3.7.2rc0 and update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0cd586a0fb7094b4f8fb43fe34dd2e249aec0da0\"\u003e\u003ccode\u003e0cd586a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1514\"\u003e#1514\u003c/a\u003e from djhoese/ci-313-ft\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.6.1...3.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyproj\u0026package-manager=pip\u0026previous-version=3.6.1\u0026new-version=3.7.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/shilu10/MANN-Meta-Learning/pull/2109","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shilu10%2FMANN-Meta-Learning/issues/2109","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2109/packages"},{"uuid":"2891168596","node_id":"PR_kwDOOXISWM6sU7tU","number":101,"state":"open","title":"Bump pyproj from 3.7.1 to 3.7.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-06T17:23:34.000Z","updated_at":"2025-10-06T17:23:35.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pyproj","old_version":"3.7.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pyproj](https://github.com/pyproj4/pyproj) from 3.7.1 to 3.7.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.22 to 2.23 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/pyproj4/pyproj/pull/1479\"\u003epyproj4/pyproj#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Only import time.perf_counter by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1480\"\u003epyproj4/pyproj#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1481\"\u003epyproj4/pyproj#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Python 3.11+ by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1483\"\u003epyproj4/pyproj#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.1 to 0.6.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/pyproj4/pyproj/pull/1488\"\u003epyproj4/pyproj#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: update doc geometry_area_perimeter by \u003ca href=\"https://github.com/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Remove 'noqa: E501' from docstrings by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epyproj.crs: add imports to \u003cstrong\u003eall\u003c/strong\u003e by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1494\"\u003epyproj4/pyproj#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: replace black and isort with ruff format and lint by \u003ca href=\"https://github.com/mwtoews\"\u003e\u003ccode\u003e@​mwtoews\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1496\"\u003epyproj4/pyproj#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUILD/CI: Add win_arm64 wheel build by \u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.23 to 3.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/pyproj4/pyproj/pull/1502\"\u003epyproj4/pyproj#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 3.0.0 to 3.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/pyproj4/pyproj/pull/1505\"\u003epyproj4/pyproj#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBLD: Enable free-threading compatibility by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1512\"\u003epyproj4/pyproj#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add 3.13 free-threading wheels by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1514\"\u003epyproj4/pyproj#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-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/pyproj4/pyproj/pull/1520\"\u003epyproj4/pyproj#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1519\"\u003epyproj4/pyproj#1519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout 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/pyproj4/pyproj/pull/1521\"\u003epyproj4/pyproj#1521\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/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.2rc1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.2rc0\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\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/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.11 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Add CRS imports to \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add win_arm64 wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.13 free-threading wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.14 and 3.14 free-threading wheels\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f16037d2c45c3274ef28b828998267c3390393c8\"\u003e\u003ccode\u003ef16037d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/878615decadbde676f9acc82bce9763d62fbacbe\"\u003e\u003ccode\u003e878615d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4813b2db7c0fb92f598748bb1aca85288765a354\"\u003e\u003ccode\u003e4813b2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1521\"\u003e#1521\u003c/a\u003e from pyproj4/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/66b8e0b2fb2f93a83be484cd3ae741c140123930\"\u003e\u003ccode\u003e66b8e0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/ff97ab97b5bfd02a714bf84ebd847ec366da48f8\"\u003e\u003ccode\u003eff97ab9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1519\"\u003e#1519\u003c/a\u003e from djhoese/remove-old-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3692f8aa7fc9373927178fa1774ae69811387cfb\"\u003e\u003ccode\u003e3692f8a\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1520\"\u003e#1520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f3815db4169e399271d87ce9970175edb4b4170b\"\u003e\u003ccode\u003ef3815db\u003c/code\u003e\u003c/a\u003e MNT: Update history with test removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e5ee13f82067e9c577a1bb5e2484ed91c5f96c22\"\u003e\u003ccode\u003ee5ee13f\u003c/code\u003e\u003c/a\u003e TST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26b3cdb7d68e677ebfec62549288eea02bc38ed9\"\u003e\u003ccode\u003e26b3cdb\u003c/code\u003e\u003c/a\u003e MNT: 3.7.2rc0 and update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0cd586a0fb7094b4f8fb43fe34dd2e249aec0da0\"\u003e\u003ccode\u003e0cd586a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1514\"\u003e#1514\u003c/a\u003e from djhoese/ci-313-ft\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyproj\u0026package-manager=pip\u0026previous-version=3.7.1\u0026new-version=3.7.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/makinacorpus/osm-paths/pull/101","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/makinacorpus%2Fosm-paths/issues/101","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/101/packages"},{"uuid":"3473747938","node_id":"PR_kwDOIoSAbM6rkRNJ","number":283,"state":"open","title":"Bump the pip-updates group with 24 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-01T14:08:23.000Z","updated_at":"2025-10-03T19:12:02.962Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-updates","update_count":24,"packages":[{"name":"beautifulsoup4","old_version":"4.11.1","new_version":"4.14.2"},{"name":"black","old_version":"25.1.0","new_version":"25.9.0","repository_url":"https://github.com/psf/black"},{"name":"blinker","old_version":"1.7.0","new_version":"1.9.0","repository_url":"https://github.com/pallets-eco/blinker"},{"name":"fido2","old_version":"1.2.0","new_version":"2.0.0","repository_url":"https://github.com/Yubico/python-fido2"},{"name":"flake8","old_version":"7.0.0","new_version":"7.3.0","repository_url":"https://github.com/pycqa/flake8"},{"name":"flake8-bugbear","old_version":"22.10.27","new_version":"24.12.12","repository_url":"https://github.com/PyCQA/flake8-bugbear"},{"name":"flask","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/flask"},{"name":"flask-wtf","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/pallets-eco/flask-wtf"},{"name":"freezegun","old_version":"1.2.2","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"govuk-bank-holidays","old_version":"0.15","new_version":"0.17","repository_url":"https://github.com/ministryofjustice/govuk-bank-holidays"},{"name":"govuk-frontend-jinja","old_version":"3.3.0","new_version":"3.7.0","repository_url":"https://github.com/LandRegistry/govuk-frontend-jinja"},{"name":"humanize","old_version":"4.4.0","new_version":"4.13.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"isort","old_version":"5.12.0","new_version":"6.0.1","repository_url":"https://github.com/PyCQA/isort"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"2.1.5","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"moto","old_version":"5.1.3","new_version":"5.1.13","repository_url":"https://github.com/getmoto/moto"},{"name":"notifications-python-client","old_version":"8.0.0","new_version":"10.0.1","repository_url":"https://github.com/alphagov/notifications-python-client"},{"name":"pyproj","old_version":"3.6.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-xdist","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"pytz","old_version":"2022.6","new_version":"2025.2","repository_url":"https://github.com/stub42/pytz"},{"name":"requests-mock","old_version":"1.10.0","new_version":"1.12.1","repository_url":"https://github.com/jamielennox/requests-mock"},{"name":"wtforms","old_version":"3.1.2","new_version":"3.2.1","repository_url":"https://github.com/pallets-eco/wtforms"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-updates group with 24 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.11.1` | `4.14.2` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.9.0` |\n| [blinker](https://github.com/pallets-eco/blinker) | `1.7.0` | `1.9.0` |\n| [fido2](https://github.com/Yubico/python-fido2) | `1.2.0` | `2.0.0` |\n| [flake8](https://github.com/pycqa/flake8) | `7.0.0` | `7.3.0` |\n| [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear) | `22.10.27` | `24.12.12` |\n| [flask](https://github.com/pallets/flask) | `3.0.2` | `3.0.3` |\n| [flask-wtf](https://github.com/pallets-eco/flask-wtf) | `1.2.1` | `1.2.2` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.2.2` | `1.5.5` |\n| [govuk-bank-holidays](https://github.com/ministryofjustice/govuk-bank-holidays) | `0.15` | `0.17` |\n| [govuk-frontend-jinja](https://github.com/LandRegistry/govuk-frontend-jinja) | `3.3.0` | `3.7.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.4.0` | `4.13.0` |\n| [isort](https://github.com/PyCQA/isort) | `5.12.0` | `6.0.1` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `2.1.5` | `3.0.3` |\n| [moto](https://github.com/getmoto/moto) | `5.1.3` | `5.1.13` |\n| [notifications-python-client](https://github.com/alphagov/notifications-python-client) | `8.0.0` | `10.0.1` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.6.1` | `3.7.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.6.1` | `3.8.0` |\n| [pytz](https://github.com/stub42/pytz) | `2022.6` | `2025.2` |\n| [requests-mock](https://github.com/jamielennox/requests-mock) | `1.10.0` | `1.12.1` |\n| [wtforms](https://github.com/pallets-eco/wtforms) | `3.1.2` | `3.2.1` |\n\nUpdates `beautifulsoup4` from 4.11.1 to 4.14.2\n\nUpdates `black` from 25.1.0 to 25.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.9.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for pre-python 3.7 \u003ccode\u003eawait/async\u003c/code\u003e as soft keywords/variable names\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash while formatting a long \u003ccode\u003edel\u003c/code\u003e statement containing tuples (\u003ca href=\"https://redirect.github.com/psf/black/issues/4628\"\u003e#4628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash while formatting expressions using the walrus operator in complex \u003ccode\u003ewith\u003c/code\u003e\nstatements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4630\"\u003e#4630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003e# fmt: skip\u003c/code\u003e followed by a comment at the end of file (\u003ca href=\"https://redirect.github.com/psf/black/issues/4635\"\u003e#4635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when a tuple appears in the \u003ccode\u003eas\u003c/code\u003e clause of a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4634\"\u003e#4634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when tuple is used as a context manager inside a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4646\"\u003e#4646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when formatting a \u003ccode\u003e\\\u003c/code\u003e followed by a \u003ccode\u003e\\r\u003c/code\u003e followed by a comment (\u003ca href=\"https://redirect.github.com/psf/black/issues/4663\"\u003e#4663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on a \u003ccode\u003e\\\\r\\n\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4673\"\u003e#4673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on \u003ccode\u003eawait ...\u003c/code\u003e (where \u003ccode\u003e...\u003c/code\u003e is a literal \u003ccode\u003eEllipsis\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on parenthesized expression inside a type parameter bound (\u003ca href=\"https://redirect.github.com/psf/black/issues/4684\"\u003e#4684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when using line ranges excluding indented single line decorated items\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a bug where one-liner functions/conditionals marked with \u003ccode\u003e# fmt: skip\u003c/code\u003e would still\nbe formatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4552\"\u003e#4552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003emultiline_string_handling\u003c/code\u003e with ternaries and dictionaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug where \u003ccode\u003estring_processing\u003c/code\u003e would not split f-strings directly after\nexpressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4680\"\u003e#4680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap the \u003ccode\u003ein\u003c/code\u003e clause of comprehensions across lines if necessary (\u003ca href=\"https://redirect.github.com/psf/black/issues/4699\"\u003e#4699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove parentheses around multiple exception types in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without\n\u003ccode\u003eas\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to normalize file newlines both from\nand to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eParser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRewrite tokenizer to improve performance and compliance (\u003ca href=\"https://redirect.github.com/psf/black/issues/4536\"\u003e#4536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\nparameter bounds and defaults. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4602\"\u003e#4602\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using an extra process when running with only one worker (\u003ca href=\"https://redirect.github.com/psf/black/issues/4734\"\u003e#4734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix the version check in the vim file to reject Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4567\"\u003e#4567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to read Black version from an additional section in\npyproject.toml: \u003ccode\u003e[project.dependency-groups]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4606\"\u003e#4606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild gallery docker image with python3-slim and reduce image size (\u003ca href=\"https://redirect.github.com/psf/black/issues/4686\"\u003e#4686\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.9.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for pre-python 3.7 \u003ccode\u003eawait/async\u003c/code\u003e as soft keywords/variable names\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash while formatting a long \u003ccode\u003edel\u003c/code\u003e statement containing tuples (\u003ca href=\"https://redirect.github.com/psf/black/issues/4628\"\u003e#4628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash while formatting expressions using the walrus operator in complex \u003ccode\u003ewith\u003c/code\u003e\nstatements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4630\"\u003e#4630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003e# fmt: skip\u003c/code\u003e followed by a comment at the end of file (\u003ca href=\"https://redirect.github.com/psf/black/issues/4635\"\u003e#4635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when a tuple appears in the \u003ccode\u003eas\u003c/code\u003e clause of a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4634\"\u003e#4634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when tuple is used as a context manager inside a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4646\"\u003e#4646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when formatting a \u003ccode\u003e\\\u003c/code\u003e followed by a \u003ccode\u003e\\r\u003c/code\u003e followed by a comment (\u003ca href=\"https://redirect.github.com/psf/black/issues/4663\"\u003e#4663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on a \u003ccode\u003e\\\\r\\n\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4673\"\u003e#4673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on \u003ccode\u003eawait ...\u003c/code\u003e (where \u003ccode\u003e...\u003c/code\u003e is a literal \u003ccode\u003eEllipsis\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on parenthesized expression inside a type parameter bound (\u003ca href=\"https://redirect.github.com/psf/black/issues/4684\"\u003e#4684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when using line ranges excluding indented single line decorated items\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a bug where one-liner functions/conditionals marked with \u003ccode\u003e# fmt: skip\u003c/code\u003e would still\nbe formatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4552\"\u003e#4552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003emultiline_string_handling\u003c/code\u003e with ternaries and dictionaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug where \u003ccode\u003estring_processing\u003c/code\u003e would not split f-strings directly after\nexpressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4680\"\u003e#4680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap the \u003ccode\u003ein\u003c/code\u003e clause of comprehensions across lines if necessary (\u003ca href=\"https://redirect.github.com/psf/black/issues/4699\"\u003e#4699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove parentheses around multiple exception types in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without\n\u003ccode\u003eas\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to normalize file newlines both from\nand to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eParser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRewrite tokenizer to improve performance and compliance (\u003ca href=\"https://redirect.github.com/psf/black/issues/4536\"\u003e#4536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\nparameter bounds and defaults. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4602\"\u003e#4602\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using an extra process when running with only one worker (\u003ca href=\"https://redirect.github.com/psf/black/issues/4734\"\u003e#4734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix the version check in the vim file to reject Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4567\"\u003e#4567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to read Black version from an additional section in\npyproject.toml: \u003ccode\u003e[project.dependency-groups]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4606\"\u003e#4606\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/af0ba72a73598c76189d6dd1b21d8532255d5942\"\u003e\u003ccode\u003eaf0ba72\u003c/code\u003e\u003c/a\u003e Prepare docs for release 25.9.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4751\"\u003e#4751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ffc01a027580d99401abb3197e83d50dc4f4c746\"\u003e\u003ccode\u003effc01a0\u003c/code\u003e\u003c/a\u003e Fix schema generation error caused by new click version (\u003ca href=\"https://redirect.github.com/psf/black/issues/4750\"\u003e#4750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/626b32fe2b5387656be6694da9a4b7a3148fb892\"\u003e\u003ccode\u003e626b32f\u003c/code\u003e\u003c/a\u003e Add normalizing for \u003ccode\u003e\\r\u003c/code\u003e style newlines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/57a461258f324e33bca189b2eb49d7f7a944ffe7\"\u003e\u003ccode\u003e57a4612\u003c/code\u003e\u003c/a\u003e Fix mypy type issue (\u003ca href=\"https://redirect.github.com/psf/black/issues/4745\"\u003e#4745\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4f6ad7cf8c3092e0fb4d82f54fe77ccde134468a\"\u003e\u003ccode\u003e4f6ad7c\u003c/code\u003e\u003c/a\u003e Wrap the \u003ccode\u003ein\u003c/code\u003e clause of comprehensions across lines if necessary (\u003ca href=\"https://redirect.github.com/psf/black/issues/4699\"\u003e#4699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/24f516961720c5578069dee30415b776359b7be5\"\u003e\u003ccode\u003e24f5169\u003c/code\u003e\u003c/a\u003e ci: Run diff-shades on unstable instead of preview (\u003ca href=\"https://redirect.github.com/psf/black/issues/4741\"\u003e#4741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4d55e6017993ee3f0927524e8bc19ead8de9e8ed\"\u003e\u003ccode\u003e4d55e60\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4744\"\u003e#4744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0cf39efdbc3aaea455f95d31e5b42efb6bd61478\"\u003e\u003ccode\u003e0cf39ef\u003c/code\u003e\u003c/a\u003e Improve the performance of get_string_prefix (\u003ca href=\"https://redirect.github.com/psf/black/issues/4742\"\u003e#4742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1f779dec013db37475fa56a5c9939a09eab7e7d6\"\u003e\u003ccode\u003e1f779de\u003c/code\u003e\u003c/a\u003e Fix line ranges decorator edge case (\u003ca href=\"https://redirect.github.com/psf/black/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/203fd6b5cdad975178b8174394a7f7fb13d14f02\"\u003e\u003ccode\u003e203fd6b\u003c/code\u003e\u003c/a\u003e Optimize Line string method (\u003ca href=\"https://redirect.github.com/psf/black/issues/4739\"\u003e#4739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...25.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `blinker` from 1.7.0 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/blinker/releases\"\u003eblinker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.9.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.9.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.9.0/\"\u003ehttps://pypi.org/project/blinker/1.9.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/stable/#version-1-9-0\"\u003ehttps://blinker.readthedocs.io/en/stable/#version-1-9-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/blinker/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/blinker/milestone/1?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e, \u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/173\"\u003e#173\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.2\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.2/\"\u003ehttps://pypi.org/project/blinker/1.8.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-2\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-2\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify type for \u003ccode\u003e_async_wrapper\u003c/code\u003e and \u003ccode\u003e_sync_wrapper\u003c/code\u003e arguments. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/156\"\u003e#156\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.1\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.1/\"\u003ehttps://pypi.org/project/blinker/1.8.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-1\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore identity handling for \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eint\u003c/code\u003e senders. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/148\"\u003e#148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.WeakNamespace\u003c/code\u003e import. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/149\"\u003e#149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.receiver_connected import\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/153\"\u003e#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse types from \u003ccode\u003ecollections.abc\u003c/code\u003e instead of \u003ccode\u003etyping\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/150\"\u003e#150\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully specify exported types as reported by pyright. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/152\"\u003e#152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.0 feature release, which may include new features, remove previously deprecated code, or add new deprecations. The 1.8.x line is now the supported fix branch, support has ended for the 1.7.x line. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.0/\"\u003ehttps://pypi.org/project/blinker/1.8.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-0\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-0\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;blinker\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/128\"\u003e#128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify that the deprecated \u003ccode\u003etemporarily_connected_to\u003c/code\u003e will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated global \u003ccode\u003ereceiver_connected\u003c/code\u003e signal and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated \u003ccode\u003eWeakNamespace\u003c/code\u003e and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eGreatly simplify how the library uses weakrefs. This is a significant change internally but should not affect any public API. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/144\"\u003e#144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose the namespace used by \u003ccode\u003esignal()\u003c/code\u003e as \u003ccode\u003edefault_namespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/145\"\u003e#145\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-eco/blinker/blob/main/CHANGES.rst\"\u003eblinker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e175\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e,\n\u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. :pr:\u003ccode\u003e172\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down.\n:issue:\u003ccode\u003e173\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.2\u003c/h2\u003e\n\u003cp\u003eReleased 2024-05-06\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify type for \u003ccode\u003e_async_wrapper\u003c/code\u003e and \u003ccode\u003e_sync_wrapper\u003c/code\u003e arguments.\n:pr:\u003ccode\u003e156\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.1\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-28\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore identity handling for \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eint\u003c/code\u003e senders. :pr:\u003ccode\u003e148\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.WeakNamespace\u003c/code\u003e import. :pr:\u003ccode\u003e149\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.receiver_connected import\u003c/code\u003e. :pr:\u003ccode\u003e153\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse types from \u003ccode\u003ecollections.abc\u003c/code\u003e instead of \u003ccode\u003etyping\u003c/code\u003e. :pr:\u003ccode\u003e150\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFully specify exported types as reported by pyright. :pr:\u003ccode\u003e152\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;blinker\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e128\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSpecify that the deprecated \u003ccode\u003etemporarily_connected_to\u003c/code\u003e will be removed in\nthe next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated global \u003ccode\u003ereceiver_connected\u003c/code\u003e\nsignal and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated \u003ccode\u003eWeakNamespace\u003c/code\u003e and specify\nthat it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eGreatly simplify how the library uses weakrefs. This is a significant change\ninternally but should not affect any public API. :pr:\u003ccode\u003e144\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eExpose the namespace used by \u003ccode\u003esignal()\u003c/code\u003e as \u003ccode\u003edefault_namespace\u003c/code\u003e.\n:pr:\u003ccode\u003e145\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-eco/blinker/commit/669f3a027828d19786e708b511277fabcd6b9532\"\u003e\u003ccode\u003e669f3a0\u003c/code\u003e\u003c/a\u003e release version 1.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/cfe116fa7912d8dcb0deee4907aa63d1efaadf5b\"\u003e\u003ccode\u003ecfe116f\u003c/code\u003e\u003c/a\u003e try disabling attestions on test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/16e4bd70a19353d9d7cf47e4df7de54936296377\"\u003e\u003ccode\u003e16e4bd7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/174\"\u003e#174\u003c/a\u003e from projectgus/bugfix/weakref_disconnect_shutdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/42561fdf065032f5c39aea04d8c3fb4db93f73f3\"\u003e\u003ccode\u003e42561fd\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;Exception ignored\u0026quot; in weakref callback during interpreter shutdown.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/dcce3e97743494433025e0b68f742f3582b6ba6a\"\u003e\u003ccode\u003edcce3e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e from pallets-eco/drop-python3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/efa95eaa080b0d4a8dcfc46ad1f387ea1ddebd97\"\u003e\u003ccode\u003eefa95ea\u003c/code\u003e\u003c/a\u003e drop support for python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/82305185358d8ce21619ec0f324688a14a89c23b\"\u003e\u003ccode\u003e8230518\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/94f1202f08c6d00a9fe1ecf5c8cba9da84e4b22f\"\u003e\u003ccode\u003e94f1202\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/8c983ecd764e1d113d24522838c2a7312460b7eb\"\u003e\u003ccode\u003e8c983ec\u003c/code\u003e\u003c/a\u003e remove previously deprecated code (\u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/f5915f3bfcd9f9da0caf6cd4858bf68068c52963\"\u003e\u003ccode\u003ef5915f3\u003c/code\u003e\u003c/a\u003e set up pre-commit lite workflow\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/blinker/compare/1.7.0...1.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fido2` from 1.2.0 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Yubico/python-fido2/releases\"\u003efido2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epython-fido2 2.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.0.0 (released 2025-05-20)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSee also the migration guide: doc/Migration_1-2.adoc.\u003c/li\u003e\n\u003cli\u003ePython 3.10 or later is now required.\u003c/li\u003e\n\u003cli\u003eWebAuthn dataclasses have been updated to align with the WebAuthn Level 3\nWorking Draft. Constructors now require keyword arguments (\u003ccode\u003ekwargs_only=True\u003c/code\u003e),\nand serialization to/from dictionaries is compatible with standardized JSON\nformats.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003efeatures.webauthn_json_mapping\u003c/code\u003e flag has been removed, as its\nbehavior (standardized JSON mapping) is now default.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFido2Client\u003c/code\u003e and \u003ccode\u003eWindowsClient\u003c/code\u003e constructors now accept a\n\u003ccode\u003eClientDataCollector\u003c/code\u003e instance instead of \u003ccode\u003eorigin\u003c/code\u003e and \u003ccode\u003everify\u003c/code\u003e parameters.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWindowsClient\u003c/code\u003e has been relocated to \u003ccode\u003efido2.client.windows\u003c/code\u003e. Importing this\nclass on non-Windows platforms will now raise an \u003ccode\u003eImportError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFido2Client\u003c/code\u003e methods now return \u003ccode\u003eRegistrationResponse\u003c/code\u003e and\n\u003ccode\u003eAuthenticationResponse\u003c/code\u003e objects, instead of raw attestation/assertion data.\u003c/li\u003e\n\u003cli\u003eCTAP2/WebAuthn extension handling has been redesigned. \u003ccode\u003eFido2Client\u003c/code\u003e now\nexpects a list of \u003ccode\u003eCtap2Extension\u003c/code\u003e instances. Default behavior includes\nextensions commonly supported by browsers.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003efido2.cbor\u003c/code\u003e module's \u003ccode\u003eload_x\u003c/code\u003e and \u003ccode\u003edump_x\u003c/code\u003e functions have been made\nprivate (renamed with a leading underscore) and should not be used directly.\u003c/li\u003e\n\u003cli\u003ePreviously deprecated functions and APIs have been removed.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003e__version__\u003c/code\u003e attribute in \u003ccode\u003efido2/__init__.py\u003c/code\u003e has been removed. Use\n\u003ccode\u003eimportlib.metadata.version('fido2')\u003c/code\u003e to get the package version.\u003c/li\u003e\n\u003cli\u003eAdd support for Persistent PinUvAuthToken and encIdentifier.\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ehmac-secret-mc\u003c/code\u003e and \u003ccode\u003ethirdPartyPayments\u003c/code\u003e exensions.\u003c/li\u003e\n\u003cli\u003eAdd new GetInfo fields based on CTAP 2.2\u003c/li\u003e\n\u003cli\u003eUpdate COSE algorithnm types.\u003c/li\u003e\n\u003cli\u003eBuilding the library now requires Poetry version 2.0 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epython-fido2 2.0.0-beta.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.0.0-beta.1 (released 2025-02-26) Preview release\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePreview release: The API may undergo changes prior to the final 2.0.0 release!\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Python \u0026gt;= 3.10\u003c/li\u003e\n\u003cli\u003eBuilding requires Poetry \u0026gt;= 2.0\u003c/li\u003e\n\u003cli\u003eWebAuthn dataclasses have been updated to reflect the current state of the spec\n(level 3 working draft), constructors require arguments to be passed by name\n(kwargs_only), and serialization to/from dict is compatible with the standardized\nJSON formats.\u003c/li\u003e\n\u003cli\u003efeatures.webauthn_json_mapping has been removed, as this behavior is now the\nstandard.\u003c/li\u003e\n\u003cli\u003eWindowsClient has been moved to fido2.client.windows. This class can no longer be\nimported on non-windows platforms (throws ImportError).\u003c/li\u003e\n\u003cli\u003eUse RegistrationResponse and AuthenticationResponse classes as return values in\nFido2Client.\u003c/li\u003e\n\u003cli\u003eCTAP2/WebAuthn extension handling has been rewritten, Fido2Client now takes a list\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/Yubico/python-fido2/blob/main/NEWS\"\u003efido2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cul\u003e\n\u003cli\u003eVersion 2.0.0 (released 2025-05-20)\n** See also the migration guide: doc/Migration_1-2.adoc.\n** Python 3.10 or later is now required.\n** WebAuthn dataclasses have been updated to align with the WebAuthn Level 3\nWorking Draft. Constructors now require keyword arguments (\u003ccode\u003ekwargs_only=True\u003c/code\u003e),\nand serialization to/from dictionaries is compatible with standardized JSON\nformats.\n** The \u003ccode\u003efeatures.webauthn_json_mapping\u003c/code\u003e flag has been removed, as its\nbehavior (standardized JSON mapping) is now default.\n** \u003ccode\u003eFido2Client\u003c/code\u003e and \u003ccode\u003eWindowsClient\u003c/code\u003e constructors now accept a\n\u003ccode\u003eClientDataCollector\u003c/code\u003e instance instead of \u003ccode\u003eorigin\u003c/code\u003e and \u003ccode\u003everify\u003c/code\u003e parameters.\n** \u003ccode\u003eWindowsClient\u003c/code\u003e has been relocated to \u003ccode\u003efido2.client.windows\u003c/code\u003e. Importing this\nclass on non-Windows platforms will now raise an \u003ccode\u003eImportError\u003c/code\u003e.\n** \u003ccode\u003eFido2Client\u003c/code\u003e methods now return \u003ccode\u003eRegistrationResponse\u003c/code\u003e and\n\u003ccode\u003eAuthenticationResponse\u003c/code\u003e objects, instead of raw attestation/assertion data.\n** CTAP2/WebAuthn extension handling has been redesigned. \u003ccode\u003eFido2Client\u003c/code\u003e now\nexpects a list of \u003ccode\u003eCtap2Extension\u003c/code\u003e instances. Default behavior includes\nextensions commonly supported by browsers.\n** The \u003ccode\u003efido2.cbor\u003c/code\u003e module's \u003ccode\u003eload_x\u003c/code\u003e and \u003ccode\u003edump_x\u003c/code\u003e functions have been made\nprivate (renamed with a leading underscore) and should not be used directly.\n** Previously deprecated functions and APIs have been removed.\n** The \u003ccode\u003e__version__\u003c/code\u003e attribute in \u003ccode\u003efido2/__init__.py\u003c/code\u003e has been removed. Use\n\u003ccode\u003eimportlib.metadata.version('fido2')\u003c/code\u003e to get the package version.\n** Add new GetInfo fields based on CTAP 2.2.\n** Add support for Persistent PinUvAuthToken and encIdentifier.\n** Add support for hmac-secret-mc and thirdPartyPayments exensions.\n** Update COSE algorithm types.\n** Building the library now requires Poetry version 2.0 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/18cdb62fce476c3f3b864dee924c21e314aadc6a\"\u003e\u003ccode\u003e18cdb62\u003c/code\u003e\u003c/a\u003e Update dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/3b28eee9f148ece775b02ebab1b5989d4c032c08\"\u003e\u003ccode\u003e3b28eee\u003c/code\u003e\u003c/a\u003e Update NEWS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/e484c54b5f114976691e0049638f2fa7f7cc11bf\"\u003e\u003ccode\u003ee484c54\u003c/code\u003e\u003c/a\u003e Add comment for clarification\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/3c21f0c9b769f8e672e7d42bca5ca1f9354e5f3d\"\u003e\u003ccode\u003e3c21f0c\u003c/code\u003e\u003c/a\u003e Bump version, update NEWS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/2c392512c52028ecb7aba4f10c3d201771e6ab55\"\u003e\u003ccode\u003e2c39251\u003c/code\u003e\u003c/a\u003e Use TYPE_CHECKING\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/57e970e17fef820197121c40516518333ac16dab\"\u003e\u003ccode\u003e57e970e\u003c/code\u003e\u003c/a\u003e Set sdist timestamps to commit date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/acd5616826d02b53201e8f5e538166589c8250bb\"\u003e\u003ccode\u003eacd5616\u003c/code\u003e\u003c/a\u003e Merge PR \u003ca href=\"https://redirect.github.com/Yubico/python-fido2/issues/254\"\u003e#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/3f258aa27a59e6edc840f4abd1a343735139c434\"\u003e\u003ccode\u003e3f258aa\u003c/code\u003e\u003c/a\u003e Update docstrings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/2d685d2088694cd816e84f0a0ede872f461cc42d\"\u003e\u003ccode\u003e2d685d2\u003c/code\u003e\u003c/a\u003e Organize imports with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/b7d6a01bb2d88cc4a8759c1bc8a1aa6300ee0972\"\u003e\u003ccode\u003eb7d6a01\u003c/code\u003e\u003c/a\u003e Replace black and flake8 with ruff\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Yubico/python-fido2/compare/1.2.0...2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8` from 7.0.0 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/c48217e1fc006c2dddd14df54e83b67da15de5cd\"\u003e\u003ccode\u003ec48217e\u003c/code\u003e\u003c/a\u003e Release 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/f9e0f33281d5bb892cae2c674ac398439d99c732\"\u003e\u003ccode\u003ef9e0f33\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1986\"\u003e#1986\u003c/a\u003e from PyCQA/document-f542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6bcdb628597fa2d03494965089ff87a492ffc1e9\"\u003e\u003ccode\u003e6bcdb62\u003c/code\u003e\u003c/a\u003e document F542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/70a15b8890d5bdf8c449ebb1b5259bd0140cc16b\"\u003e\u003ccode\u003e70a15b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1985\"\u003e#1985\u003c/a\u003e from PyCQA/upgrade-deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/4941a3e32e54488698ecbc23993bfeb2a60c0fc5\"\u003e\u003ccode\u003e4941a3e\u003c/code\u003e\u003c/a\u003e upgrade pyflakes / pycodestyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/23e4005c5501999c29e1e3774de7ed18d1e4e22d\"\u003e\u003ccode\u003e23e4005\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1983\"\u003e#1983\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/019424b80d3d7d5d8a2a1638f5877080546e3f46\"\u003e\u003ccode\u003e019424b\u003c/code\u003e\u003c/a\u003e add support for t-strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6b6f3d5fefecc994a06f425c18c3cddc9b71e4a4\"\u003e\u003ccode\u003e6b6f3d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1980\"\u003e#1980\u003c/a\u003e from PyCQA/asottile-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/8dfa6695b4fb1e1401b357367a0a71037d29f6aa\"\u003e\u003ccode\u003e8dfa669\u003c/code\u003e\u003c/a\u003e add rtd sphinx config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/ce3411118382d9332feb2749c8f417d10bfa2584\"\u003e\u003ccode\u003ece34111\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1976\"\u003e#1976\u003c/a\u003e from PyCQA/document-f824\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pycqa/flake8/compare/7.0.0...7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8-bugbear` from 22.10.27 to 24.12.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/releases\"\u003eflake8-bugbear's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e24.12.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB012 and B025 now also handle try/except* (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip B028 if warnings.warn is called with \u003ccode\u003e*args\u003c/code\u003e or \u003ccode\u003e**kwargs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd B911: itertools.batched without strict= (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReadme has anchors per check (they do not seem to render on GitHub tho)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.10.31\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB041: New dictionary same key AND value check (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/496\"\u003e#496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB037: Fix typo in error message\u003c/li\u003e\n\u003cli\u003eB024: No longer treats assigned class variables as abstract (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/471\"\u003e#471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump required attrs version to 22.2.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.8.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB910: implement to suggest using Counter() instead of defaultdict(int) (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/489\"\u003e#489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB901: Do not trigger with explicit Generator return type (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/481\"\u003e#481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB008: add some comments, rename b008_extend_immutable_calls (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB040: exception with note added not reraised or used (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB039, Add \u003ccode\u003eContextVar\u003c/code\u003e with mutable literal or function call as default\u003c/li\u003e\n\u003cli\u003eB040: Add Exception with added note not reraised. (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRun tests in Python 3.13\u003c/li\u003e\n\u003cli\u003eType annotated code (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/481\"\u003e#481\u003c/a\u003e + \u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/483\"\u003e#483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace hash with unsafe_hash (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.4.26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB909: Fix false positive affecting containers of mutables (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/469\"\u003e#469\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.4.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB950: Add pragma comment to line length ignores (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/463\"\u003e#463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB909: Add more cases to detect + more container mutating functions (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB902: Remove decorators named validator and root_validator from B902 checks (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/459\"\u003e#459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB038: Change B038 to B909 and make it optional (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/456\"\u003e#456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB038: Restrict rule to mutation functions only (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/453\"\u003e#453\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB036: Fix crash on \u003ccode\u003eraise\u003c/code\u003e statements raising something other than\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB038: Add check for mutations of loop iterator (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/446\"\u003e#446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB037: Add check for yielding or returning values in \u003cstrong\u003einit\u003c/strong\u003e() (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB017: make B017 also apply to BaseException (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/439\"\u003e#439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB036: Add check for except BaseException without re-raising (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/438\"\u003e#438\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e23.12.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB018: to detect useless-statements at all levels (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB018: Add classname to b018 useless-expression output (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB018: Include tuples in b018 useless-statement check (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/432\"\u003e#432\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/PyCQA/flake8-bugbear/commit/3a140377c8f1f585013a1566f2c8bb3ead9c329c\"\u003e\u003ccode\u003e3a14037\u003c/code\u003e\u003c/a\u003e Update CHANGES + move to version 24.12.12 to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/761dbe20148c4cdf18401789812b4a2e50257519\"\u003e\u003ccode\u003e761dbe2\u003c/code\u003e\u003c/a\u003e Make rstcheck pass again sadly ignoring anchor links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/7ee19764bf20abcf999898f5268f65b3ee1caf09\"\u003e\u003ccode\u003e7ee1976\u003c/code\u003e\u003c/a\u003e README: Add anchors for rules and config options (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/491\"\u003e#491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/b96027296277c210bbd412c78842f6f731366d0d\"\u003e\u003ccode\u003eb960272\u003c/code\u003e\u003c/a\u003e add except* support to B012\u0026amp;B025 (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/4fed293390eff2db0e3ab0658d69828ac82dfb3e\"\u003e\u003ccode\u003e4fed293\u003c/code\u003e\u003c/a\u003e Skip \u003ccode\u003eB028\u003c/code\u003e if \u003ccode\u003ewarnings.warn\u003c/code\u003e is called with \u003ccode\u003e*args\u003c/code\u003e or \u003ccode\u003e**kwargs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/994f3dd578005ec6eafff3f8fa11c25e44f5e087\"\u003e\u003ccode\u003e994f3dd\u003c/code\u003e\u003c/a\u003e Add B911: itertools.batched without strict= (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/108bba413ec71eada5c6848114614d61352557de\"\u003e\u003ccode\u003e108bba4\u003c/code\u003e\u003c/a\u003e Fix README format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/72f6116f895af3270707d3795227be63f67641af\"\u003e\u003ccode\u003e72f6116\u003c/code\u003e\u003c/a\u003e Update CHANGES + move to version 24.10.31 to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/07a5676b2181ecaf3be8fceec63b4350b445aa07\"\u003e\u003ccode\u003e07a5676\u003c/code\u003e\u003c/a\u003e Add scentence really explaining B041\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/95f87911a787a05ac22106d50c29a57fd8651e6f\"\u003e\u003ccode\u003e95f8791\u003c/code\u003e\u003c/a\u003e Add B041: Duplicate key-value pairs in dictionary literals (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/496\"\u003e#496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/compare/22.10.27...24.12.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` 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/flask/releases\"\u003eflask'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 a fix release for the 3.0.x feature branch.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.0.3/\"\u003ehttps://pypi.org/project/Flask/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/3.0.x/changes/#version-3-0-3\"\u003ehttps://flask.palletsprojects.com/en/3.0.x/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/35?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/35?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5448\"\u003e#5448\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't initialize the \u003ccode\u003ecli\u003c/code\u003e attribute in the sansio scaffold, but rather in the \u003ccode\u003eFlask\u003c/code\u003e concrete class. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5270\"\u003e#5270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-07\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e5448\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't initialize the \u003ccode\u003ecli\u003c/code\u003e attribute in the sansio scaffold, but rather in\nthe \u003ccode\u003eFlask\u003c/code\u003e concrete class. :pr:\u003ccode\u003e5270\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c12a5d874c5a014495eb2db8a73f40037bc813ac\"\u003e\u003ccode\u003ec12a5d8\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/5e22cc9eec0d1da2da706ccf724fde702b30d5f2\"\u003e\u003ccode\u003e5e22cc9\u003c/code\u003e\u003c/a\u003e Don't set the cli attribute in the sansio scaffold (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/5fdce4c331ac530280cc941179d364a07f4a1088\"\u003e\u003ccode\u003e5fdce4c\u003c/code\u003e\u003c/a\u003e Don't set the cli attribute in the sansio scaffold\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/adb7dd99c295a28726c8d818fba54c7b3f958ecc\"\u003e\u003ccode\u003eadb7dd9\u003c/code\u003e\u003c/a\u003e don't access app.logger when configuring app.logger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/b73939095564ec5c088c53e7595b00d174a018f5\"\u003e\u003ccode\u003eb739390\u003c/code\u003e\u003c/a\u003e support FIPS builds without SHA-1 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5460\"\u003e#5460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/db461112c70d5f2bf93c7a6ac27eeb665c232dd0\"\u003e\u003ccode\u003edb46111\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/7320e311a0a3f190351173f8be90cab31dadbf73\"\u003e\u003ccode\u003e7320e31\u003c/code\u003e\u003c/a\u003e start version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/87d5f5b9a9697434e6d972b021201105eabb54e6\"\u003e\u003ccode\u003e87d5f5b\u003c/code\u003e\u003c/a\u003e update project files (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5457\"\u003e#5457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/d5e321b792cd6f3cd7b072d175f47eacbd5ee14f\"\u003e\u003ccode\u003ed5e321b\u003c/code\u003e\u003c/a\u003e release version 3.0.2 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5403\"\u003e#5403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pallets/flask/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 `flask-wtf` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-wtf/releases\"\u003eflask-wtf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove the project to the pallets-eco organization. \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/602\"\u003e#602\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.8. Start support for Python 3.13. \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/603\"\u003e#603\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-eco/flask-wtf/blob/main/docs/changes.rst\"\u003eflask-wtf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2024-10-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMove the project to the pallets-eco organization. :pr:\u003ccode\u003e602\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.8. Start support for Python 3.13. :pr:\u003ccode\u003e603\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-eco/flask-wtf/commit/2e142951788d8209815fd4797c93f6f3c275ed71\"\u003e\u003ccode\u003e2e14295\u003c/code\u003e\u003c/a\u003e chore: pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/552b7a763235abbd69efc732147ec1e2c4c61ac8\"\u003e\u003ccode\u003e552b7a7\u003c/code\u003e\u003c/a\u003e chore: bump to 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/32f12767656e0f4304221e62c027fe99b67ea037\"\u003e\u003ccode\u003e32f1276\u003c/code\u003e\u003c/a\u003e chore: install 'build' dependency for the release GHA workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/f712367414346196e7fc436ad771533ed2c98898\"\u003e\u003ccode\u003ef712367\u003c/code\u003e\u003c/a\u003e chore: dependencies update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/b929162626b813b7ee2a8edb58fce861cd2e34af\"\u003e\u003ccode\u003eb929162\u003c/code\u003e\u003c/a\u003e chore: use Flask inspired GHA workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/07049e3b87aec17c693dd8cd6993e09bce679705\"\u003e\u003ccode\u003e07049e3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/604\"\u003e#604\u003c/a\u003e from azmeuk/flask-pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/49a13806e95b87735f7c196663ef5155a752dfec\"\u003e\u003ccode\u003e49a1380\u003c/code\u003e\u003c/a\u003e chore: pre-commit configuration insipred from Flask\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/f2bbd1b67a982131278488cc18ba1f65b3caafac\"\u003e\u003ccode\u003ef2bbd1b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/603\"\u003e#603\u003c/a\u003e from azmeuk/py313\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/d3cd8bf1e0d4dbd15daf1cbbf521da41e2c30d50\"\u003e\u003ccode\u003ed3cd8bf\u003c/code\u003e\u003c/a\u003e chore: stop support for python 3.8; start support for python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/0b2e5e413efb614b47f5deb8416847555e2ea07a\"\u003e\u003ccode\u003e0b2e5e4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/602\"\u003e#602\u003c/a\u003e from azmeuk/pallets-eco\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-wtf/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.2.2 to 1.5.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spulec/freezegun/blob/master/CHANGELOG\"\u003efreezegun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow parametrized arguments called 'func' (Broken in 1.5.4)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Ability to yield fixtures (broken in 1.5.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility with pytest 8.4.0 when using fixtures\u003c/li\u003e\n\u003cli\u003eAdd (back) class-decorator overload to guarantee Pytype understands it\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.7\u003c/li\u003e\n\u003cli\u003eExplicitly marks support for Python 3.13\u003c/li\u003e\n\u003cli\u003eImproved project documentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the typing of the \u003ccode\u003etick()\u003c/code\u003e method, and improve it's behaviour.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe default ignore list now contains the \u003ccode\u003equeue\u003c/code\u003e-package\u003c/li\u003e\n\u003cli\u003eAdded a missing \u003ccode\u003emove_to\u003c/code\u003e-function when calling \u003ccode\u003efreeze_time(tick=True)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixes a rounding error in \u003ccode\u003etime.time_ns()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed a bug where the default ignore list could not be empty (\u003ccode\u003econfigure(default_ignore_list=[])\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAll \u003ccode\u003etick()\u003c/code\u003e methods now return the new datetime (instead of None)\u003c/li\u003e\n\u003cli\u003eType improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e-support from 1.3.x introduced quite a few  bugs, so that functionality is now hidden behind a flag:\n\u003ccode\u003ewith freeze_time('1970-01-02', real_asyncio=True):\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded documentation for the \u003ccode\u003ereal_asyncio\u003c/code\u003e parameter in the \u003ccode\u003eREADME.rst\u003c/code\u003e file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the release number in the build\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003easyncio\u003c/code\u003e support to avoid \u003ccode\u003eawait asyncio.sleep(1)\u003c/code\u003e hanging forever.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.12\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/spulec/freezegun/commit/c9bf52c5aa12ea1b5b8647a136a92504ea071f2f\"\u003e\u003ccode\u003ec9bf52c\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0f2bd7ed8b420da73372f4cbb0207b777caa66e9\"\u003e\u003ccode\u003e0f2bd7e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/582\"\u003e#582\u003c/a\u003e from spulec/fixture-called-func\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/a6080557cbcbe4891843934c1334430bb1c5ead7\"\u003e\u003ccode\u003ea608055\u003c/code\u003e\u003c/a\u003e Allow parametrized arguments with name 'func'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/2bb47113a5f9f290d26630c92732e58f49557179\"\u003e\u003ccode\u003e2bb4711\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/7599eeea16b8f206e881892dc104128a5b36de82\"\u003e\u003ccode\u003e7599eee\u003c/code\u003e\u003c/a\u003e Add 1.5.4 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0d00e7ddd9ad33fc63fbed29af17853b18bc3c61\"\u003e\u003ccode\u003e0d00e7d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/579\"\u003e#579\u003c/a\u003e from zsh8/decorate_generator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/10c93f2d6c98f82e54470b05144cd0f17d3e1b46\"\u003e\u003ccode\u003e10c93f2\u003c/code\u003e\u003c/a\u003e fix: preserve functionality in pytest yield fixtures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/d2e0a00addb0653b0cf3be65f8fa7137c7e3bda1\"\u003e\u003ccode\u003ed2e0a00\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/6229e27d27ec61c4c55d7006db7ede6f16d7280a\"\u003e\u003ccode\u003e6229e27\u003c/code\u003e\u003c/a\u003e Add 1.5.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/3111775d6e484f55a85030c626180b592adef569\"\u003e\u003ccode\u003e3111775\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/576\"\u003e#576\u003c/a\u003e from spulec/support-fixtures-pytest-840\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spulec/freezegun/compare/1.2.2...1.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-bank-holidays` from 0.15 to 0.17\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/releases\"\u003egovuk-bank-holidays's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.17\u003c/h2\u003e\n\u003cp\u003eAdded timeout for source downloads (default being GOV.UK) before falling back to cache. With thanks to \u003ca href=\"https://github.com/ibrechin\"\u003e\u003ccode\u003e@​ibrechin\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.16...0.17\"\u003eChanges\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.16\u003c/h2\u003e\n\u003cp\u003eRemoved support for python versions older than 3.9 since they have reached end-of-life and are not available for testing in Github Actions.\nAdded python 3.13 to testing matrix.\nUpdated cached bank holidays file to include latest holidays published by GOV.UK.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.15...0.16\"\u003eChanges\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/ministryofjustice/govuk-bank-holidays/commit/a15061da364cb2927c441289a9defb767fa95551\"\u003e\u003ccode\u003ea15061d\u003c/code\u003e\u003c/a\u003e Bump to 0.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/7ccd9106a893cb6a470734e4c4e8a84439b7b24e\"\u003e\u003ccode\u003e7ccd910\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/govuk-bank-holidays/issues/25\"\u003e#25\u003c/a\u003e from ibrechin/add-request-timeout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/11dd549d0fd663e510a40772f9ebb5ec87f72fca\"\u003e\u003ccode\u003e11dd549\u003c/code\u003e\u003c/a\u003e Add configurable timeout for downloading live holiday data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/11ddc9c2e3bba5e140a5d17d54e7dd38aaa7fb56\"\u003e\u003ccode\u003e11ddc9c\u003c/code\u003e\u003c/a\u003e Bump to 0.16\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/5ad9b7b086865aa779e9a087555f841df80a858d\"\u003e\u003ccode\u003e5ad9b7b\u003c/code\u003e\u003c/a\u003e Remove (official) support and testing on python \u0026lt; 3.9 (though it should conti...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/86fd881acc6825876d46298b51f3a23aec2ea5a1\"\u003e\u003ccode\u003e86fd881\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/govuk-bank-holidays/issues/24\"\u003e#24\u003c/a\u003e from ibrechin/update-cached\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/f4ecaf843e48cb1f417ceb288080d7cd906575e2\"\u003e\u003ccode\u003ef4ecaf8\u003c/code\u003e\u003c/a\u003e Update cached bank holidays\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.15...0.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-frontend-jinja` from 3.3.0 to 3.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases\"\u003egovuk-frontend-jinja's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.11.1\"\u003eGOV.UK Frontend v5.11.1\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.10.0\"\u003eGOV.UK Frontend v5.10.0\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIntroduced rebranding logic in \u003ccode\u003eheader\u003c/code\u003e, \u003ccode\u003efooter\u003c/code\u003e, and \u003ccode\u003eservice-navigation\u003c/code\u003e components.\u003c/li\u003e\n\u003cli\u003eAdded a new \u003ccode\u003elogo.html\u003c/code\u003e macro for enhanced branding capabilities.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003etemplate.html\u003c/code\u003e to handle rebranding dynamically through variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgraded dependencies in \u003ccode\u003erequirements-test-*.txt\u003c/code\u003e files to the latest minor/patch versions:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eclick\u003c/code\u003e → v8.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflake8\u003c/code\u003e → v7.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ejinja2\u003c/code\u003e → v3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epycodestyle\u003c/code\u003e → v2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epyflakes\u003c/code\u003e → v3.3.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eREADME.md\u003c/code\u003e badges to reflect the latest project state.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecated legacy crown logos in favour of the Tudor Crown.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved attribute handling in \u003ccode\u003eservice-navigation\u003c/code\u003e and other components.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.9.0\"\u003eGOV.UK Frontend v5.9.0\u003c/a\u003e support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.4.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.8.0\"\u003eGOV.UK Frontend v5.8.0\u003c/a\u003e support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.4.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.7.1\"\u003eGOV.UK Frontend v5.7.1\u003c/a\u003e support\u003c/li\u003e\n\u003cli\u003ePython 3.13 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support\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/LandRegistry/govuk-frontend-jinja/blob/main/CHANGELOG.md\"\u003egovuk-frontend-jinja's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.7.0\"\u003e3.7.0\u003c/a\u003e - 14/08/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.11.1\"\u003eGOV.UK Frontend v5.11.1\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.6.0\"\u003e3.6.0\u003c/a\u003e - 14/05/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.10.0\"\u003eGOV.UK Frontend v5.10.0\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIntroduced rebranding logic in \u003ccode\u003eheader\u003c/code\u003e, \u003ccode\u003efooter\u003c/code\u003e, and \u003ccode\u003eservice-navigation\u003c/code\u003e components.\u003c/li\u003e\n\u003cli\u003eAdded a new \u003ccode\u003elogo.html\u003c/code\u003e macro for enhanced branding capabilities.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003etemplate.html\u003c/code\u003e to handle rebranding dynamically through variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgraded dependencies in \u003ccode\u003erequirements-test-*.txt\u003c/code\u003e files to the latest minor/patch versions:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eclick\u003c/code\u003e → v8.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflake8\u003c/code\u003e → v7.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ejinja2\u003c/code\u003e → v3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epycodestyle\u003c/code\u003e → v2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epyflakes\u003c/code\u003e → v3.3.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eREADME.md\u003c/code\u003e badges to reflect the latest project state.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecated legacy crown logos in favor of the Tudor Crown.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved attribute handling in \u003ccode\u003eservice-navigation\u003c/code\u003e and other components.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.5.0\"\u003e3.5.0\u003c/a\u003e - 05/03/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.9.0\"\u003eGOV.UK Frontend v5.9.0\u003c/a\u003e support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.4.1\"\u003e3.4.1\u003c/a\u003e - 13/01/2025\u003c/h2\u003e\n\u003cp\u003eNo functional changes.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.8.0\"\u003eGOV.UK Frontend v5.8.0\u003c/a\u003e support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.4.0\"\u003e3.4.0\u003c/a\u003e - 15/10/2024\u003c/h2\u003e\n\u003ch3\u003eAdded\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/LandRegistry/govuk-frontend-jinja/commit/60365bd8451c8dcd434f4087dbb013460b9332d2\"\u003e\u003ccode\u003e60365bd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/99\"\u003e#99\u003c/a\u003e from LandRegistry/govuk-frontend-511\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/0e4e874123d1e9bad9a7b179b1a99eb3336ed076\"\u003e\u003ccode\u003e0e4e874\u003c/code\u003e\u003c/a\u003e logo tweak\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/79cebabe0b4f93e38eb4a171112157b8a791a3a8\"\u003e\u003ccode\u003e79cebab\u003c/code\u003e\u003c/a\u003e collapse on mobile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/debcb30a2d394e6b96a36c8274c9de9c9e6c75df\"\u003e\u003ccode\u003edebcb30\u003c/code\u003e\u003c/a\u003e dependency upgrades\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/b939cd53a3a19cada054c497868217cb9de0203a\"\u003e\u003ccode\u003eb939cd5\u003c/code\u003e\u003c/a\u003e bump version numbers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/f7a737c4db72043b3feae8718c9940938ea3c59c\"\u003e\u003ccode\u003ef7a737c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/94\"\u003e#94\u003c/a\u003e from LandRegistry/govuk-frontend-510\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/0d8df97459d01d58536be49b7a781c789c8f0332\"\u003e\u003ccode\u003e0d8df97\u003c/code\u003e\u003c/a\u003e 3.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/45da68e9608b4aad8769a269bc2457584861a857\"\u003e\u003ccode\u003e45da68e\u003c/code\u003e\u003c/a\u003e page template updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/3a6707b3c6deea8b390831b32ee7a9e6aa6f9633\"\u003e\u003ccode\u003e3a6707b\u003c/code\u003e\u003c/a\u003e add logo macro\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/074588956572857f4b844ff2d53487037e1a9dd9\"\u003e\u003ccode\u003e0745889\u003c/code\u003e\u003c/a\u003e service navigation updates\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/compare/3.3.0...3.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `humanize` from 4.4.0 to 4.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-humanize/humanize/releases\"\u003ehumanize's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.13.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimise \u003ccode\u003enaturalsize\u003c/code\u003e algorithm by using \u003ccode\u003emath.log\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/253\"\u003e#253\u003c/a\u003e) \u003ca href=\"https://github.com/Zaczero\"\u003e\u003ccode\u003e@​Zaczero\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprecisedelta\u003c/code\u003e rounding (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/254\"\u003e#254\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.3\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003enaturalsize\u003c/code\u003e for \u003ccode\u003efloat\u003c/code\u003e and \u003ccode\u003estr\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/250\"\u003e#250\u003c/a\u003e) \u003ca href=\"https://github.com/loicleyendecker\"\u003e\u003ccode\u003e@​loicleyendecker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprovements for French translation (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/248\"\u003e#248\u003c/a\u003e) \u003ca href=\"https://github.com/merwok\"\u003e\u003ccode\u003e@​merwok\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.2\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate license file reference from \u003ccode\u003eLICENSE\u003c/code\u003e to \u003ccode\u003eLICENCE\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/243\"\u003e#243\u003c/a\u003e) \u003ca href=\"https://github.com/williamjamir\"\u003e\u003ccode\u003e@​williamjamir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate docstring in naturaldelta (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/242\"\u003e#242\u003c/a\u003e) \u003ca href=\"https://github.com/teobucci\"\u003e\u003ccode\u003e@​teobucci\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore \u003ccode\u003esys.monitoring\u003c/code\u003e warning for Python 3.11 and earlier in coverage.py config (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/244\"\u003e#244\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003enaturalsize\u003c/code\u003e for float (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/240\"\u003e#240\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and test PyPy3.11 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/235\"\u003e#235\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle en_GB and en_US locale (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/230\"\u003e#230\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease to PyPI using Trusted Publishing (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/213\"\u003e#213\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefer imports for faster overall import time: 19 ms -\u0026gt; 3 ms (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/234\"\u003e#234\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/238\"\u003e#238\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace deprecated classifier with licence expression (PEP 639) (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/236\"\u003e#236\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLint and test with tox-uv (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/212\"\u003e#212\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix overflow issue in \u003ccode\u003enaturalsize\u003c/code\u003e with \u003ccode\u003enp.int32\u003c/code\u003e input (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/218\"\u003e#218\u003c/a\u003e) \u003ca href=\"https://github.com/Toprak2\"\u003e\u003ccode\u003e@​Toprak2\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pt_BR locale (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/216\"\u003e#216\u003c/a\u003e) \u003ca href=\"https://github.com/cuducos\"\u003e\u003ccode\u003e@​cuducos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGenerate translation binaries during release (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/232\"\u003e#232\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003enatural_list\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/110\"\u003e#110\u003c/a\u003e) \u003ca href=\"https://github.com/akshaybabloo\"\u003e\u003ccode\u003e@​akshaybabloo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/0e027051034b7dcb4eb65aded290cf56a89d8aa9\"\u003e\u003ccode\u003e0e02705\u003c/code\u003e\u003c/a\u003e Update config (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/288a7a7c1dbfd1c977add3c54a7c9283039a6c71\"\u003e\u003ccode\u003e288a7a7\u003c/code\u003e\u003c/a\u003e Test free-threaded Python 3.13t and 3.14t (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/0f5d2948d674a88a611f8e341c0df520767b1b80\"\u003e\u003ccode\u003e0f5d294\u003c/code\u003e\u003c/a\u003e Precisedelta rounding (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/254\"\u003e#254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/58d10b43175a22eb9ece2c6f3dcff6b6b681e2df\"\u003e\u003ccode\u003e58d10b4\u003c/code\u003e\u003c/a\u003e Update docs/requirements.txt (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/260\"\u003e#260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/18105e31d4909452207eecb8864f345b134b0d61\"\u003e\u003ccode\u003e18105e3\u003c/code\u003e\u003c/a\u003e Update dependency mypy to v1.17.1 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/122726447c64fb197410f496e5715f9b0...\n\n_Description has been truncated_","html_url":"https://github.com/alphagov/emergency-alerts-admin/pull/283","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphagov%2Femergency-alerts-admin/issues/283","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/283/packages"},{"uuid":"2871399299","node_id":"PR_kwDOJgSYNM6rJhOD","number":869,"state":"open","title":"Bump pyproj from 3.5.0 to 3.7.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T17:08:08.000Z","updated_at":"2025-09-29T17:08:09.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pyproj","old_version":"3.5.0","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pyproj](https://github.com/pyproj4/pyproj) from 3.5.0 to 3.7.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.22 to 2.23 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/pyproj4/pyproj/pull/1479\"\u003epyproj4/pyproj#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Only import time.perf_counter by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1480\"\u003epyproj4/pyproj#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1481\"\u003epyproj4/pyproj#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Python 3.11+ by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1483\"\u003epyproj4/pyproj#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.1 to 0.6.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/pyproj4/pyproj/pull/1488\"\u003epyproj4/pyproj#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: update doc geometry_area_perimeter by \u003ca href=\"https://github.com/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Remove 'noqa: E501' from docstrings by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epyproj.crs: add imports to \u003cstrong\u003eall\u003c/strong\u003e by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1494\"\u003epyproj4/pyproj#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: replace black and isort with ruff format and lint by \u003ca href=\"https://github.com/mwtoews\"\u003e\u003ccode\u003e@​mwtoews\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1496\"\u003epyproj4/pyproj#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUILD/CI: Add win_arm64 wheel build by \u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.23 to 3.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/pyproj4/pyproj/pull/1502\"\u003epyproj4/pyproj#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 3.0.0 to 3.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/pyproj4/pyproj/pull/1505\"\u003epyproj4/pyproj#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBLD: Enable free-threading compatibility by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1512\"\u003epyproj4/pyproj#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add 3.13 free-threading wheels by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1514\"\u003epyproj4/pyproj#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-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/pyproj4/pyproj/pull/1520\"\u003epyproj4/pyproj#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1519\"\u003epyproj4/pyproj#1519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout 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/pyproj4/pyproj/pull/1521\"\u003epyproj4/pyproj#1521\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/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.2rc1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.2rc0\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.1 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1477\"\u003epyproj4/pyproj#1477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in  \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1475\"\u003epyproj4/pyproj#1475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: Add wheels for musllinux by \u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead. by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1450\"\u003epyproj4/pyproj#1450\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1452\"\u003epyproj4/pyproj#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 by \u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1455\"\u003epyproj4/pyproj#1455\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Disallow type error without code by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1456\"\u003epyproj4/pyproj#1456\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/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\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/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.11 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Add CRS imports to \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add win_arm64 wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.13 free-threading wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.14 and 3.14 free-threading wheels\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Add wheels for musllinux (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1477\"\u003e#1477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1446\"\u003e#1446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff \u0026amp; lint fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1455\"\u003e#1455\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1456\"\u003e#1456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.4.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1423\"\u003e#1423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.10 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1357\"\u003e#1357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.2 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add :meth:\u003ccode\u003eCRS.is_deprecated\u003c/code\u003e and :meth:\u003ccode\u003eCRS.get_non_deprecated\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1383\"\u003e#1383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePERF: thread local context (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add runtime \u0026amp; compiled PROJ versions (discussion \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1420\"\u003e#1420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Handle changes to HotineObliqueMercatorBConversion (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1429\"\u003e#1429\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.3.0 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Remove pkg_resources from setup.py (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Cython 3 compatibility fixes (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1321\"\u003e#1321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.9 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1111\"\u003e#1111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.2.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1291\"\u003e#1291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added allow_superseded kwargs to :class:\u003ccode\u003epyproj.transformer.TransformerGroup\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1269\"\u003e#1269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added :meth:\u003ccode\u003eCRS.to_2d\u003c/code\u003e to demote 3D CRS to 2D (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1266\"\u003e#1266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added parameter \u003ccode\u003eoutput_axis_rule\u003c/code\u003e to :meth:\u003ccode\u003eCRS.to_wkt\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1287\"\u003e#1287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: fix Geod.npts NaN handling (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1282\"\u003e#1282\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/pyproj4/pyproj/commit/f16037d2c45c3274ef28b828998267c3390393c8\"\u003e\u003ccode\u003ef16037d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/878615decadbde676f9acc82bce9763d62fbacbe\"\u003e\u003ccode\u003e878615d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4813b2db7c0fb92f598748bb1aca85288765a354\"\u003e\u003ccode\u003e4813b2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1521\"\u003e#1521\u003c/a\u003e from pyproj4/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/66b8e0b2fb2f93a83be484cd3ae741c140123930\"\u003e\u003ccode\u003e66b8e0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/ff97ab97b5bfd02a714bf84ebd847ec366da48f8\"\u003e\u003ccode\u003eff97ab9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1519\"\u003e#1519\u003c/a\u003e from djhoese/remove-old-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3692f8aa7fc9373927178fa1774ae69811387cfb\"\u003e\u003ccode\u003e3692f8a\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1520\"\u003e#1520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f3815db4169e399271d87ce9970175edb4b4170b\"\u003e\u003ccode\u003ef3815db\u003c/code\u003e\u003c/a\u003e MNT: Update history with test removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e5ee13f82067e9c577a1bb5e2484ed91c5f96c22\"\u003e\u003ccode\u003ee5ee13f\u003c/code\u003e\u003c/a\u003e TST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26b3cdb7d68e677ebfec62549288eea02bc38ed9\"\u003e\u003ccode\u003e26b3cdb\u003c/code\u003e\u003c/a\u003e MNT: 3.7.2rc0 and update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0cd586a0fb7094b4f8fb43fe34dd2e249aec0da0\"\u003e\u003ccode\u003e0cd586a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1514\"\u003e#1514\u003c/a\u003e from djhoese/ci-313-ft\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.5.0...3.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMost Recent Ignore Conditions Applied to This Pull Request\u003c/summary\u003e\n\n| Dependency Name | Ignore Conditions |\n| --- | --- |\n| pyproj | [\u003e= 3.6.a, \u003c 3.7] |\n\u003c/details\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyproj\u0026package-manager=pip\u0026previous-version=3.5.0\u0026new-version=3.7.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/JoranAngevaare/optim_esm_base/pull/869","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoranAngevaare%2Foptim_esm_base/issues/869","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/869/packages"}],"issue_packages":[{"old_version":"3.6.1","new_version":"3.7.1","update_type":"minor","path":"/cp2b-workspace/NewLook/backend","pr_created_at":"2026-05-19T00:35:08.000Z","version_change":"3.6.1 → 3.7.1","issue":{"uuid":"4473534824","node_id":"PR_kwDOSA1rcM7c34jq","number":37,"state":"open","title":"deps(backend): bump the minor-and-patch group in /cp2b-workspace/NewLook/backend with 19 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-19T00:35:08.000Z","updated_at":"2026-05-19T00:35:09.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(backend): bump","group_name":"minor-and-patch","update_count":19,"packages":[{"name":"fastapi","old_version":"0.135.3","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.32.1","new_version":"0.47.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sqlalchemy","old_version":"2.0.23","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"psycopg2-binary","old_version":"2.9.9","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"alembic","old_version":"1.13.0","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.29","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"python-dotenv","old_version":"1.0.0","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pydantic-settings","old_version":"2.0.3","new_version":"2.14.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"email-validator","old_version":"2.1.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"geoalchemy2","old_version":"0.14.2","new_version":"0.20.0","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"shapely","old_version":"2.0.2","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"geojson","old_version":"3.1.0","new_version":"3.2.0","repository_url":"https://github.com/jazzband/geojson"},{"name":"pyproj","old_version":"3.6.1","new_version":"3.7.1","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"rasterio","old_version":"1.3.9","new_version":"1.4.4","repository_url":"https://github.com/rasterio/rasterio"},{"name":"scipy","old_version":"1.11.4","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"openpyxl","old_version":"3.1.2","new_version":"3.1.5"},{"name":"httpx","old_version":"0.27.0","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"requests","old_version":"2.33.0","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"pytest-mock","old_version":"3.12.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"}],"path":"/cp2b-workspace/NewLook/backend","ecosystem":"pip"},"body":"Bumps the minor-and-patch group in /cp2b-workspace/NewLook/backend with 19 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.3` | `0.136.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.32.1` | `0.47.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.23` | `2.0.49` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.9` | `2.9.12` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.13.0` | `1.18.4` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.29` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.0` | `1.2.2` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.0.3` | `2.14.1` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.1.0` | `2.3.0` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.14.2` | `0.20.0` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.2` | `2.1.2` |\n| [geojson](https://github.com/jazzband/geojson) | `3.1.0` | `3.2.0` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.6.1` | `3.7.1` |\n| [rasterio](https://github.com/rasterio/rasterio) | `1.3.9` | `1.4.4` |\n| [scipy](https://github.com/scipy/scipy) | `1.11.4` | `1.15.3` |\n| [openpyxl](https://openpyxl.readthedocs.io) | `3.1.2` | `3.1.5` |\n| [httpx](https://github.com/encode/httpx) | `0.27.0` | `0.28.1` |\n| [requests](https://github.com/psf/requests) | `2.33.0` | `2.34.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.12.0` | `3.15.1` |\n\nUpdates `fastapi` from 0.135.3 to 0.136.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.135.3...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.32.1 to 0.47.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.47.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEagerly import the ASGI app in the parent process by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2919\"\u003eKludex/uvicorn#2919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003essl_context_factory\u003c/code\u003e for custom \u003ccode\u003eSSLContext\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2920\"\u003eKludex/uvicorn#2920\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003efd=0\u003c/code\u003e as a valid file descriptor with reload/workers by \u003ca href=\"https://github.com/eltoder\"\u003e\u003ccode\u003e@​eltoder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2927\"\u003eKludex/uvicorn#2927\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.46.0...0.47.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.46.0...0.47.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.46.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2915\"\u003eKludex/uvicorn#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2916\"\u003eKludex/uvicorn#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2917\"\u003eKludex/uvicorn#2917\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.45.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2903\"\u003eKludex/uvicorn#2903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2905\"\u003eKludex/uvicorn#2905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2907\"\u003eKludex/uvicorn#2907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2906\"\u003eKludex/uvicorn#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert empty context for ASGI runs by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2911\"\u003eKludex/uvicorn#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2912\"\u003eKludex/uvicorn#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e) by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2913\"\u003eKludex/uvicorn#2913\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/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2870\"\u003eKludex/uvicorn#2870\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.44.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2888\"\u003eKludex/uvicorn#2888\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.43.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\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/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.47.0 (May 14, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003essl_context_factory\u003c/code\u003e for custom \u003ccode\u003eSSLContext\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2920\"\u003e#2920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEagerly import the ASGI app in the parent process (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTreat \u003ccode\u003efd=0\u003c/code\u003e as a valid file descriptor with reload/workers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2927\"\u003e#2927\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.46.0 (April 23, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2916\"\u003e#2916\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2917\"\u003e#2917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.45.0 (April 21, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2913\"\u003e#2913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Explicitly start ASGI run with empty context\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2906\"\u003e#2906\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.44.0 (April 6, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0 (April 3, 2026)\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/Kludex/uvicorn/commit/479a2c0c89186714f1aac52aecdebebf271395ac\"\u003e\u003ccode\u003e479a2c0\u003c/code\u003e\u003c/a\u003e Version 0.47.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2937\"\u003e#2937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/89347fd166ebedf98fb3f806ce8ea44e93b1c2b5\"\u003e\u003ccode\u003e89347fd\u003c/code\u003e\u003c/a\u003e Add 7-day cooldown for dependency resolution via uv exclude-newer (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2936\"\u003e#2936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/767315b38ae509cee9fe8ee9d09f6da920536096\"\u003e\u003ccode\u003e767315b\u003c/code\u003e\u003c/a\u003e Drop unused contents/actions permissions from zizmor workflow (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/f25ee43e68a9678453cbca99ad96f1a447ff34af\"\u003e\u003ccode\u003ef25ee43\u003c/code\u003e\u003c/a\u003e chore(deps): bump urllib3 from 2.6.3 to 2.7.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8782666189a3d36c978de5698620db705659bf44\"\u003e\u003ccode\u003e8782666\u003c/code\u003e\u003c/a\u003e Fix typo in \u003ccode\u003edocs/deployment/index.md\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2932\"\u003e#2932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/ad5ff87c869e8a34e9b04fcd5ca38d65c526893c\"\u003e\u003ccode\u003ead5ff87\u003c/code\u003e\u003c/a\u003e Treat \u003ccode\u003efd=0\u003c/code\u003e as a valid file descriptor with reload/workers (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2927\"\u003e#2927\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/6761b2c8f9272fa0e908d0b9cdcb3cb0aa11382f\"\u003e\u003ccode\u003e6761b2c\u003c/code\u003e\u003c/a\u003e Remove Hugging Face sponsor block from docs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2923\"\u003e#2923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/438f64834de00708a9bb3548a36090e7a924ad84\"\u003e\u003ccode\u003e438f648\u003c/code\u003e\u003c/a\u003e Surface sponsors on welcome page and sidebar (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2921\"\u003e#2921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/10ddc6dd296cb6e432a00835abe27f1c822373c1\"\u003e\u003ccode\u003e10ddc6d\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003essl_context_factory\u003c/code\u003e for custom \u003ccode\u003eSSLContext\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2920\"\u003e#2920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/b499bc45101d920e691e384025d728507215d4d1\"\u003e\u003ccode\u003eb499bc4\u003c/code\u003e\u003c/a\u003e Eagerly import the ASGI app in the parent process (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.32.1...0.47.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.23 to 2.0.49\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.49\u003c/h1\u003e\n\u003cp\u003eReleased: April 3, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.Session.get()\u003c/code\u003e would bypass the identity map\nand emit unnecessary SQL when \u003ccode\u003ewith_for_update=False\u003c/code\u003e was passed,\nrather than treating it equivalently to the default of \u003ccode\u003eNone\u003c/code\u003e.\nPull request courtesy of Joshua Swanson.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13176\"\u003e#13176\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where chained \u003ccode\u003e_orm.joinedload()\u003c/code\u003e options would not be\napplied correctly when the final relationship in the chain is declared on a\nbase mapper and accessed through a subclass mapper in a\n\u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e query. The path registry now correctly\ncomputes the natural path when a property declared on a base class is\naccessed through a path containing a subclass mapper, ensuring the loader\noption can be located during query compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13193\"\u003e#13193\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.Load.options()\u003c/code\u003e to apply a chained loader\noption such as \u003ccode\u003e_orm.joinedload()\u003c/code\u003e or \u003ccode\u003e_orm.selectinload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot generate the necessary clauses for the polymorphic subclasses. The\npolymorphic loading strategy is now correctly propagated when using a call\nsuch as \u003ccode\u003ejoinedload(A.b).options(joinedload(B.c.of_type(poly)))\u003c/code\u003e to match\nthe behavior of direct chaining e.g.\n\u003ccode\u003ejoinedload(A.b).joinedload(B.c.of_type(poly))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13202\"\u003e#13202\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using chained loader options such as\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e after \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot properly apply the chained loader option. The loader option is now\ncorrectly applied when using a call such as\n\u003ccode\u003ejoinedload(A.b.of_type(poly)).selectinload(poly.SubClass.c)\u003c/code\u003e to eagerly\nload related objects.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13209\"\u003e#13209\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed a typing issue where the typed members of :data:\u003ccode\u003e.func\u003c/code\u003e would return\nthe appropriate class of the same name, however this creates an issue for\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.9 to 2.9.12\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.9...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.13.0 to 1.18.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.18.4\u003c/h1\u003e\n\u003cp\u003eReleased: February 10, 2026\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [operations]\u003c/strong\u003e Reverted the behavior of \u003ccode\u003eOperations.add_column()\u003c/code\u003e that would\nautomatically render the \u0026quot;PRIMARY KEY\u0026quot; keyword inline when a\n\u003ccode\u003eColumn\u003c/code\u003e with \u003ccode\u003eprimary_key=True\u003c/code\u003e is added. The automatic\nbehavior, added in version 1.18.2, is now opt-in via the new\n\u003ccode\u003eOperations.add_column.inline_primary_key\u003c/code\u003e parameter. This\nchange restores the ability to render a PostgreSQL SERIAL column, which is\nrequired to be \u003ccode\u003eprimary_key=True\u003c/code\u003e, while not impacting the ability to\nrender a separate primary key constraint. This also provides consistency\nwith the \u003ccode\u003eOperations.add_column.inline_references\u003c/code\u003e parameter and\ngives users explicit control over SQL generation.\u003c/p\u003e\n\u003cp\u003eTo render PRIMARY KEY inline, use the\n\u003ccode\u003eOperations.add_column.inline_primary_key\u003c/code\u003e parameter set to\n\u003ccode\u003eTrue\u003c/code\u003e:\u003c/p\u003e\n\u003cp\u003eop.add_column(\n\u0026quot;my_table\u0026quot;,\nColumn(\u0026quot;id\u0026quot;, Integer, primary_key=True),\ninline_primary_key=True\n)References: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1232\"\u003e#1232\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.18.3\u003c/h1\u003e\n\u003cp\u003eReleased: January 29, 2026\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [autogenerate]\u003c/strong\u003e Fixed regression in version 1.18.0 due to \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e where autogenerate\nwould raise \u003ccode\u003eNoReferencedTableError\u003c/code\u003e when a foreign key constraint\nreferenced a table that was not part of the initial table load, including\ntables filtered out by the\n\u003ccode\u003eEnvironmentContext.configure.include_name\u003c/code\u003e callable or tables\nin remote schemas that were not included in the initial reflection run.\u003c/p\u003e\n\u003cp\u003eThe change in \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e was a performance optimization that eliminated\nadditional reflection queries for tables that were only referenced by\nforeign keys but not explicitly included in the main reflection run.\nHowever, this optimization inadvertently removed the creation of\n\u003ccode\u003eTable\u003c/code\u003e objects for these referenced tables, causing autogenerate\nto fail when processing foreign key constraints that pointed to them.\u003c/p\u003e\n\u003cp\u003eThe fix creates placeholder \u003ccode\u003eTable\u003c/code\u003e objects for foreign key targets\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.22 to 0.0.29\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.29\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle malformed RFC 2231 continuations in \u003ccode\u003eparse_options_header\u003c/code\u003e by \u003ca href=\"https://github.com/manunio\"\u003e\u003ccode\u003e@​manunio\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/270\"\u003eKludex/python-multipart#270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.28...0.0.29\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.28...0.0.29\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.28\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/281\"\u003eKludex/python-multipart#281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCap multipart boundary length at 256 bytes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/282\"\u003eKludex/python-multipart#282\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.27...0.0.28\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.27...0.0.28\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.27\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePass parse offsets via constructors by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003eKludex/python-multipart#268\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd multipart header limits by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003eKludex/python-multipart#267\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.29 (2026-05-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle malformed RFC 2231 continuations in \u003ccode\u003eparse_options_header\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/270\"\u003e#270\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.28 (2026-05-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/281\"\u003e#281\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCap multipart boundary length at 256 bytes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/282\"\u003e#282\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.27 (2026-04-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd multipart header limits \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003e#267\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePass parse offsets via constructors \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003e#268\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/e3d6853978b91b77e9739d47389124d633894c39\"\u003e\u003ccode\u003ee3d6853\u003c/code\u003e\u003c/a\u003e Version 0.0.29 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/a60dcdcb34d55b396ced6f5bdb1d1e6df84832ae\"\u003e\u003ccode\u003ea60dcdc\u003c/code\u003e\u003c/a\u003e Handle malformed RFC 2231 continuations in \u003ccode\u003eparse_options_header\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/270\"\u003e#270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/75c33b24d91f1e3c65b597832984d6c46d1a38df\"\u003e\u003ccode\u003e75c33b2\u003c/code\u003e\u003c/a\u003e Add 7-day cooldown for dependency resolution via uv exclude-newer (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/a078b8ef00474c3f3a6cf750cd092cf880354a11\"\u003e\u003ccode\u003ea078b8e\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.6.3 to 2.7.0 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/7d8d28b210ac6cb055399562b0dc0e5cf9aef14a\"\u003e\u003ccode\u003e7d8d28b\u003c/code\u003e\u003c/a\u003e Version 0.0.28 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b0dd125457d0f98de23bf2f894aedb1a54639d4e\"\u003e\u003ccode\u003eb0dd125\u003c/code\u003e\u003c/a\u003e Cap multipart boundary length at 256 bytes (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d1b57392cf7d0c19235ba454eb5686fd27dc2384\"\u003e\u003ccode\u003ed1b5739\u003c/code\u003e\u003c/a\u003e Speed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/09cb8c3da7638d45ecdf7c154832303214bba829\"\u003e\u003ccode\u003e09cb8c3\u003c/code\u003e\u003c/a\u003e Make the long_boundary benchmark dominated by the patched code path (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/a6467c93c14aa4b09ef65450ead8011c45e5c7a0\"\u003e\u003ccode\u003ea6467c9\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Switch CodSpeed benchmarks to walltime mode\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/9a9690035a956fbdcca06f98461244cf790375a7\"\u003e\u003ccode\u003e9a96900\u003c/code\u003e\u003c/a\u003e Switch CodSpeed benchmarks to walltime mode (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.0.0 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\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/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/579\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/563\"\u003e#563\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/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.0.0...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.0.3 to 2.14.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/850\"\u003epydantic/pydantic-settings#850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 5 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/pydantic/pydantic-settings/pull/854\"\u003epydantic/pydantic-settings#854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 3 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/pydantic/pydantic-settings/pull/853\"\u003epydantic/pydantic-settings#853\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages 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/pydantic/pydantic-settings/pull/856\"\u003epydantic/pydantic-settings#856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix field named \u003ccode\u003ecls\u003c/code\u003e conflicting with classmethod parameter by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/858\"\u003epydantic/pydantic-settings#858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.14.1 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/859\"\u003epydantic/pydantic-settings#859\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.14.0...v2.14.1\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.14.0...v2.14.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix parsing env vars into Optional Strict types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/792\"\u003epydantic/pydantic-settings#792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError with mutually recursive models in CLI by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/794\"\u003epydantic/pydantic-settings#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix env_file from model_config ignored in CliApp.run() (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/795\"\u003e#795\u003c/a\u003e) by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/796\"\u003epydantic/pydantic-settings#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/798\"\u003epydantic/pydantic-settings#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Dependabot configuration by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/801\"\u003epydantic/pydantic-settings#801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump samuelcolvin/check-python-version from 4.1 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/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 7 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/pydantic/pydantic-settings/pull/803\"\u003epydantic/pydantic-settings#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 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/pydantic/pydantic-settings/pull/804\"\u003epydantic/pydantic-settings#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 5 to 7 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/pydantic/pydantic-settings/pull/805\"\u003epydantic/pydantic-settings#805\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/pydantic/pydantic-settings/pull/806\"\u003epydantic/pydantic-settings#806\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore chardet and group GitHub Actions in Dependabot by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/808\"\u003epydantic/pydantic-settings#808\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 8 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/809\"\u003epydantic/pydantic-settings#809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages 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/pydantic/pydantic-settings/pull/810\"\u003epydantic/pydantic-settings#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport reading .env files from FIFOs (e.g. 1Password Environments) by \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AliasChoices ignored when changing provider priority by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/813\"\u003epydantic/pydantic-settings#813\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve KeyError in run_subcommand for underscore field names by \u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 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/pydantic/pydantic-settings/pull/814\"\u003epydantic/pydantic-settings#814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eLiteral[numeric Enum]\u003c/code\u003e coercion for CLI and env vars by \u003ca href=\"https://github.com/m9810223\"\u003e\u003ccode\u003e@​m9810223\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/811\"\u003epydantic/pydantic-settings#811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix nested discriminated unions not discovered by env/CLI providers by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/816\"\u003epydantic/pydantic-settings#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 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/pydantic/pydantic-settings/pull/820\"\u003epydantic/pydantic-settings#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI ensure env nested max split internally. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/821\"\u003epydantic/pydantic-settings#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/824\"\u003epydantic/pydantic-settings#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eboto3-stubs\u003c/code\u003e to \u003ccode\u003etypes-boto3\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/831\"\u003epydantic/pydantic-settings#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI not recognizing field name with validate_by_name and AliasChoices by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/826\"\u003epydantic/pydantic-settings#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow customisation of the dotevn setting source to filter variables by \u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 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/pydantic/pydantic-settings/pull/833\"\u003epydantic/pydantic-settings#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce yamlfmt by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/836\"\u003epydantic/pydantic-settings#836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump boto3 from 1.42.82 to 1.42.83 in the python-packages 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/pydantic/pydantic-settings/pull/837\"\u003epydantic/pydantic-settings#837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce zizmor by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/838\"\u003epydantic/pydantic-settings#838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CliPositionalArg[list[CustomType]] crash for custom types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/839\"\u003epydantic/pydantic-settings#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/842\"\u003epydantic/pydantic-settings#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/844\"\u003epydantic/pydantic-settings#844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/847\"\u003epydantic/pydantic-settings#847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to \u003ccode\u003ejson_schema_extra\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/843\"\u003epydantic/pydantic-settings#843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.14.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/848\"\u003epydantic/pydantic-settings#848\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/pydantic/pydantic-settings/commit/e95c30bec8cfaee88ee275138c064aea97a25bdf\"\u003e\u003ccode\u003ee95c30b\u003c/code\u003e\u003c/a\u003e Prepare release 2.14.1 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/859\"\u003e#859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0c8734581b6cf70a995afad603ac456631d00621\"\u003e\u003ccode\u003e0c87345\u003c/code\u003e\u003c/a\u003e Fix field named \u003ccode\u003ecls\u003c/code\u003e conflicting with classmethod parameter (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/858\"\u003e#858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/7bd0072795a800065b42210b6dca90fc9b83daf7\"\u003e\u003ccode\u003e7bd0072\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 2 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/856\"\u003e#856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/b03e573d017ed48e1c2774a5e0b715db9766c76b\"\u003e\u003ccode\u003eb03e573\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca h...\n\n_Description has been truncated_","html_url":"https://github.com/aikiesan/Pilar-2b/pull/37","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/aikiesan%2FPilar-2b/issues/37","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/37/packages"}},{"old_version":"\u003c4.0,\u003e=3.6","new_version":"\u003e=3.6.1,\u003c4.0","update_type":"minor","path":null,"pr_created_at":"2026-05-16T01:14:19.000Z","version_change":"\u003c4.0,\u003e=3.6 → \u003e=3.6.1,\u003c4.0","issue":{"uuid":"4458010415","node_id":"PR_kwDOR52bTc7cHxMU","number":73,"state":"open","title":"chore(deps)(deps): update pyproj requirement from \u003c4.0,\u003e=3.6 to \u003e=3.6.1,\u003c4.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-16T01:14:19.000Z","updated_at":"2026-05-16T01:14:20.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): update","packages":[{"name":"pyproj","old_version":"\u003c4.0,\u003e=3.6","new_version":"\u003e=3.6.1,\u003c4.0","repository_url":"https://github.com/pyproj4/pyproj"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [pyproj](https://github.com/pyproj4/pyproj) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.6.1 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Update to PROJ 9.3 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1334\"\u003epyproj4/pyproj#1334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.12 support by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1341\"\u003epyproj4/pyproj#1341\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUG: Cython 3 compatibility fixes by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1322\"\u003epyproj4/pyproj#1322\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUG: Remove pkg_resources from setup.py by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1314\"\u003epyproj4/pyproj#1314\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Fixed typos by \u003ca href=\"https://github.com/djm93dev\"\u003e\u003ccode\u003e@​djm93dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1305\"\u003epyproj4/pyproj#1305\u003c/a\u003e \u0026amp; \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1306\"\u003epyproj4/pyproj#1306\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Fix logo view on Pypi by \u003ca href=\"https://github.com/cyschneck\"\u003e\u003ccode\u003e@​cyschneck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1308\"\u003epyproj4/pyproj#1308\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Spelling permimeter -\u0026gt; perimeter by \u003ca href=\"https://github.com/zanejgr\"\u003e\u003ccode\u003e@​zanejgr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1310\"\u003epyproj4/pyproj#1310\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/djm93dev\"\u003e\u003ccode\u003e@​djm93dev\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1305\"\u003epyproj4/pyproj#1305\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cyschneck\"\u003e\u003ccode\u003e@​cyschneck\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1308\"\u003epyproj4/pyproj#1308\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanejgr\"\u003e\u003ccode\u003e@​zanejgr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1310\"\u003epyproj4/pyproj#1310\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther contributions:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sebastic\"\u003e\u003ccode\u003e@​sebastic\u003c/code\u003e\u003c/a\u003e - testing Debian builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jdkloe\"\u003e\u003ccode\u003e@​jdkloe\u003c/code\u003e\u003c/a\u003e - testing Fedora builds\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.6.0...3.6.1\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.6.0...3.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.3.0 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Remove pkg_resources from setup.py (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Cython 3 compatibility fixes (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1321\"\u003e#1321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.9 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1111\"\u003e#1111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.2.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1291\"\u003e#1291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added allow_superseded kwargs to :class:\u003ccode\u003epyproj.transformer.TransformerGroup\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1269\"\u003e#1269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added :meth:\u003ccode\u003eCRS.to_2d\u003c/code\u003e to demote 3D CRS to 2D (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1266\"\u003e#1266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added parameter \u003ccode\u003eoutput_axis_rule\u003c/code\u003e to :meth:\u003ccode\u003eCRS.to_wkt\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1287\"\u003e#1287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: fix Geod.npts NaN handling (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1282\"\u003e#1282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.0 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1223\"\u003e#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: PROJ 9.2 in wheels (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1243\"\u003e#1243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add \u003ccode\u003ereturn_back_azimuth: bool\u003c/code\u003e to allow compatibility between the azimuth output of the following functions (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1163\"\u003e#1163\u003c/a\u003e):\n\u003ccode\u003efwd\u003c/code\u003e and \u003ccode\u003efwd_intermediate\u003c/code\u003e, \u003ccode\u003einv\u003c/code\u003e and \u003ccode\u003einv_intermediate\u003c/code\u003e,\nNote: BREAKING CHANGE for the default value \u003ccode\u003ereturn_back_azimuth=True\u003c/code\u003e in the functions \u003ccode\u003efwd_intermediate\u003c/code\u003e and \u003ccode\u003einv_intermediate\u003c/code\u003e\nto mach the default value in \u003ccode\u003efwd\u003c/code\u003e and \u003ccode\u003einv\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eENH: Added only_best kwarg to :meth:\u003ccode\u003e.Transformer.from_crs\u003c/code\u003e (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1228\"\u003e#1228\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePERF: Optimize point transformations (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1204\"\u003e#1204\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePERF: Optimize for single point in Geod fwd/inv functions (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1206\"\u003e#1206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eREF: Raise error when :meth:\u003ccode\u003e.CRS.to_wkt\u003c/code\u003e, :meth:\u003ccode\u003e.CRS.to_json\u003c/code\u003e, or :meth:\u003ccode\u003e.CRS.to_proj4\u003c/code\u003e returns None (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1036\"\u003e#1036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLN: Remove \u003ccode\u003eAzumuthalEquidistantConversion\u003c/code\u003e \u0026amp; :class:\u003ccode\u003eLambertAzumuthalEqualAreaConversion\u003c/code\u003e. :class:\u003ccode\u003eAzimuthalEquidistantConversion\u003c/code\u003e \u0026amp; :class:\u003ccode\u003eLambertAzimuthalEqualAreaConversion\u003c/code\u003e should be used instead (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1219\"\u003e#1219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Fix Derived Projected CRS support (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1182\"\u003e#1182\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Add horizontal_datum_name for geographic CRS in :meth:\u003ccode\u003e.CRS.to_cf\u003c/code\u003e (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1251\"\u003e#1251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Add datum ensemble support to :class:\u003ccode\u003e.GeographicCRS\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1255\"\u003e#1255\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.4.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Add win32 to build_wheels matrix (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1169\"\u003e#1169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Changed so that the setup.cfg depends on the version code in the \u003cstrong\u003einit\u003c/strong\u003e.py instead of the other way around (issuue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Fix :meth:\u003ccode\u003e.CRS.to_cf\u003c/code\u003e for Pole rotation GRIB convention (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1167\"\u003e#1167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Fix :meth:\u003ccode\u003e.CRS.to_authority\u003c/code\u003e memory leak (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1178\"\u003e#1178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eREF: Use upper case EPSG code when creating CRS (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1162\"\u003e#1162\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Python 3.11 Wheels (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1110\"\u003e#1110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.1.0 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1132\"\u003e#1132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 8.2 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1011\"\u003e#1011\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Fix transformer list for 3D transformations in :class:\u003ccode\u003e.TransformerGroup\u003c/code\u003e (discussion \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1072\"\u003e#1072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added authority, accuracy, and allow_ballpark kwargs to :class:\u003ccode\u003e.TransformerGroup\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1076\"\u003e#1076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added \u003ccode\u003eforce_over\u003c/code\u003e kwarg to :meth:\u003ccode\u003e.Transformer.from_crs\u003c/code\u003e (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/997\"\u003e#997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added :meth:\u003ccode\u003e.Transformer.get_last_used_operation\u003c/code\u003e (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1071\"\u003e#1071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLN: Remove deprecated \u003ccode\u003eskip_equivalent\u003c/code\u003e kwarg from transformers and \u003ccode\u003eerrcheck\u003c/code\u003e kwarg from :meth:\u003ccode\u003e.CRS.from_cf\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1077\"\u003e#1077\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/pyproj4/pyproj/commit/0c5159aab8c32488584ae472b3752203f1005559\"\u003e\u003ccode\u003e0c5159a\u003c/code\u003e\u003c/a\u003e DOC: Update contributors count\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/98fcb3b2ece4b4ae7fe52c6750d70f00fed2b67d\"\u003e\u003ccode\u003e98fcb3b\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://github.com/zanejgr\"\u003e\u003ccode\u003e@​zanejgr\u003c/code\u003e\u003c/a\u003e as a contributor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/c8c50bb84b58cb0b6e354dbda49527c192d9196c\"\u003e\u003ccode\u003ec8c50bb\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://github.com/cyschneck\"\u003e\u003ccode\u003e@​cyschneck\u003c/code\u003e\u003c/a\u003e as a contributor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4dbe46fedf303e7881b664ef0b8785ab3a407881\"\u003e\u003ccode\u003e4dbe46f\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://github.com/djm93dev\"\u003e\u003ccode\u003e@​djm93dev\u003c/code\u003e\u003c/a\u003e as a contributor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/cb47bf00637b0b583fa53d25ac9d317cdf98b193\"\u003e\u003ccode\u003ecb47bf0\u003c/code\u003e\u003c/a\u003e MNT: Version 3.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/1d83ec10af044619177197d8add3518c4a6f83ae\"\u003e\u003ccode\u003e1d83ec1\u003c/code\u003e\u003c/a\u003e DOC: Update how to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/36940dbbe2588be401209ae7a86536b42be0ea0f\"\u003e\u003ccode\u003e36940db\u003c/code\u003e\u003c/a\u003e MNT: version 3.6.1rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3627e949ff10fe56d527fb1b9d122a886ac074a2\"\u003e\u003ccode\u003e3627e94\u003c/code\u003e\u003c/a\u003e CI: Update cibuildwheel v0.16 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1330\"\u003e#1330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/dd80043cde38db94a31b5b477b48bd00e68417e5\"\u003e\u003ccode\u003edd80043\u003c/code\u003e\u003c/a\u003e DEP: Add Python 3.12 support (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1341\"\u003e#1341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/76b77c8586efa28565aaab2365fa459f75596043\"\u003e\u003ccode\u003e76b77c8\u003c/code\u003e\u003c/a\u003e WHL: Update to PROJ 9.3 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1334\"\u003e#1334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.6.0...3.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore 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/danielnovais-tech/TELECOM-TOWER-POWER/pull/73","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/danielnovais-tech%2FTELECOM-TOWER-POWER/issues/73","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/73/packages"}},{"old_version":"\u003e=3.6","new_version":"\u003e=3.7.2","update_type":null,"path":null,"pr_created_at":"2026-05-11T21:01:28.000Z","version_change":"\u003e=3.6 → \u003e=3.7.2","issue":{"uuid":"4424270840","node_id":"PR_kwDOSPP1Nc7abKKN","number":4,"state":"open","title":"chore(pip): update pyproj requirement from \u003e=3.6 to \u003e=3.7.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-11T21:01:28.000Z","updated_at":"2026-05-11T21:26:09.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(pip): update","packages":[{"name":"pyproj","old_version":"\u003e=3.6","new_version":"\u003e=3.7.2","repository_url":"https://github.com/pyproj4/pyproj"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [pyproj](https://github.com/pyproj4/pyproj) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.22 to 2.23 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/pyproj4/pyproj/pull/1479\"\u003epyproj4/pyproj#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Only import time.perf_counter by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1480\"\u003epyproj4/pyproj#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1481\"\u003epyproj4/pyproj#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Python 3.11+ by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1483\"\u003epyproj4/pyproj#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.1 to 0.6.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/pyproj4/pyproj/pull/1488\"\u003epyproj4/pyproj#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: update doc geometry_area_perimeter by \u003ca href=\"https://github.com/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Remove 'noqa: E501' from docstrings by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epyproj.crs: add imports to \u003cstrong\u003eall\u003c/strong\u003e by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1494\"\u003epyproj4/pyproj#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: replace black and isort with ruff format and lint by \u003ca href=\"https://github.com/mwtoews\"\u003e\u003ccode\u003e@​mwtoews\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1496\"\u003epyproj4/pyproj#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUILD/CI: Add win_arm64 wheel build by \u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.23 to 3.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/pyproj4/pyproj/pull/1502\"\u003epyproj4/pyproj#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 3.0.0 to 3.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/pyproj4/pyproj/pull/1505\"\u003epyproj4/pyproj#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBLD: Enable free-threading compatibility by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1512\"\u003epyproj4/pyproj#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add 3.13 free-threading wheels by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1514\"\u003epyproj4/pyproj#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-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/pyproj4/pyproj/pull/1520\"\u003epyproj4/pyproj#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1519\"\u003epyproj4/pyproj#1519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout 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/pyproj4/pyproj/pull/1521\"\u003epyproj4/pyproj#1521\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/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.11 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Add CRS imports to \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add win_arm64 wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.13 free-threading wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.14 and 3.14 free-threading wheels\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Add wheels for musllinux (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1477\"\u003e#1477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1446\"\u003e#1446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff \u0026amp; lint fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1455\"\u003e#1455\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1456\"\u003e#1456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.4.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1423\"\u003e#1423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.10 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1357\"\u003e#1357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.2 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add :meth:\u003ccode\u003eCRS.is_deprecated\u003c/code\u003e and :meth:\u003ccode\u003eCRS.get_non_deprecated\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1383\"\u003e#1383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePERF: thread local context (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add runtime \u0026amp; compiled PROJ versions (discussion \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1420\"\u003e#1420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Handle changes to HotineObliqueMercatorBConversion (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1429\"\u003e#1429\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.3.0 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Remove pkg_resources from setup.py (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Cython 3 compatibility fixes (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1321\"\u003e#1321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.9 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1111\"\u003e#1111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.2.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1291\"\u003e#1291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added allow_superseded kwargs to :class:\u003ccode\u003epyproj.transformer.TransformerGroup\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1269\"\u003e#1269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added :meth:\u003ccode\u003eCRS.to_2d\u003c/code\u003e to demote 3D CRS to 2D (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1266\"\u003e#1266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added parameter \u003ccode\u003eoutput_axis_rule\u003c/code\u003e to :meth:\u003ccode\u003eCRS.to_wkt\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1287\"\u003e#1287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: fix Geod.npts NaN handling (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1282\"\u003e#1282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.0 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1223\"\u003e#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: PROJ 9.2 in wheels (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1243\"\u003e#1243\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/pyproj4/pyproj/commit/f16037d2c45c3274ef28b828998267c3390393c8\"\u003e\u003ccode\u003ef16037d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/878615decadbde676f9acc82bce9763d62fbacbe\"\u003e\u003ccode\u003e878615d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4813b2db7c0fb92f598748bb1aca85288765a354\"\u003e\u003ccode\u003e4813b2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1521\"\u003e#1521\u003c/a\u003e from pyproj4/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/66b8e0b2fb2f93a83be484cd3ae741c140123930\"\u003e\u003ccode\u003e66b8e0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/ff97ab97b5bfd02a714bf84ebd847ec366da48f8\"\u003e\u003ccode\u003eff97ab9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1519\"\u003e#1519\u003c/a\u003e from djhoese/remove-old-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3692f8aa7fc9373927178fa1774ae69811387cfb\"\u003e\u003ccode\u003e3692f8a\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1520\"\u003e#1520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f3815db4169e399271d87ce9970175edb4b4170b\"\u003e\u003ccode\u003ef3815db\u003c/code\u003e\u003c/a\u003e MNT: Update history with test removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e5ee13f82067e9c577a1bb5e2484ed91c5f96c22\"\u003e\u003ccode\u003ee5ee13f\u003c/code\u003e\u003c/a\u003e TST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26b3cdb7d68e677ebfec62549288eea02bc38ed9\"\u003e\u003ccode\u003e26b3cdb\u003c/code\u003e\u003c/a\u003e MNT: 3.7.2rc0 and update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0cd586a0fb7094b4f8fb43fe34dd2e249aec0da0\"\u003e\u003ccode\u003e0cd586a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1514\"\u003e#1514\u003c/a\u003e from djhoese/ci-313-ft\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.6.0...3.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/synjan/norsk-jernbane/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/synjan%2Fnorsk-jernbane/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"}},{"old_version":"3.7.1","new_version":"3.7.2","update_type":"patch","path":null,"pr_created_at":"2026-02-21T02:39:45.000Z","version_change":"3.7.1 → 3.7.2","issue":{"uuid":"3971112133","node_id":"PR_kwDORAhFZs7FS-SH","number":5,"state":"closed","title":"Bump the all-deps group across 1 directory with 56 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-28T04:30:28.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-21T02:39:45.000Z","updated_at":"2026-02-28T04:30:29.000Z","time_to_close":611443,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-deps","update_count":56,"packages":[{"name":"aiosqlite","old_version":"0.22.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"antlr4-python3-runtime","old_version":"4.13.1","new_version":"4.13.2"},{"name":"asyncua","old_version":"1.1.5","new_version":"1.1.8","repository_url":"https://github.com/FreeOpcUa/opcua-asyncio"},{"name":"atomicwrites","old_version":"1.4.0","new_version":"1.4.1","repository_url":"https://github.com/untitaker/python-atomicwrites"},{"name":"autobahn","old_version":"24.4.2","new_version":"25.12.2","repository_url":"https://github.com/crossbario/autobahn-python"},{"name":"awkward","old_version":"2.8.11","new_version":"2.9.0","repository_url":"https://github.com/scikit-hep/awkward-1.0"},{"name":"awkward-cpp","old_version":"51","new_version":"52","repository_url":"https://github.com/scikit-hep/awkward-1.0"},{"name":"certifi","old_version":"2025.11.12","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"click","old_version":"8.1.7","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"comtypes","old_version":"1.4.14","new_version":"1.4.15","repository_url":"https://github.com/enthought/comtypes"},{"name":"contourpy","old_version":"1.3.2","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"cryptography","old_version":"46.0.3","new_version":"46.0.5","repository_url":"https://github.com/pyca/cryptography"},{"name":"fsspec","old_version":"2025.12.0","new_version":"2026.2.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"gmsh","old_version":"4.15.0","new_version":"4.15.1"},{"name":"ladybug-comfort","old_version":"0.18.96","new_version":"0.18.103","repository_url":"https://github.com/ladybug-tools/ladybug-comfort"},{"name":"ladybug-core","old_version":"0.44.29","new_version":"0.44.36","repository_url":"https://github.com/ladybug-tools/ladybug"},{"name":"ladybug-display","old_version":"0.13.3","new_version":"0.13.6","repository_url":"https://github.com/ladybug-tools/ladybug-display"},{"name":"ladybug-geometry","old_version":"1.34.14","new_version":"1.34.19","repository_url":"https://github.com/ladybug-tools/ladybug-geometry"},{"name":"markdown","old_version":"3.10","new_version":"3.10.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"networkx","old_version":"3.4.2","new_version":"3.6.1","repository_url":"https://github.com/networkx/networkx"},{"name":"numba","old_version":"0.63.1","new_version":"0.64.0","repository_url":"https://github.com/numba/numba"},{"name":"numpy","old_version":"1.26.4","new_version":"2.4.2","repository_url":"https://github.com/numpy/numpy"},{"name":"openstudio","old_version":"3.10.0","new_version":"3.11.0","repository_url":"https://github.com/NREL/OpenStudio"},{"name":"orjson","old_version":"3.11.5","new_version":"3.11.7","repository_url":"https://github.com/ijl/orjson"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pandas","old_version":"2.3.3","new_version":"3.0.1","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pillow","old_version":"12.0.0","new_version":"12.1.1","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.5.1","new_version":"4.9.2","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"posthog","old_version":"7.4.2","new_version":"7.9.3","repository_url":"https://github.com/posthog/posthog-python"},{"name":"protobuf","old_version":"6.33.2","new_version":"6.33.5","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"psutil","old_version":"7.1.3","new_version":"7.2.2","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycollada","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/pycollada/pycollada"},{"name":"pycparser","old_version":"2.23","new_version":"3.0","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyfakefs","old_version":"6.0.0","new_version":"6.1.1","repository_url":"https://github.com/pytest-dev/pyfakefs"},{"name":"pygit2","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/libgit2/pygit2"},{"name":"pyjwt","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pynastran","old_version":"1.3.4","new_version":"1.4.1","repository_url":"https://github.com/SteveDoyle2/pyNastran"},{"name":"pyoptools","old_version":"0.3.7","new_version":"0.3.8"},{"name":"pyparsing","old_version":"3.3.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyproj","old_version":"3.7.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"pyvista","old_version":"0.46.4","new_version":"0.47.0","repository_url":"https://github.com/pyvista/pyvista"},{"name":"rich","old_version":"14.2.0","new_version":"14.3.3","repository_url":"https://github.com/Textualize/rich"},{"name":"scikit-image","old_version":"0.25.2","new_version":"0.26.0","repository_url":"https://github.com/scikit-image/scikit-image"},{"name":"scikit-learn","old_version":"1.7.2","new_version":"1.8.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.15.3","new_version":"1.17.0","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.48.0","new_version":"2.53.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"soupsieve","old_version":"2.8.1","new_version":"2.8.3","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"testtools","old_version":"2.8.2","new_version":"2.8.4","repository_url":"https://github.com/testing-cabal/testtools"},{"name":"tifffile","old_version":"2025.5.10","new_version":"2026.2.20","repository_url":"https://github.com/cgohlke/tifffile"},{"name":"trimesh","old_version":"4.10.1","new_version":"4.11.2","repository_url":"https://github.com/mikedh/trimesh"},{"name":"txaio","old_version":"25.9.2","new_version":"25.12.2","repository_url":"https://github.com/crossbario/txaio"},{"name":"urllib3","old_version":"2.6.2","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"vedo","old_version":"2025.5.4","new_version":"2026.6.1","repository_url":"https://github.com/marcomusy/vedo"},{"name":"vtk","old_version":"9.5.2","new_version":"9.6.0"},{"name":"xarray","old_version":"2025.6.1","new_version":"2026.2.0","repository_url":"https://github.com/pydata/xarray"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-deps group with 56 updates in the /Data/Python directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.22.0` | `0.22.1` |\n| [antlr4-python3-runtime](http://www.antlr.org) | `4.13.1` | `4.13.2` |\n| [asyncua](https://github.com/FreeOpcUa/opcua-asyncio) | `1.1.5` | `1.1.8` |\n| [atomicwrites](https://github.com/untitaker/python-atomicwrites) | `1.4.0` | `1.4.1` |\n| [autobahn](https://github.com/crossbario/autobahn-python) | `24.4.2` | `25.12.2` |\n| [awkward](https://github.com/scikit-hep/awkward-1.0) | `2.8.11` | `2.9.0` |\n| [awkward-cpp](https://github.com/scikit-hep/awkward-1.0) | `51` | `52` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.11.12` | `2026.1.4` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.1` |\n| [comtypes](https://github.com/enthought/comtypes) | `1.4.14` | `1.4.15` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.3` | `46.0.5` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.12.0` | `2026.2.0` |\n| [gmsh](https://gmsh.info) | `4.15.0` | `4.15.1` |\n| [ladybug-comfort](https://github.com/ladybug-tools/ladybug-comfort) | `0.18.96` | `0.18.103` |\n| [ladybug-core](https://github.com/ladybug-tools/ladybug) | `0.44.29` | `0.44.36` |\n| [ladybug-display](https://github.com/ladybug-tools/ladybug-display) | `0.13.3` | `0.13.6` |\n| [ladybug-geometry](https://github.com/ladybug-tools/ladybug-geometry) | `1.34.14` | `1.34.19` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.10` | `3.10.2` |\n| [networkx](https://github.com/networkx/networkx) | `3.4.2` | `3.6.1` |\n| [numba](https://github.com/numba/numba) | `0.63.1` | `0.64.0` |\n| [numpy](https://github.com/numpy/numpy) | `1.26.4` | `2.4.2` |\n| [openstudio](https://github.com/NREL/OpenStudio) | `3.10.0` | `3.11.0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.5` | `3.11.7` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.3` | `3.0.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.0.0` | `12.1.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.5.1` | `4.9.2` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [posthog](https://github.com/posthog/posthog-python) | `7.4.2` | `7.9.3` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.2` | `6.33.5` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.1.3` | `7.2.2` |\n| [pycollada](https://github.com/pycollada/pycollada) | `0.9.2` | `0.9.3` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.23` | `3.0` |\n| [pyfakefs](https://github.com/pytest-dev/pyfakefs) | `6.0.0` | `6.1.1` |\n| [pygit2](https://github.com/libgit2/pygit2) | `1.18.2` | `1.19.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [pynastran](https://github.com/SteveDoyle2/pyNastran) | `1.3.4` | `1.4.1` |\n| pyoptools | `0.3.7` | `0.3.8` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.3.0` | `3.3.2` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.7.1` | `3.7.2` |\n| [pyvista](https://github.com/pyvista/pyvista) | `0.46.4` | `0.47.0` |\n| [rich](https://github.com/Textualize/rich) | `14.2.0` | `14.3.3` |\n| [scikit-image](https://github.com/scikit-image/scikit-image) | `0.25.2` | `0.26.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.7.2` | `1.8.0` |\n| [scipy](https://github.com/scipy/scipy) | `1.15.3` | `1.17.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.48.0` | `2.53.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8.1` | `2.8.3` |\n| [testtools](https://github.com/testing-cabal/testtools) | `2.8.2` | `2.8.4` |\n| [tifffile](https://github.com/cgohlke/tifffile) | `2025.5.10` | `2026.2.20` |\n| [trimesh](https://github.com/mikedh/trimesh) | `4.10.1` | `4.11.2` |\n| [txaio](https://github.com/crossbario/txaio) | `25.9.2` | `25.12.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.2` | `2.6.3` |\n| [vedo](https://github.com/marcomusy/vedo) | `2025.5.4` | `2026.6.1` |\n| [vtk](https://vtk.org) | `9.5.2` | `9.6.0` |\n| [xarray](https://github.com/pydata/xarray) | `2025.6.1` | `2026.2.0` |\n\n\nUpdates `aiosqlite` from 0.22.0 to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.1\u003c/h2\u003e\n\u003cp\u003eBug fix release\u003c/p\u003e\n\u003cp\u003eNOTE: Starting with \u003ccode\u003ev0.22.0\u003c/code\u003e, the \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e object no longer\ninherits from \u003ccode\u003ethreading.Thread\u003c/code\u003e. If not using aiosqlite as a context manager,\nclients must \u003ccode\u003eawait connection.close()\u003c/code\u003e or call \u003ccode\u003econnection.stop()\u003c/code\u003e to ensure\nthe helper thread is completed and terminated correctly. A \u003ccode\u003eResourceWarning\u003c/code\u003e\nwill be emitted for any connection that is garbage collected without being\nclosed or stopped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded synchronous \u003ccode\u003estop()\u003c/code\u003e method to \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e to enable safe\ncleanup and termination of the background thread without dependence\non having an active event loop (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.22.0...v0.22.1\n     2\tAmethyst Reese\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/9b127cecc7de843bf4f343b6da63b641866533fb\"\u003e\u003ccode\u003e9b127ce\u003c/code\u003e\u003c/a\u003e Version bump v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/5c3f61c1ea49401f2716d8f58d494e76ca766921\"\u003e\u003ccode\u003e5c3f61c\u003c/code\u003e\u003c/a\u003e Improve stop semantics for connections (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.22.0...v0.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `antlr4-python3-runtime` from 4.13.1 to 4.13.2\n\nUpdates `asyncua` from 1.1.5 to 1.1.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/releases\"\u003easyncua's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.8\u003c/h2\u003e\n\u003cp\u003efix release script and upload\u003c/p\u003e\n\u003ch2\u003ev1.1.7\u003c/h2\u003e\n\u003cp\u003eorigin/master, origin/HEAD) Replace time.time() with time.monotonic() in asyncua core modules\nb3dd3a17ffdd554807df230b6b34403b8c946c30 make pytest loop scope explicit\na5d72a2dc2a53e21d84c5f3b9091e27ae14e007e finally unfreeze pytest-asyncio\ncc874c30e2154e86a43523006ecb5839412cc157 Feat: Support import/export of struct and enum Field descriptions (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1851\"\u003e#1851\u003c/a\u003e)\n97095b909c141daf9b7d300114f7d5d924444b76 Support pre 1.04 struct length fields for B\u0026amp;R\n5b1091795dc7745efb94acd94381db17274779e8 fix  connecting to new prosys opcua server (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1827\"\u003e#1827\u003c/a\u003e)\n120d2e8c090fe0dbe34fb27a3e2f723dcb83ab8d Fix small bug if imported xml has also the stardard namespace included (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1832\"\u003e#1832\u003c/a\u003e)\nd52d319b7ccf8c52f0e0fce469d06b9a10db0a24 Enhancement: Chunked Build ETree Function (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1833\"\u003e#1833\u003c/a\u003e)\n6b6f4bb220b47b7d6d5612dc4d8daccf386373b0 Fix: Issues with missing namespace URIs when importing and exporting XMLs (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1830\"\u003e#1830\u003c/a\u003e)\nf12f3e19b3e7a3bc3db38add30176eef0cecd300 fix ClientNonce and/or peer_certificate may be None\ne3e02e3cfaca19647aec9348e9452594c6ebd657 Include support for x509 certificate chains in DER format (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003ev1.1.6\u003c/h2\u003e\n\u003cp\u003eupdate ua adresse space to 1.0.5\nParse ExtensionObjects with missing length (= -1)\nadd: Number in uatypes.py\nAllow setting password to None.\nFix usage of X509IdentityToken\u003c/p\u003e\n\u003cp\u003ebug fixes\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/FreeOpcUa/opcua-asyncio/commit/d8a5de3fe4050f82f39690bb43157a4b8e20c545\"\u003e\u003ccode\u003ed8a5de3\u003c/code\u003e\u003c/a\u003e new release v1.1.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/fe795e16ad86a4aea8ee09905ab080f9a0841748\"\u003e\u003ccode\u003efe795e1\u003c/code\u003e\u003c/a\u003e fix release script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/cacd6a0c355cd5d5e3af9e1d50c8829b69c2ed88\"\u003e\u003ccode\u003ecacd6a0\u003c/code\u003e\u003c/a\u003e Replace time.time() with time.monotonic() in asyncua core modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/b3dd3a17ffdd554807df230b6b34403b8c946c30\"\u003e\u003ccode\u003eb3dd3a1\u003c/code\u003e\u003c/a\u003e make pytest loop scope explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/a5d72a2dc2a53e21d84c5f3b9091e27ae14e007e\"\u003e\u003ccode\u003ea5d72a2\u003c/code\u003e\u003c/a\u003e finally unfreeze pytest-asyncio\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/cc874c30e2154e86a43523006ecb5839412cc157\"\u003e\u003ccode\u003ecc874c3\u003c/code\u003e\u003c/a\u003e Feat: Support import/export of struct and enum Field descriptions (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1851\"\u003e#1851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/97095b909c141daf9b7d300114f7d5d924444b76\"\u003e\u003ccode\u003e97095b9\u003c/code\u003e\u003c/a\u003e Support pre 1.04 struct length fields for B\u0026amp;R\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/5b1091795dc7745efb94acd94381db17274779e8\"\u003e\u003ccode\u003e5b10917\u003c/code\u003e\u003c/a\u003e fix  connecting to new prosys opcua server (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1827\"\u003e#1827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/120d2e8c090fe0dbe34fb27a3e2f723dcb83ab8d\"\u003e\u003ccode\u003e120d2e8\u003c/code\u003e\u003c/a\u003e Fix small bug if imported xml has also the stardard namespace included (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1832\"\u003e#1832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/d52d319b7ccf8c52f0e0fce469d06b9a10db0a24\"\u003e\u003ccode\u003ed52d319\u003c/code\u003e\u003c/a\u003e Enhancement: Chunked Build ETree Function (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1833\"\u003e#1833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/compare/v1.1.5...v1.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `atomicwrites` from 1.4.0 to 1.4.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/e05d8c985a10176ad43eefb9c4bfa6d7ab176719\"\u003e\u003ccode\u003ee05d8c9\u003c/code\u003e\u003c/a\u003e version 1.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/ea90c67ffe5f38cd39d89625022d417da1966522\"\u003e\u003ccode\u003eea90c67\u003c/code\u003e\u003c/a\u003e fix name typo (\u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/60\"\u003e#60\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/c35cd32eb364d5a4210e64bf38fd1a55f329f316\"\u003e\u003ccode\u003ec35cd32\u003c/code\u003e\u003c/a\u003e Add Power Support ppc64le (\u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/57\"\u003e#57\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/9f8db6527db8a7d20879756ff83d86009df8c9c5\"\u003e\u003ccode\u003e9f8db65\u003c/code\u003e\u003c/a\u003e wrap line\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/6699a1fc44bc5cea2ee258cf960a8bd6cc584e21\"\u003e\u003ccode\u003e6699a1f\u003c/code\u003e\u003c/a\u003e migrate to travis-ci.com\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/ec443a88e5e6cfbc9b667b1bcfd52e5a0a485f7e\"\u003e\u003ccode\u003eec443a8\u003c/code\u003e\u003c/a\u003e Add documentation for open_kwargs, fix \u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/56\"\u003e#56\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/de33f6fac140f32a6eff9eb002feaa6dc7182182\"\u003e\u003ccode\u003ede33f6f\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/d17830127887b97f404f1596ac76d46d730e31f5\"\u003e\u003ccode\u003ed178301\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/72b5dcc9c5225fc8b54559f0f9c02d3211dfd403\"\u003e\u003ccode\u003e72b5dcc\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/14e7f1f5407344f215f0b06b5cbe49fe65e90d1d\"\u003e\u003ccode\u003e14e7f1f\u003c/code\u003e\u003c/a\u003e Clean up some FAQ/Frequently asked question repetition in readme (\u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/53\"\u003e#53\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/untitaker/python-atomicwrites/compare/1.4.0...1.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `autobahn` from 24.4.2 to 25.12.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/crossbario/autobahn-python/releases\"\u003eautobahn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eDevelopment Build fork-68427734-oberstet_autobahn_python-strict_typing_test-202601141357\u003c/h1\u003e\n\u003cp\u003eDevelopment build from pull request\u003c/p\u003e\n\u003ch2\u003eBuild Information\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCommit\u003c/strong\u003e: 1c7d45cd\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBuild Date\u003c/strong\u003e: 2026-01-14 14:02:37 UTC\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRelease Type\u003c/strong\u003e: development\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eIncluded Platforms\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLinux\u003c/strong\u003e: x86_64, ARM64 (manylinux wheels + pure Python fallbacks)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emacOS\u003c/strong\u003e: Apple Silicon ARM64\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWindows\u003c/strong\u003e: x86_64\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython Versions\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCPython\u003c/strong\u003e: 3.11, 3.12, 3.13, 3.14\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePyPy\u003c/strong\u003e: 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cp\u003eDownload the appropriate wheel for your platform:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install \u0026lt;downloaded-wheel-file\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eArtifact Inventory\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTotal Wheels\u003c/strong\u003e: 16\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSource Distributions\u003c/strong\u003e: 3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eDevelopment Build fork-cee77a0c-bblommers_autobahn_python-chore_apply_ruff_up-202601092138\u003c/h1\u003e\n\u003cp\u003eDevelopment build from pull request\u003c/p\u003e\n\u003ch2\u003eBuild Information\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCommit\u003c/strong\u003e: b006e90e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBuild Date\u003c/strong\u003e: 2026-01-09 21:43:05 UTC\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRelease Type\u003c/strong\u003e: development\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eIncluded Platforms\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLinux\u003c/strong\u003e: x86_64, ARM64 (manylinux wheels + pure Python fallbacks)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emacOS\u003c/strong\u003e: Apple Silicon ARM64\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWindows\u003c/strong\u003e: x86_64\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/crossbario/autobahn-python/blob/master/docs/changelog.rst\"\u003eautobahn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBuild \u0026amp; CI/CD\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSynchronize CI/CD, FlatBuffers vendoring, and wamp-ai/wamp-cicd submodules between autobahn-python and zlmdb (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSwitch manylinux container from 2_34 to 2_28 for x86_64 ISA compatibility (fixes auditwheel flatc bundling)\u003c/li\u003e\n\u003cli\u003eIncrease ARM64 build timeout to 60 minutes for QEMU emulation\u003c/li\u003e\n\u003cli\u003eAdd .github/workflows/README.md documenting CI/CD architecture\u003c/li\u003e\n\u003cli\u003eConsolidate download-github-release and download-release-artifacts recipes\u003c/li\u003e\n\u003cli\u003eAdd checksum verification to artifact download workflow\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFlatBuffers\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify vendored FlatBuffers - use upstream as-is\u003c/li\u003e\n\u003cli\u003eTrack vendored FlatBuffers in git (like zlmdb approach)\u003c/li\u003e\n\u003cli\u003eAdd version() function to vendored FlatBuffers runtime\u003c/li\u003e\n\u003cli\u003eAdd check_zlmdb_flatbuffers_version_in_sync() for cross-project compatibility\u003c/li\u003e\n\u003cli\u003eGenerate .bfbs files for WAMP schemas during wheel build\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eOther\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRename install-flatc to install-flatc-system with prominent warning\u003c/li\u003e\n\u003cli\u003eRemove legacy readthedocs.yml to activate .readthedocs.yaml\u003c/li\u003e\n\u003cli\u003eRemove dev-latest optional dependency (PyPI rejects direct URLs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.12.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNew\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd vendored Flatbuffers (v25.9.23) (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1761\"\u003e#1761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WAMP serdes functional and benchmark testing; WAMP-Flatbuffers; WAMP Serializer Composition (transport/payload) (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1765\"\u003e#1765\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFix\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix 1757 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1758\"\u003e#1758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix 1767 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1769\"\u003e#1769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix 1771 complete (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1774\"\u003e#1774\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eOther\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRel v25.10.2 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1734\"\u003e#1734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRel v25.10.2 part2 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1741\"\u003e#1741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWAMP Flatbuffers serialization test coverage; WAMP message classes refactoring (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1773\"\u003e#1773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eModernization phase 1.1 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1785\"\u003e#1785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePhase 1.2: Build Tooling Modernization (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1788\"\u003e#1788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePhase 1.3: CI/CD Modernization (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1791\"\u003e#1791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRel25 12 1 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1794\"\u003e#1794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eModernization phase 1.4 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1797\"\u003e#1797\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/crossbario/autobahn-python/commit/5e4f7e086a074892231377f465099946e8f66ac4\"\u003e\u003ccode\u003e5e4f7e0\u003c/code\u003e\u003c/a\u003e docs: add changelog and release notes for v25.12.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/e97953b3cdc42b103075146dabe9eb9f30111c8b\"\u003e\u003ccode\u003ee97953b\u003c/code\u003e\u003c/a\u003e fix: add checksum verification and unify artifact download paths\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/05f1193cb2b2cdf71a92edfd2d12965083000a68\"\u003e\u003ccode\u003e05f1193\u003c/code\u003e\u003c/a\u003e fix: download-github-release now downloads all release artifacts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/467581c1ef461c97e3c24ece03d61119bbc0e126\"\u003e\u003ccode\u003e467581c\u003c/code\u003e\u003c/a\u003e Synchronize CI/CD, Flatbuffers vendoring and wamp-ai and wamp-cicd Submodules...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/60f226c5356feaab3545f7d015c0655924d9444c\"\u003e\u003ccode\u003e60f226c\u003c/code\u003e\u003c/a\u003e build: remove legacy readthedocs.yml to activate .readthedocs.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/0dac159de6194c94d4be19b1958bddf627aba856\"\u003e\u003ccode\u003e0dac159\u003c/code\u003e\u003c/a\u003e Add missing docs deps to dev, ignore CFFI build artifacts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/e2503361b7c6f7cfd9fd38b5e2093703f3035166\"\u003e\u003ccode\u003ee250336\u003c/code\u003e\u003c/a\u003e Simplify vendored flatbuffers - use upstream as-is\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/03e2e157268713e71e10f5322e521349bc485116\"\u003e\u003ccode\u003e03e2e15\u003c/code\u003e\u003c/a\u003e Track vendored flatbuffers in git (like zlmdb approach)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/41f7e3c6595b911c482f332f5ea40de7f9c0bc1c\"\u003e\u003ccode\u003e41f7e3c\u003c/code\u003e\u003c/a\u003e Move vendor-flatbuffers logic to external Python script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/8db464888d9c738fb51b78544706c130cc1c47a6\"\u003e\u003ccode\u003e8db4648\u003c/code\u003e\u003c/a\u003e bump package version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/crossbario/autobahn-python/compare/v24.4.2...v25.12.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `awkward` from 2.8.11 to 2.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scikit-hep/awkward-1.0/releases\"\u003eawkward's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.9.0\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: drop Python 3.9 by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3816\"\u003escikit-hep/awkward#3816\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug-fixes and performance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: pass the right input type to \u003ccode\u003eawkward_NumpyArray_subrange_equal*\u003c/code\u003e kernels by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3818\"\u003escikit-hep/awkward#3818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: define behavior class within the test function in \u003ccode\u003etest_1511_set_attribute.py\u003c/code\u003e to make it thread-local by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3826\"\u003escikit-hep/awkward#3826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: properly respect requested byteorder in \u003ccode\u003eak.from_buffers\u003c/code\u003e for ndarray buffers by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3820\"\u003escikit-hep/awkward#3820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use \u003ccode\u003eset_mask\u003c/code\u003e instead of \u003ccode\u003eset_base_mask\u003c/code\u003e in \u003ccode\u003eto_cudf\u003c/code\u003e by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3847\"\u003escikit-hep/awkward#3847\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: use \u0026quot;M8\u0026quot; dtype instead of \u0026quot;\u0026lt;M8\u0026quot; in tests by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3819\"\u003escikit-hep/awkward#3819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump actions/attest-build-provenance from 3.1.0 to 3.2.0 in the actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3828\"\u003escikit-hep/awkward#3828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: move array definitions inside test functions in \u003ccode\u003etest_1490_jax_reducers_combinations.py\u003c/code\u003e by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3829\"\u003escikit-hep/awkward#3829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: xfail \u003ccode\u003etests-cuda/test_3051_to_cuda.py\u003c/code\u003e only in the latest cudf by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3836\"\u003escikit-hep/awkward#3836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: do not skip \u003ccode\u003etest_recordarray_argmax_y_field\u003c/code\u003e and make the xfail reason consistent for \u003ccode\u003etest_listarray_sort\u003c/code\u003e in  \u003ccode\u003etests-cuda/test_3459_virtualarray_with_cuda.py\u003c/code\u003e by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3837\"\u003escikit-hep/awkward#3837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update pre-commit hooks 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/scikit-hep/awkward/pull/3834\"\u003escikit-hep/awkward#3834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: delete old \u003ccode\u003eVirtualArray\u003c/code\u003e class by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3848\"\u003escikit-hep/awkward#3848\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: drop support for PyPy by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3835\"\u003escikit-hep/awkward#3835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: drop 3.13t by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3843\"\u003escikit-hep/awkward#3843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: drop cp/pp build selectors by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3854\"\u003escikit-hep/awkward#3854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add automated contributions policy to CONTRIBUTING.md by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3831\"\u003escikit-hep/awkward#3831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: document named-axis support for axis in high-level operations by \u003ca href=\"https://github.com/X0708a\"\u003e\u003ccode\u003e@​X0708a\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3823\"\u003escikit-hep/awkward#3823\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: improve \u003ccode\u003eak.to_cudf\u003c/code\u003e errors and documentation by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3850\"\u003escikit-hep/awkward#3850\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/scikit-hep/awkward/compare/v2.8.12...v2.9.0\"\u003ehttps://github.com/scikit-hep/awkward/compare/v2.8.12...v2.9.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 2.8.12\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: improve merging of \u003ccode\u003eNumpyArray\u003c/code\u003es and simplification of \u003ccode\u003eUnionArray\u003c/code\u003es + fix \u003ccode\u003eak.almost_equal\u003c/code\u003e for \u003ccode\u003eUnionArray\u003c/code\u003es by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3773\"\u003escikit-hep/awkward#3773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add \u003ccode\u003eak.sort()\u003c/code\u003e for CUDA backend by \u003ca href=\"https://github.com/shwina\"\u003e\u003ccode\u003e@​shwina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3750\"\u003escikit-hep/awkward#3750\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Make \u003ccode\u003eak.combinations\u003c/code\u003e faster on GPU by using \u003ccode\u003ecp.searchsorted\u003c/code\u003e to compute output list indexes by \u003ca href=\"https://github.com/shwina\"\u003e\u003ccode\u003e@​shwina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3795\"\u003escikit-hep/awkward#3795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add argmax implementation using CCCL by \u003ca href=\"https://github.com/maxymnaumchyk\"\u003e\u003ccode\u003e@​maxymnaumchyk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3777\"\u003escikit-hep/awkward#3777\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: make \u003ccode\u003eak.combinations\u003c/code\u003e faster on GPU by using \u003ccode\u003ecp.searchsorted\u003c/code\u003e to compute output list indexes by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3798\"\u003escikit-hep/awkward#3798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add argmin implementation using CCCL by \u003ca href=\"https://github.com/maxymnaumchyk\"\u003e\u003ccode\u003e@​maxymnaumchyk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3811\"\u003escikit-hep/awkward#3811\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug-fixes and performance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: incorrect type passed down for the \u003ccode\u003emergeastable\u003c/code\u003e argument by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3779\"\u003escikit-hep/awkward#3779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: fix \u003ccode\u003eak.validity_error\u003c/code\u003e for typetracer-backed layouts with unknown length by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3784\"\u003escikit-hep/awkward#3784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: make \u003ccode\u003eak.enforce_type\u003c/code\u003e work with typetracers by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3764\"\u003escikit-hep/awkward#3764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003eArrayBuilder.show()\u003c/code\u003e formatter forwarding by \u003ca href=\"https://github.com/X0708a\"\u003e\u003ccode\u003e@​X0708a\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3796\"\u003escikit-hep/awkward#3796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: fix and test \u003ccode\u003eForm.length_zero/one_array()\u003c/code\u003e by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3810\"\u003escikit-hep/awkward#3810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: make named axis thread-safe and start testing using multiple threads in CI by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3805\"\u003escikit-hep/awkward#3805\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: use codecov token by \u003ca href=\"https://github.com/ariostas\"\u003e\u003ccode\u003e@​ariostas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3769\"\u003escikit-hep/awkward#3769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(ci): use macOS to test ML dependencies by \u003ca href=\"https://github.com/ariostas\"\u003e\u003ccode\u003e@​ariostas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3774\"\u003escikit-hep/awkward#3774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump the actions group across 1 directory with 5 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/scikit-hep/awkward/pull/3778\"\u003escikit-hep/awkward#3778\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: xfail failing cudf tests until fixed by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3781\"\u003escikit-hep/awkward#3781\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/scikit-hep/awkward/commit/e4be9febc76c610eea671ef3f0e3084cb206da49\"\u003e\u003ccode\u003ee4be9fe\u003c/code\u003e\u003c/a\u003e awkward 2.9.0 and awkward-cpp 52\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/254fcb3cacf113aa20f4c959e9aa6d0d3f5d8e56\"\u003e\u003ccode\u003e254fcb3\u003c/code\u003e\u003c/a\u003e ci: drop cp/pp build selectors (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3854\"\u003e#3854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/0b5ee6e87d2a6d475c58ee0b3ff2106b415311fd\"\u003e\u003ccode\u003e0b5ee6e\u003c/code\u003e\u003c/a\u003e awkward 2.8.13 and awkward-cpp 52\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/c8c9cff788a1874fb47c87f90e97e3742c09bd85\"\u003e\u003ccode\u003ec8c9cff\u003c/code\u003e\u003c/a\u003e refactor: improve \u003ccode\u003eak.to_cudf\u003c/code\u003e errors and documentation (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3850\"\u003e#3850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/303bcdd2077f5e778b688dcd324696c215c1dcd0\"\u003e\u003ccode\u003e303bcdd\u003c/code\u003e\u003c/a\u003e fix: use \u003ccode\u003eset_mask\u003c/code\u003e instead of \u003ccode\u003eset_base_mask\u003c/code\u003e in \u003ccode\u003eto_cudf\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/1e1ca0ceccc6a330e23f047d68ba8befa1c4c085\"\u003e\u003ccode\u003e1e1ca0c\u003c/code\u003e\u003c/a\u003e docs: document named-axis support for axis in high-level operations (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3823\"\u003e#3823\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/d2fac8d2645f26c625ddec204e377a30219c276c\"\u003e\u003ccode\u003ed2fac8d\u003c/code\u003e\u003c/a\u003e chore: delete old \u003ccode\u003eVirtualArray\u003c/code\u003e class (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3848\"\u003e#3848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/4da20e63e8ff613280b3c82c5712deaaf36d84fb\"\u003e\u003ccode\u003e4da20e6\u003c/code\u003e\u003c/a\u003e docs: add automated contributions policy to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3831\"\u003e#3831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/02d8408c4a36097064a3e66749dcc26a3cccb626\"\u003e\u003ccode\u003e02d8408\u003c/code\u003e\u003c/a\u003e ci: drop 3.13t (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3843\"\u003e#3843\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/675ff70fb896cb39a7ab59cddc4020c31d7628e3\"\u003e\u003ccode\u003e675ff70\u003c/code\u003e\u003c/a\u003e build: drop support for PyPy (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3835\"\u003e#3835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scikit-hep/awkward-1.0/compare/v2.8.11...v2.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `awkward-cpp` from 51 to 52\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/scikit-hep/awkward-1.0/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.11.12 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.11.12...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 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.1.7...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `comtypes` from 1.4.14 to 1.4.15\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/enthought/comtypes/releases\"\u003ecomtypes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eTYPE_E_ELEMENTNOTFOUND\u003c/code\u003e HRESULT constant value. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003eITypeInfo\u003c/code\u003e testing in \u003ccode\u003etest_typeinfo.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImprove type hints for for generated dispmethods and properties. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance tests for generated type hints. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove Internet Explorer dependency from \u003ccode\u003etest_QueryService.py\u003c/code\u003e and \u003ccode\u003etest_casesensitivity.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etest_ie.py\u003c/code\u003e to \u003ccode\u003etest_eventinterface.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSyntaxError\u003c/code\u003e in \u003ccode\u003eDispMethodAnnotator\u003c/code\u003e signature generation. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etest_msi.py\u003c/code\u003e to \u003ccode\u003etest_puredispatch.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etest_wmi.py\u003c/code\u003e to \u003ccode\u003etest_variant_outparam.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReplace the module-level skip with individual \u003ccode\u003e@skip\u003c/code\u003e decorators on the test methods in \u003ccode\u003etest_eventinterface.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd tests for \u003ccode\u003estdole.IPicture\u003c/code\u003e creation through \u003ccode\u003eIStream\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImprove enum testing in \u003ccode\u003etest_client.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRevive and enhance \u003ccode\u003etest_outparam\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003etest_stream\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003etest_storage\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003emalloc\u003c/code\u003e module. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance and refactor COM moniker tests. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRefine type hints and enhance tests for \u003ccode\u003eclient.GetClassObject\u003c/code\u003e, \u003ccode\u003eCoGetClassObject\u003c/code\u003e and \u003ccode\u003eIClassFactory\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eITypeInfo.AddressOfMember\u003c/code\u003e with tests and clarifications. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003eITypeComp.Bind\u003c/code\u003e tests and type hints. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIntroduce warnings for Python 3.15 enum compatibility. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/enthought/comtypes/blob/main/CHANGES.txt\"\u003ecomtypes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.4.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eTYPE_E_ELEMENTNOTFOUND\u003c/code\u003e HRESULT constant value. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003eITypeInfo\u003c/code\u003e testing in \u003ccode\u003etest_typeinfo.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImprove type hints for for generated dispmethods and properties. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance tests for generated type hints. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove Internet Explorer dependency from \u003ccode\u003etest_QueryService.py\u003c/code\u003e and \u003ccode\u003etest_casesensitivity.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etest_ie.py\u003c/code\u003e to \u003ccode\u003etest_eventinterface.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSyntaxError\u003c/code\u003e in \u003ccode\u003eDispMethodAnnotator\u003c/code\u003e signature generation. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etest_msi.py\u003c/code\u003e to \u003ccode\u003etest_puredispatch.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etest_wmi.py\u003c/code\u003e to \u003ccode\u003etest_variant_outparam.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReplace the module-level skip with individual \u003ccode\u003e@skip\u003c/code\u003e decorators on the test methods in \u003ccode\u003etest_eventinterface.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd tests for \u003ccode\u003estdole.IPicture\u003c/code\u003e creation through \u003ccode\u003eIStream\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImprove enum testing in \u003ccode\u003etest_client.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRevive and enhance \u003ccode\u003etest_outparam\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003etest_stream\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003etest_storage\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003emalloc\u003c/code\u003e module. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance and refactor COM moniker tests. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRefine type hints and enhance tests for \u003ccode\u003eclient.GetClassObject\u003c/code\u003e, \u003ccode\u003eCoGetClassObject\u003c/code\u003e and \u003ccode\u003eIClassFactory\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003eITypeInfo.AddressOfMember\u003c/code\u003e with tests and clarifications. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003eITypeComp.Bind\u003c/code\u003e tests and type hints. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIntroduce warnings for Python 3.15 enum compatibility. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\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/enthought/comtypes/commit/07ab1f45c1c7b474546a582ff81640886259c675\"\u003e\u003ccode\u003e07ab1f4\u003c/code\u003e\u003c/a\u003e Bump version and update change log for 1.4.15 (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/908\"\u003e#908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/7008819f79e6a2d3654b5d82e5f24bb88e886b8a\"\u003e\u003ccode\u003e7008819\u003c/code\u003e\u003c/a\u003e Introduce warnings for Python 3.15 enum compatibility and improve test stabil...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/1fc72e0f77918cdf3cfc6a2ebd7ebf9a685da079\"\u003e\u003ccode\u003e1fc72e0\u003c/code\u003e\u003c/a\u003e Enhance \u003ccode\u003eITypeComp.Bind\u003c/code\u003e tests and type hints. (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/906\"\u003e#906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/1aab6ae9b3d23a42d1e5d84c97ee45435c346e8b\"\u003e\u003ccode\u003e1aab6ae\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003eITypeInfo.AddressOfMember\u003c/code\u003e with tests and clarifications. (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/905\"\u003e#905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/921b6990aa14fda9476970bad03eb11fb0333d2d\"\u003e\u003ccode\u003e921b699\u003c/code\u003e\u003c/a\u003e Refine type hints and enhance dynamic dispatch tests for `client.GetClassObje...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/af2872f943eb1655ff8f1e0c78cb8b2947ec36c3\"\u003e\u003ccode\u003eaf2872f\u003c/code\u003e\u003c/a\u003e Improve type hints and tests for \u003ccode\u003eIClassFactory.CreateInstance\u003c/code\u003e and `CoGetCla...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/3ff96695881bf3257ddd8af00088cf0ee90cd5c4\"\u003e\u003ccode\u003e3ff9669\u003c/code\u003e\u003c/a\u003e Enhance and refactor COM moniker and binding context tests (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/902\"\u003e#902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/1f5c5d572560425b025d33e522344128a0ea27dd\"\u003e\u003ccode\u003e1f5c5d5\u003c/code\u003e\u003c/a\u003e Enhance memory management features and \u003ccode\u003eIStorage\u003c/code\u003e/\u003ccode\u003eIStream\u003c/code\u003e tests. (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/901\"\u003e#901\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/8c3bdecf1c5bf97e9502e9a2513a6e1a65136d27\"\u003e\u003ccode\u003e8c3bdec\u003c/code\u003e\u003c/a\u003e Introduce \u003ccode\u003emalloc\u003c/code\u003e module and enhance COM memory management tests. (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/899\"\u003e#899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/baef7730aa928caaa481b848e50a9f257b307e32\"\u003e\u003ccode\u003ebaef773\u003c/code\u003e\u003c/a\u003e Introduce \u003ccode\u003emalloc\u003c/code\u003e module (part 1) (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/900\"\u003e#900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/enthought/comtypes/compare/1.4.14...1.4.15\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `contourpy` from 1.3.2 to 1.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/contourpy/contourpy/releases\"\u003econtourpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.3.3\u003c/h2\u003e\n\u003cp\u003eContourPy 1.3.3 is a compatibility release adding support for CPython 3.14 and Windows on ARM.\u003c/p\u003e\n\u003cp\u003eThis release supports CPython 3.11 to 3.14, and PyPy 3.11.\u003c/p\u003e\n\u003cp\u003eCompatibility:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Windows on ARM (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/476\"\u003e#476\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/477\"\u003e#477\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/483\"\u003e#483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump minimum supported Python to 3.11 (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/478\"\u003e#478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/479\"\u003e#479\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/485\"\u003e#485\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/490\"\u003e#490\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCode improvements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate type annotations for \u003ccode\u003ebokeh\u003c/code\u003e 3.7.3 (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/475\"\u003e#475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport type annotation changes in \u003ccode\u003enumpy\u003c/code\u003e 2.3.0 (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/480\"\u003e#480\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBuild, testing and CI improvements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove Python 3.13.3 pin (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/487\"\u003e#487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI install \u003ccode\u003enumpy\u003c/code\u003e 2.3.2 wheels from PyPI for Python 3.14 and Windows ARM (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/contourpy/contourpy/blob/main/docs/changelog.rst\"\u003econtourpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.3 (2025-07-26)\u003c/h2\u003e\n\u003cp\u003eContourPy 1.3.3 is a compatibility release adding support for CPython 3.14 and Windows on ARM.\u003c/p\u003e\n\u003cp\u003eThis release supports CPython 3.11 to 3.14, and PyPy 3.11.\u003c/p\u003e\n\u003cp\u003eCompatibility:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Windows on ARM (:pr:\u003ccode\u003e476\u003c/code\u003e, :pr:\u003ccode\u003e477\u003c/code\u003e, :pr:\u003ccode\u003e483\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBump minimum supported Python to 3.11 (:pr:\u003ccode\u003e[#478](https://github.com/contourpy/contourpy/issues/478)\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 (:pr:\u003ccode\u003e479\u003c/code\u003e, :pr:\u003ccode\u003e485\u003c/code\u003e, :pr:\u003ccode\u003e490\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCode improvements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate type annotations for \u003ccode\u003ebokeh\u003c/code\u003e 3.7.3 (:pr:\u003ccode\u003e475\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport type annotation changes in \u003ccode\u003enumpy\u003c/code\u003e 2.3.0 (:pr:\u003ccode\u003e480\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBuild, testing and CI improvements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove Python 3.13.3 pin (:pr:\u003ccode\u003e487\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCI install \u003ccode\u003enumpy\u003c/code\u003e 2.3.2 wheels from PyPI for Python 3.14 and Windows ARM (:pr:\u003ccode\u003e488\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/contourpy/contourpy/commit/713550ab7ea74e6f4e813e6947b9b0c84d7ccb7b\"\u003e\u003ccode\u003e713550a\u003c/code\u003e\u003c/a\u003e Prepare for v1.3.3 release (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/491\"\u003e#491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contourpy/contourpy/commit/9fa322750757cf080e2fa54e7d6597c10dfe75c0\"\u003e\u003ccode\u003e9fa3227\u003c/code\u003e\u003c/a\u003e Reinstate image tests for python 3.14 (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/490\"\u003e#490\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contourpy/contourpy/commit/e818810855fead1080260c2e4c1cfa254e99a7df\"\u003e\u003ccode\u003ee818810\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel to 3.1.1 (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/489\"\u003e#489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contourpy/contourpy/commit/d8007917fe0461384559241bee7dd31a591a049b\"\u003e\u003ccode\u003ed800791\u003c/code\u003e\u003c/a\u003e CI install numpy 2.3.2 wheels from pypi for python 3.14 and windows arm (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contourpy/contourpy/commit/881ca7fde63afd4ed0178bb7f3eaed3e56680f0d\"\u003e\u003ccode\u003e881ca7f\u003c/code\u003e\u003c/a\u003e Remove 3.13.3 pin (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/487\"\u003e#487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contourpy/contourpy/commit/a58d9d0288935a627f6d695d6eed0dc26dd7ee12\"\u003e\u003ccode\u003ea58d9d0\u003c/code\u003e\u003c/a\u003e Update mypy to 1.17.0 (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contourpy/contourpy/commit/a32405f294eb5ee43ed9362d44a132c23e9d6457\"\u003e\u003ccode\u003ea32405f\u003c/code\u003e\u003c/a\u003e Use matplotlib images tests for python 3.14 (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/485\"\u003e#485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contourpy/contourpy/commit/33d9d9dba2111937c72fc53af247002871080c18\"\u003e\u003ccode\u003e33d9d9d\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.0.0 to 3.0.1 in the actions group (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/484\"\u003e#484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contourpy/contourpy/commit/154fbfd0df5fbd52d8bde3e65771d180687ecc70\"\u003e\u003ccode\u003e154fbfd\u003c/code\u003e\u003c/a\u003e Disable nightly wheels test on Windows on ARM (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/483\"\u003e#483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/contourpy/contourpy/commit/20936c532c2d8e36e2a8aa078d6e8d9b4787e38e\"\u003e\u003ccode\u003e20936c5\u003c/code\u003e\u003c/a\u003e Support python 3.14 (\u003ca href=\"https://redirect.github.com/contourpy/contourpy/issues/479\"\u003e#479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/contourpy/contourpy/compare/v1.3.2...v1.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 46.0.3 to 46.0.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.5 - 2026-02-10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* An attacker could create a malicious public key that reveals portions of your\n  private key when using certain uncommon elliptic curves (binary curves).\n  This version now includes additional security checks to prevent this attack.\n  This issue only affects binary elliptic curves, which are rarely used in\n  real-world applications. Credit to **XlabAI Team of Tencent Xuanwu Lab and\n  Atuin Automated Vulnerability Discovery Engine** for reporting the issue.\n  **CVE-2026-26007**\n* Support for ``SECT*`` binary elliptic curves is deprecated and will be\n  removed in the next release.\n\u003cp\u003e.. v46-0-4:\u003c/p\u003e\n\u003cp\u003e46.0.4 - 2026-01-27\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDropped support for win_arm64 wheels\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.5.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-3:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/06e120e682cb200e3f7050c02f0bcdac90c4c6ad\"\u003e\u003ccode\u003e06e120e\u003c/code\u003e\u003c/a\u003e bump version for 46.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14289\"\u003e#14289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/0eebb9dbb6343d9bc1d91e5a2482ed4e054a6d8c\"\u003e\u003ccode\u003e0eebb9d\u003c/code\u003e\u003c/a\u003e EC check key on cofactor \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14287\"\u003e#14287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/bedf6e186b814f69a3f54f51252c23a71d44ed2e\"\u003e\u003ccode\u003ebedf6e1\u003c/code\u003e\u003c/a\u003e fix openssl version on 46 branch (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14220\"\u003e#14220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e6f44fc8e6391f05d719fb9d369692325b87a471\"\u003e\u003ccode\u003ee6f44fc\u003c/code\u003e\u003c/a\u003e bump for 46.0.4 and drop win arm64 due to CI issues (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14217\"\u003e#14217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.3...46.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fsspec` from 2025.12.0 to 2026.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/e6668a146cd07b9f50530c49ea3916d8ab13e169\"\u003e\u003ccode\u003ee6668a1\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1989\"\u003e#1989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/b6bd0752c1f133fb5005b4b21c065bde76f2c52b\"\u003e\u003ccode\u003eb6bd075\u003c/code\u003e\u003c/a\u003e fix parquet tests (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1988\"\u003e#1988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/6f825f3ba989893a283cb1f84abcb87953b4ca96\"\u003e\u003ccode\u003e6f825f3\u003c/code\u003e\u003c/a\u003e feat(compression): recover the support of the zstandard (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1986\"\u003e#1986\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1987\"\u003e#1987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/1de5e1db3bf6ba984a1386008f3fff97a406ec90\"\u003e\u003ccode\u003e1de5e1d\u003c/code\u003e\u003c/a\u003e Remove prefetching loop (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/1984\"\u003e#1984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/9603a7c8329c7c24b476c77dcf924dda572113f0\"\u003e\u003ccode\u003e9603a7c\u003c/code\u003e\u003c/a\u003e fixes to parquet and known cache (\u003ca hre...\n\n_Description has been truncated_","html_url":"https://github.com/FreeCAD/Addons/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreeCAD%2FAddons/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"}},{"old_version":"\u003c3.7.0","new_version":"\u003c3.8.0","update_type":"minor","path":null,"pr_created_at":"2026-02-19T08:37:11.000Z","version_change":"\u003c3.7.0 → \u003c3.8.0","issue":{"uuid":"3961657464","node_id":"PR_kwDORTuhwc7Ez_no","number":9,"state":"open","title":"Update pyproj requirement from \u003c3.7.0 to \u003c3.8.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-19T08:37:11.000Z","updated_at":"2026-02-19T08:37:11.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"pyproj","old_version":"\u003c3.7.0","new_version":"\u003c3.8.0","repository_url":"https://github.com/pyproj4/pyproj"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [pyproj](https://github.com/pyproj4/pyproj) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.22 to 2.23 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/pyproj4/pyproj/pull/1479\"\u003epyproj4/pyproj#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Only import time.perf_counter by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1480\"\u003epyproj4/pyproj#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1481\"\u003epyproj4/pyproj#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Python 3.11+ by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1483\"\u003epyproj4/pyproj#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.1 to 0.6.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/pyproj4/pyproj/pull/1488\"\u003epyproj4/pyproj#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: update doc geometry_area_perimeter by \u003ca href=\"https://github.com/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Remove 'noqa: E501' from docstrings by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epyproj.crs: add imports to \u003cstrong\u003eall\u003c/strong\u003e by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1494\"\u003epyproj4/pyproj#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: replace black and isort with ruff format and lint by \u003ca href=\"https://github.com/mwtoews\"\u003e\u003ccode\u003e@​mwtoews\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1496\"\u003epyproj4/pyproj#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUILD/CI: Add win_arm64 wheel build by \u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.23 to 3.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/pyproj4/pyproj/pull/1502\"\u003epyproj4/pyproj#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 3.0.0 to 3.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/pyproj4/pyproj/pull/1505\"\u003epyproj4/pyproj#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBLD: Enable free-threading compatibility by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1512\"\u003epyproj4/pyproj#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add 3.13 free-threading wheels by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1514\"\u003epyproj4/pyproj#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-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/pyproj4/pyproj/pull/1520\"\u003epyproj4/pyproj#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1519\"\u003epyproj4/pyproj#1519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout 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/pyproj4/pyproj/pull/1521\"\u003epyproj4/pyproj#1521\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/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.11 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Add CRS imports to \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add win_arm64 wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.13 free-threading wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.14 and 3.14 free-threading wheels\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Add wheels for musllinux (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1477\"\u003e#1477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1446\"\u003e#1446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff \u0026amp; lint fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1455\"\u003e#1455\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1456\"\u003e#1456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.4.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1423\"\u003e#1423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.10 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1357\"\u003e#1357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.2 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add :meth:\u003ccode\u003eCRS.is_deprecated\u003c/code\u003e and :meth:\u003ccode\u003eCRS.get_non_deprecated\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1383\"\u003e#1383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePERF: thread local context (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add runtime \u0026amp; compiled PROJ versions (discussion \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1420\"\u003e#1420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Handle changes to HotineObliqueMercatorBConversion (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1429\"\u003e#1429\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.3.0 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Remove pkg_resources from setup.py (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Cython 3 compatibility fixes (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1321\"\u003e#1321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.9 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1111\"\u003e#1111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.2.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1291\"\u003e#1291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added allow_superseded kwargs to :class:\u003ccode\u003epyproj.transformer.TransformerGroup\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1269\"\u003e#1269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added :meth:\u003ccode\u003eCRS.to_2d\u003c/code\u003e to demote 3D CRS to 2D (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1266\"\u003e#1266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added parameter \u003ccode\u003eoutput_axis_rule\u003c/code\u003e to :meth:\u003ccode\u003eCRS.to_wkt\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1287\"\u003e#1287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: fix Geod.npts NaN handling (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1282\"\u003e#1282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.0 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1223\"\u003e#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: PROJ 9.2 in wheels (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1243\"\u003e#1243\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/pyproj4/pyproj/commit/f16037d2c45c3274ef28b828998267c3390393c8\"\u003e\u003ccode\u003ef16037d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/878615decadbde676f9acc82bce9763d62fbacbe\"\u003e\u003ccode\u003e878615d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4813b2db7c0fb92f598748bb1aca85288765a354\"\u003e\u003ccode\u003e4813b2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1521\"\u003e#1521\u003c/a\u003e from pyproj4/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/66b8e0b2fb2f93a83be484cd3ae741c140123930\"\u003e\u003ccode\u003e66b8e0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/ff97ab97b5bfd02a714bf84ebd847ec366da48f8\"\u003e\u003ccode\u003eff97ab9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1519\"\u003e#1519\u003c/a\u003e from djhoese/remove-old-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3692f8aa7fc9373927178fa1774ae69811387cfb\"\u003e\u003ccode\u003e3692f8a\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1520\"\u003e#1520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f3815db4169e399271d87ce9970175edb4b4170b\"\u003e\u003ccode\u003ef3815db\u003c/code\u003e\u003c/a\u003e MNT: Update history with test removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e5ee13f82067e9c577a1bb5e2484ed91c5f96c22\"\u003e\u003ccode\u003ee5ee13f\u003c/code\u003e\u003c/a\u003e TST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26b3cdb7d68e677ebfec62549288eea02bc38ed9\"\u003e\u003ccode\u003e26b3cdb\u003c/code\u003e\u003c/a\u003e MNT: 3.7.2rc0 and update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0cd586a0fb7094b4f8fb43fe34dd2e249aec0da0\"\u003e\u003ccode\u003e0cd586a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1514\"\u003e#1514\u003c/a\u003e from djhoese/ci-313-ft\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/v2.0.2...3.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/bhavikpatel/geonode_nepal_ithari/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bhavikpatel%2Fgeonode_nepal_ithari/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"}},{"old_version":"3.7.0","new_version":"3.7.1","update_type":"patch","path":null,"pr_created_at":"2026-02-12T10:54:33.000Z","version_change":"3.7.0 → 3.7.1","issue":{"uuid":"3931157723","node_id":"PR_kwDOKK73g87DPh1B","number":163,"state":"open","title":"Bump the non-major group with 3 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-12T10:54:33.000Z","updated_at":"2026-02-12T11:40:23.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"non-major","update_count":3,"packages":[{"name":"pyproj","old_version":"3.7.0","new_version":"3.7.1","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"rich-argparse","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/hamdanal/rich-argparse"},{"name":"shapely","old_version":"2.0.6","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"}],"path":null,"ecosystem":"pip"},"body":"Bumps the non-major group with 3 updates: [pyproj](https://github.com/pyproj4/pyproj), [rich-argparse](https://github.com/hamdanal/rich-argparse) and [shapely](https://github.com/shapely/shapely).\n\nUpdates `pyproj` from 3.7.0 to 3.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.1 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1477\"\u003epyproj4/pyproj#1477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in  \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1475\"\u003epyproj4/pyproj#1475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: Add wheels for musllinux by \u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead. by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1450\"\u003epyproj4/pyproj#1450\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1452\"\u003epyproj4/pyproj#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 by \u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1455\"\u003epyproj4/pyproj#1455\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Disallow type error without code by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1456\"\u003epyproj4/pyproj#1456\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/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther contributions:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sebastic\"\u003e\u003ccode\u003e@​sebastic\u003c/code\u003e\u003c/a\u003e - testing Debian builds\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.0...3.7.1\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.0...3.7.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.1rc0\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\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/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Add wheels for musllinux (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1477\"\u003e#1477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1446\"\u003e#1446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff \u0026amp; lint fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1455\"\u003e#1455\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1456\"\u003e#1456\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/pyproj4/pyproj/commit/0aa1b386790d9a0b6289a098bc6acd0d1f222984\"\u003e\u003ccode\u003e0aa1b38\u003c/code\u003e\u003c/a\u003e DOC: Update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26cd06365dcc606ab6ee1e8e8a27a77fa85d96b1\"\u003e\u003ccode\u003e26cd063\u003c/code\u003e\u003c/a\u003e MNT: version 3.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e91f72fdea6cc788c8d4687abcb316a56cd83a7a\"\u003e\u003ccode\u003ee91f72f\u003c/code\u003e\u003c/a\u003e DOC: Remove gitter references for questions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/5a6f6888edbbd51f2beafb01d7775de79f5b1168\"\u003e\u003ccode\u003e5a6f688\u003c/code\u003e\u003c/a\u003e CI: remove appveyor.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/438c17ff9dd1159dd28ced4ccbbc9c8c926ccc85\"\u003e\u003ccode\u003e438c17f\u003c/code\u003e\u003c/a\u003e DOC: Remove gitter badge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f5176df619f48625ff29725ca52f61db01bef174\"\u003e\u003ccode\u003ef5176df\u003c/code\u003e\u003c/a\u003e DOC: update contributors \u0026amp; remove appveyor badge\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/8cd6ea69f08960ce405bd629e16f51d521e2a6be\"\u003e\u003ccode\u003e8cd6ea6\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e as a contributor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/fdd84f642561370d1b45c098965ac393c2a80c82\"\u003e\u003ccode\u003efdd84f6\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e as a contributor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0a18d5570e22b03eb751a63e52d7ccfb2e3c80d0\"\u003e\u003ccode\u003e0a18d55\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e as a contributor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/a742bb9b29b9e4389046c88fa17155d2b26808ce\"\u003e\u003ccode\u003ea742bb9\u003c/code\u003e\u003c/a\u003e MNT: 3.7.1rc0 \u0026amp; update history\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.0...3.7.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rich-argparse` from 1.5.2 to 1.7.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hamdanal/rich-argparse/releases\"\u003erich-argparse's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.7.2\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/171\"\u003e#171\u003c/a\u003e Fix colors overlap on Py 3.14\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hamdanal/rich-argparse/compare/v1.7.1...v1.7.2\"\u003ehttps://github.com/hamdanal/rich-argparse/compare/v1.7.1...v1.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.7.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/162\"\u003e#162\u003c/a\u003e Fix TypeError on nightly builds (Python 3.14.0a7+) due to new \u003ccode\u003eHelpFormatter\u003c/code\u003e arguments. The \u003ccode\u003econsole\u003c/code\u003e parameter is now keyword-only.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hamdanal/rich-argparse/compare/v1.7.0...v1.7.1\"\u003ehttps://github.com/hamdanal/rich-argparse/compare/v1.7.0...v1.7.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 1.7.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThis is the last release to support Python 3.8\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eIntroducing \u003ccode\u003eauto-rich-argparse\u003c/code\u003e 🚀\u003c/h2\u003e\n\u003cp\u003eImprove the help output of your favorite  argparse command line tool by simply installing \u003ccode\u003eauto-rich-argparse\u003c/code\u003e in its environment. Try it out with your favorite tool using:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003euvx --with auto-rich-argparse \u0026lt;YOUR_FAVORITE_TOOL\u0026gt; --help\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eRead more at \u003ca href=\"https://github.com/hamdanal/auto-rich-argparse\"\u003ehttps://github.com/hamdanal/auto-rich-argparse\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eIncoming Change in Version 2.0\u003c/h2\u003e\n\u003cp\u003eIn rich-argparse 2.0, rich markup will become opt in instead of opt out. This means usages like this:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eparser.add_argument(\u0026quot;--foo\u0026quot;, help=\u0026quot;[red]This text is in red[/]\u0026quot;)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eWill need to set the option \u003ccode\u003eRichHelpFormatter.help_markup = True\u003c/code\u003e to work as expected. Please see \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/151\"\u003e#151\u003c/a\u003e for context and to give feedback.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis release adds new features and fixes a few bugs.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for django commands in the new \u003ccode\u003erich_argparse.django\u003c/code\u003e module. Read more at \u003ca href=\"https://github.com/hamdanal/rich-argparse#django-support\"\u003ehttps://github.com/hamdanal/rich-argparse#django-support\u003c/a\u003e. Contributed in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/149\"\u003ehamdanal/rich-argparse#149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eParagraphRichHelpFormatter\u003c/code\u003e, a formatter that preserves paragraph breaks, in the new \u003ccode\u003erich_argparse.contrib\u003c/code\u003e module. Read more at \u003ca href=\"https://github.com/hamdanal/rich-argparse#additional-formatters\"\u003ehttps://github.com/hamdanal/rich-argparse#additional-formatters\u003c/a\u003e. Contributed in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/147\"\u003ehamdanal/rich-argparse#147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValueError\u003c/code\u003e when using \u003ccode\u003e%(default)s\u003c/code\u003e inside square brackets and \u003ccode\u003ehelp_markup\u003c/code\u003e is enabled. Contributed in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/153\"\u003ehamdanal/rich-argparse#153\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/154\"\u003ehamdanal/rich-argparse#154\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not highlight --options inside backticks. Contributed in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/142\"\u003ehamdanal/rich-argparse#142\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStart testing on Python 3.14 by \u003ca href=\"https://github.com/hamdanal\"\u003e\u003ccode\u003e@​hamdanal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/137\"\u003ehamdanal/rich-argparse#137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse native toml for tox configuration by \u003ca href=\"https://github.com/hamdanal\"\u003e\u003ccode\u003e@​hamdanal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/138\"\u003ehamdanal/rich-argparse#138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esdist: include the tests by \u003ca href=\"https://github.com/mr-c\"\u003e\u003ccode\u003e@​mr-c\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/139\"\u003ehamdanal/rich-argparse#139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReorganize the project modules by \u003ca href=\"https://github.com/hamdanal\"\u003e\u003ccode\u003e@​hamdanal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/144\"\u003ehamdanal/rich-argparse#144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun skipped test on Python 3.13 by \u003ca href=\"https://github.com/hamdanal\"\u003e\u003ccode\u003e@​hamdanal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/145\"\u003ehamdanal/rich-argparse#145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace tox by uv by \u003ca href=\"https://github.com/hamdanal\"\u003e\u003ccode\u003e@​hamdanal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/146\"\u003ehamdanal/rich-argparse#146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/148\"\u003ehamdanal/rich-argparse#148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd python nightly workflow by \u003ca href=\"https://github.com/hamdanal\"\u003e\u003ccode\u003e@​hamdanal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/150\"\u003ehamdanal/rich-argparse#150\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/hamdanal/rich-argparse/blob/main/CHANGELOG.md\"\u003erich-argparse's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.7.2 - 2025-11-01\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/171\"\u003ePR-171\u003c/a\u003e\nFix colors overlapping with Python 3.14.0+ which enabled colors by default in the help formatter.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.7.1 - 2025-05-25\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/162\"\u003ePR-162\u003c/a\u003e\nFix TypeError on nightly builds (Python 3.14.0a7+) due to new \u003ccode\u003eHelpFormatter\u003c/code\u003e arguments.\nThe \u003ccode\u003econsole\u003c/code\u003e parameter is now keyword-only.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.7.0 - 2025-02-08\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/149\"\u003ePR-149\u003c/a\u003e\nAdd support for django commands in the new \u003ccode\u003erich_argparse.django\u003c/code\u003e module. Read more at\n\u003ca href=\"https://github.com/hamdanal/rich-argparse#django-support\"\u003ehttps://github.com/hamdanal/rich-argparse#django-support\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/140\"\u003eGH-140\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/147\"\u003ePR-147\u003c/a\u003e\nAdd \u003ccode\u003eParagraphRichHelpFormatter\u003c/code\u003e, a formatter that preserves paragraph breaks, in the new\n\u003ccode\u003erich_argparse.contrib\u003c/code\u003e module. Read more at\n\u003ca href=\"https://github.com/hamdanal/rich-argparse#additional-formatters\"\u003ehttps://github.com/hamdanal/rich-argparse#additional-formatters\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/152\"\u003eGH-152\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/153\"\u003ePR-153\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/154\"\u003ePR-154\u003c/a\u003e\nFix \u003ccode\u003eValueError\u003c/code\u003e when using \u003ccode\u003e%(default)s\u003c/code\u003e inside square brackets and \u003ccode\u003ehelp_markup\u003c/code\u003e is enabled.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/141\"\u003eGH-141\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/142\"\u003ePR-142\u003c/a\u003e\nDo not highlight --options inside backticks.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.6.0 - 2024-11-02\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/133\"\u003eGH-133\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/135\"\u003ePR-135\u003c/a\u003e\nFix help preview generation with newer releases of rich.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/130\"\u003eGH-130\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/131\"\u003ePR-131\u003c/a\u003e\nFix a bug that caused long group titles to wrap.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/125\"\u003eGH-125\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/127\"\u003eGH-127\u003c/a\u003e,\n\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/pull/128\"\u003ePR-128\u003c/a\u003e\nRedesign metavar styling to fix broken colors of usage when some metavars are wrapped to multiple\nlines. The brackets and spaces of metavars are no longer colored.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/0ce89398edb647ff2a08333671ea35bbd51db7c2\"\u003e\u003ccode\u003e0ce8939\u003c/code\u003e\u003c/a\u003e Version 1.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/d582eddefe2033bdd8d5a5826a992063f57fc884\"\u003e\u003ccode\u003ed582edd\u003c/code\u003e\u003c/a\u003e Fix colors overlap on Py 3.14 (\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/171\"\u003e#171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/c16116dd828e6fd0fb42c666494668985960f015\"\u003e\u003ccode\u003ec16116d\u003c/code\u003e\u003c/a\u003e Version 1.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/b73cfea6de5f96c7fa5188b9f7d9c373e401f38e\"\u003e\u003ccode\u003eb73cfea\u003c/code\u003e\u003c/a\u003e Fix TypeError on nightly builds (\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/162\"\u003e#162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/91a48c5620e2109cda728dbcd63215684efb09c4\"\u003e\u003ccode\u003e91a48c5\u003c/code\u003e\u003c/a\u003e Version 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/daa91aa2df0e95709de934f04398c8b388e4ea28\"\u003e\u003ccode\u003edaa91aa\u003c/code\u003e\u003c/a\u003e Update pre-commit hooks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/ef87d9daa3f7acbf37e9a58bf4e15cf3b39300fa\"\u003e\u003ccode\u003eef87d9d\u003c/code\u003e\u003c/a\u003e Tweak warning message for an edge case of default in markup (\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/0afba0a2a826f1f01d838fb048aab067089ad7f1\"\u003e\u003ccode\u003e0afba0a\u003c/code\u003e\u003c/a\u003e Minor updates to the project files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/672f21e18324072fbadba2953ade1d0c7d01b1cb\"\u003e\u003ccode\u003e672f21e\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValueError\u003c/code\u003e when using \u003ccode\u003e%(default)s\u003c/code\u003e inside square brackets and `help_ma...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hamdanal/rich-argparse/commit/f946bb34c51956e380be52edc6f8abda6c21a1b7\"\u003e\u003ccode\u003ef946bb3\u003c/code\u003e\u003c/a\u003e Add python nightly workflow (\u003ca href=\"https://redirect.github.com/hamdanal/rich-argparse/issues/150\"\u003e#150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hamdanal/rich-argparse/compare/v1.5.2...v1.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `shapely` from 2.0.6 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.0.7\u003c/h2\u003e\n\u003cp\u003eShapely 2.0.7 fixes 3 bugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix compilation error on certain Linux platforms, such as Alpine (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/1945\"\u003e#1945\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixes crash when reading nonlinear geometry types (\u003ccode\u003eCircularString\u003c/code\u003e, \u003ccode\u003eCompoundCurve\u003c/code\u003e, \u003ccode\u003eMultiCurve\u003c/code\u003e, \u003ccode\u003eCurvePolygon\u003c/code\u003e, \u003ccode\u003eMultiSurface\u003c/code\u003e) from WKB/WKT with GEOS \u0026gt;= 3.13; these types are not yet supported in Shapely and now raise a \u003ccode\u003eNotImplementedError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2160\"\u003e#2160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix the \u003ccode\u003eproject()\u003c/code\u003e method to return a Python float (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2093\"\u003e#2093\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWheels include GEOS 3.11.4.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-0-7\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-0-7\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/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.0.7 (2025-01-30)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix compilation error on certain Linux platforms, such as Alpine (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/1945\"\u003e#1945\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixes crash when reading nonlinear geometry types (CircularString,\nCompoundCurve, MultiCurve, CurvePolygon, MultiSurface) from WKB/WKT with\nGEOS \u0026gt;= 3.13; these types are not yet supported in Shapely and now raise a\n\u003ccode\u003eNotImplementedError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2160\"\u003e#2160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix the \u003ccode\u003eproject\u003c/code\u003e method to return a Python float (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2093\"\u003e#2093\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/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densify test for latest GEOS main (densify\u0026gt;0.001...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shapely/shapely/compare/2.0.6...2.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/GeodetischeInfrastructuur/geodense/pull/163","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeodetischeInfrastructuur%2Fgeodense/issues/163","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/163/packages"}},{"old_version":"3.6.1","new_version":"3.7.2","update_type":"minor","path":null,"pr_created_at":"2026-02-11T18:31:42.000Z","version_change":"3.6.1 → 3.7.2","issue":{"uuid":"3928033811","node_id":"PR_kwDOIoSAbM7DFUmj","number":332,"state":"closed","title":"Bump the pip-updates group across 1 directory with 24 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-17T10:07:33.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-11T18:31:42.000Z","updated_at":"2026-02-17T10:07:34.000Z","time_to_close":488151,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-updates","update_count":24,"packages":[{"name":"beautifulsoup4","old_version":"4.11.1","new_version":"4.14.3"},{"name":"black","old_version":"25.1.0","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"blinker","old_version":"1.7.0","new_version":"1.9.0","repository_url":"https://github.com/pallets-eco/blinker"},{"name":"fido2","old_version":"1.2.0","new_version":"2.1.1","repository_url":"https://github.com/Yubico/python-fido2"},{"name":"flake8","old_version":"7.0.0","new_version":"7.3.0","repository_url":"https://github.com/pycqa/flake8"},{"name":"flake8-bugbear","old_version":"22.10.27","new_version":"25.11.29","repository_url":"https://github.com/PyCQA/flake8-bugbear"},{"name":"flask","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/flask"},{"name":"flask-wtf","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/pallets-eco/flask-wtf"},{"name":"freezegun","old_version":"1.2.2","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"govuk-bank-holidays","old_version":"0.15","new_version":"0.18","repository_url":"https://github.com/ministryofjustice/govuk-bank-holidays"},{"name":"govuk-frontend-jinja","old_version":"3.3.0","new_version":"3.10.0","repository_url":"https://github.com/LandRegistry/govuk-frontend-jinja"},{"name":"humanize","old_version":"4.4.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"isort","old_version":"5.12.0","new_version":"7.0.0","repository_url":"https://github.com/PyCQA/isort"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"2.1.5","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"moto","old_version":"5.1.3","new_version":"5.1.21","repository_url":"https://github.com/getmoto/moto"},{"name":"notifications-python-client","old_version":"8.0.0","new_version":"10.0.1","repository_url":"https://github.com/alphagov/notifications-python-client"},{"name":"pyproj","old_version":"3.6.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-env","old_version":"1.2.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-env"},{"name":"pytz","old_version":"2022.6","new_version":"2025.2","repository_url":"https://github.com/stub42/pytz"},{"name":"requests-mock","old_version":"1.10.0","new_version":"1.12.1","repository_url":"https://github.com/jamielennox/requests-mock"},{"name":"shapely","old_version":"2.1.1","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"wtforms","old_version":"3.1.2","new_version":"3.2.1","repository_url":"https://github.com/pallets-eco/wtforms"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-updates group with 24 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.11.1` | `4.14.3` |\n| [black](https://github.com/psf/black) | `25.1.0` | `26.1.0` |\n| [blinker](https://github.com/pallets-eco/blinker) | `1.7.0` | `1.9.0` |\n| [fido2](https://github.com/Yubico/python-fido2) | `1.2.0` | `2.1.1` |\n| [flake8](https://github.com/pycqa/flake8) | `7.0.0` | `7.3.0` |\n| [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear) | `22.10.27` | `25.11.29` |\n| [flask](https://github.com/pallets/flask) | `3.0.2` | `3.0.3` |\n| [flask-wtf](https://github.com/pallets-eco/flask-wtf) | `1.2.1` | `1.2.2` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.2.2` | `1.5.5` |\n| [govuk-bank-holidays](https://github.com/ministryofjustice/govuk-bank-holidays) | `0.15` | `0.18` |\n| [govuk-frontend-jinja](https://github.com/LandRegistry/govuk-frontend-jinja) | `3.3.0` | `3.10.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.4.0` | `4.15.0` |\n| [isort](https://github.com/PyCQA/isort) | `5.12.0` | `7.0.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `2.1.5` | `3.0.3` |\n| [moto](https://github.com/getmoto/moto) | `5.1.3` | `5.1.21` |\n| [notifications-python-client](https://github.com/alphagov/notifications-python-client) | `8.0.0` | `10.0.1` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.6.1` | `3.7.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [pytest-env](https://github.com/pytest-dev/pytest-env) | `1.2.0` | `1.3.0` |\n| [pytz](https://github.com/stub42/pytz) | `2022.6` | `2025.2` |\n| [requests-mock](https://github.com/jamielennox/requests-mock) | `1.10.0` | `1.12.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.1.1` | `2.1.2` |\n| [wtforms](https://github.com/pallets-eco/wtforms) | `3.1.2` | `3.2.1` |\n\n\nUpdates `beautifulsoup4` from 4.11.1 to 4.14.3\n\nUpdates `black` from 25.1.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.1.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 `blinker` from 1.7.0 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/blinker/releases\"\u003eblinker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.9.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.9.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.9.0/\"\u003ehttps://pypi.org/project/blinker/1.9.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/stable/#version-1-9-0\"\u003ehttps://blinker.readthedocs.io/en/stable/#version-1-9-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/blinker/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/blinker/milestone/1?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e, \u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/173\"\u003e#173\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.2\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.2/\"\u003ehttps://pypi.org/project/blinker/1.8.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-2\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-2\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify type for \u003ccode\u003e_async_wrapper\u003c/code\u003e and \u003ccode\u003e_sync_wrapper\u003c/code\u003e arguments. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/156\"\u003e#156\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.1\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.1/\"\u003ehttps://pypi.org/project/blinker/1.8.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-1\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore identity handling for \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eint\u003c/code\u003e senders. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/148\"\u003e#148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.WeakNamespace\u003c/code\u003e import. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/149\"\u003e#149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.receiver_connected import\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/153\"\u003e#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse types from \u003ccode\u003ecollections.abc\u003c/code\u003e instead of \u003ccode\u003etyping\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/150\"\u003e#150\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully specify exported types as reported by pyright. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/152\"\u003e#152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.0 feature release, which may include new features, remove previously deprecated code, or add new deprecations. The 1.8.x line is now the supported fix branch, support has ended for the 1.7.x line. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.0/\"\u003ehttps://pypi.org/project/blinker/1.8.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-0\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-0\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;blinker\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/128\"\u003e#128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify that the deprecated \u003ccode\u003etemporarily_connected_to\u003c/code\u003e will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated global \u003ccode\u003ereceiver_connected\u003c/code\u003e signal and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated \u003ccode\u003eWeakNamespace\u003c/code\u003e and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eGreatly simplify how the library uses weakrefs. This is a significant change internally but should not affect any public API. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/144\"\u003e#144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose the namespace used by \u003ccode\u003esignal()\u003c/code\u003e as \u003ccode\u003edefault_namespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/145\"\u003e#145\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-eco/blinker/blob/main/CHANGES.rst\"\u003eblinker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e175\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e,\n\u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. :pr:\u003ccode\u003e172\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down.\n:issue:\u003ccode\u003e173\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.2\u003c/h2\u003e\n\u003cp\u003eReleased 2024-05-06\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify type for \u003ccode\u003e_async_wrapper\u003c/code\u003e and \u003ccode\u003e_sync_wrapper\u003c/code\u003e arguments.\n:pr:\u003ccode\u003e156\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.1\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-28\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore identity handling for \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eint\u003c/code\u003e senders. :pr:\u003ccode\u003e148\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.WeakNamespace\u003c/code\u003e import. :pr:\u003ccode\u003e149\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.receiver_connected import\u003c/code\u003e. :pr:\u003ccode\u003e153\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse types from \u003ccode\u003ecollections.abc\u003c/code\u003e instead of \u003ccode\u003etyping\u003c/code\u003e. :pr:\u003ccode\u003e150\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFully specify exported types as reported by pyright. :pr:\u003ccode\u003e152\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;blinker\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e128\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSpecify that the deprecated \u003ccode\u003etemporarily_connected_to\u003c/code\u003e will be removed in\nthe next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated global \u003ccode\u003ereceiver_connected\u003c/code\u003e\nsignal and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated \u003ccode\u003eWeakNamespace\u003c/code\u003e and specify\nthat it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eGreatly simplify how the library uses weakrefs. This is a significant change\ninternally but should not affect any public API. :pr:\u003ccode\u003e144\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eExpose the namespace used by \u003ccode\u003esignal()\u003c/code\u003e as \u003ccode\u003edefault_namespace\u003c/code\u003e.\n:pr:\u003ccode\u003e145\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-eco/blinker/commit/669f3a027828d19786e708b511277fabcd6b9532\"\u003e\u003ccode\u003e669f3a0\u003c/code\u003e\u003c/a\u003e release version 1.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/cfe116fa7912d8dcb0deee4907aa63d1efaadf5b\"\u003e\u003ccode\u003ecfe116f\u003c/code\u003e\u003c/a\u003e try disabling attestions on test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/16e4bd70a19353d9d7cf47e4df7de54936296377\"\u003e\u003ccode\u003e16e4bd7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/174\"\u003e#174\u003c/a\u003e from projectgus/bugfix/weakref_disconnect_shutdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/42561fdf065032f5c39aea04d8c3fb4db93f73f3\"\u003e\u003ccode\u003e42561fd\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;Exception ignored\u0026quot; in weakref callback during interpreter shutdown.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/dcce3e97743494433025e0b68f742f3582b6ba6a\"\u003e\u003ccode\u003edcce3e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e from pallets-eco/drop-python3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/efa95eaa080b0d4a8dcfc46ad1f387ea1ddebd97\"\u003e\u003ccode\u003eefa95ea\u003c/code\u003e\u003c/a\u003e drop support for python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/82305185358d8ce21619ec0f324688a14a89c23b\"\u003e\u003ccode\u003e8230518\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/94f1202f08c6d00a9fe1ecf5c8cba9da84e4b22f\"\u003e\u003ccode\u003e94f1202\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/8c983ecd764e1d113d24522838c2a7312460b7eb\"\u003e\u003ccode\u003e8c983ec\u003c/code\u003e\u003c/a\u003e remove previously deprecated code (\u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/f5915f3bfcd9f9da0caf6cd4858bf68068c52963\"\u003e\u003ccode\u003ef5915f3\u003c/code\u003e\u003c/a\u003e set up pre-commit lite workflow\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/blinker/compare/1.7.0...1.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fido2` from 1.2.0 to 2.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Yubico/python-fido2/releases\"\u003efido2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epython-fido2 2.1.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.1.1 (released 2026-01-19)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Platform detection in fido2.hid module for BSD's.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epython-fido2 2.1.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.1.0 (released 2026-01-14)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCTAP 2.3 support:\n\u003cul\u003e\n\u003cli\u003eAdd new GetInfo fields: enc_cred_store_state.\u003c/li\u003e\n\u003cli\u003eAdd support for pinComplexityPolicy extension.\u003c/li\u003e\n\u003cli\u003eAdd thirdPartyPayment bit to credman.\u003c/li\u003e\n\u003cli\u003eCheck support for config subcommands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eWebAuthn:\n\u003cul\u003e\n\u003cli\u003eAllow UserEntity without 'name' field for improved spec compliance.\u003c/li\u003e\n\u003cli\u003eUpdate MDS3 dataclasses with new fields.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFido2Client:\n\u003cul\u003e\n\u003cli\u003eFallback to PIN after UV_BLOCKED error.\u003c/li\u003e\n\u003cli\u003eImprove preflight handling when message exceeds maximum size.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eWindowsClient:\n\u003cul\u003e\n\u003cli\u003eFix: Parse 'credentialProtectionPolicy' properly.\u003c/li\u003e\n\u003cli\u003eUpdate win_api.py from latest webauthn.h.\u003c/li\u003e\n\u003cli\u003eAdd support for hmac-secret-mc extension.\u003c/li\u003e\n\u003cli\u003eAdd support for hints.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDevelopment:\n\u003cul\u003e\n\u003cli\u003eSwitch from Poetry to uv for project management.\u003c/li\u003e\n\u003cli\u003eAdd pyright and ty for improved type checking.\u003c/li\u003e\n\u003cli\u003eReplace bandit and flake8 with ruff for linting.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epython-fido2 2.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.0.0 (released 2025-05-20)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSee also the migration guide: doc/Migration_1-2.adoc.\u003c/li\u003e\n\u003cli\u003ePython 3.10 or later is now required.\u003c/li\u003e\n\u003cli\u003eWebAuthn dataclasses have been updated to align with the WebAuthn Level 3\nWorking Draft. Constructors now require keyword arguments (\u003ccode\u003ekwargs_only=True\u003c/code\u003e),\nand serialization to/from dictionaries is compatible with standardized JSON\nformats.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003efeatures.webauthn_json_mapping\u003c/code\u003e flag has been removed, as its\nbehavior (standardized JSON mapping) is now default.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFido2Client\u003c/code\u003e and \u003ccode\u003eWindowsClient\u003c/code\u003e constructors now accept a\n\u003ccode\u003eClientDataCollector\u003c/code\u003e instance instead of \u003ccode\u003eorigin\u003c/code\u003e and \u003ccode\u003everify\u003c/code\u003e parameters.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWindowsClient\u003c/code\u003e has been relocated to \u003ccode\u003efido2.client.windows\u003c/code\u003e. Importing this\nclass on non-Windows platforms will now raise an \u003ccode\u003eImportError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFido2Client\u003c/code\u003e methods now return \u003ccode\u003eRegistrationResponse\u003c/code\u003e and\n\u003ccode\u003eAuthenticationResponse\u003c/code\u003e objects, instead of raw attestation/assertion data.\u003c/li\u003e\n\u003cli\u003eCTAP2/WebAuthn extension handling has been redesigned. \u003ccode\u003eFido2Client\u003c/code\u003e now\nexpects a list of \u003ccode\u003eCtap2Extension\u003c/code\u003e instances. Default behavior includes\nextensions commonly supported by browsers.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003efido2.cbor\u003c/code\u003e module's \u003ccode\u003eload_x\u003c/code\u003e and \u003ccode\u003edump_x\u003c/code\u003e functions have been made\nprivate (renamed with a leading underscore) and should not be used directly.\u003c/li\u003e\n\u003cli\u003ePreviously deprecated functions and APIs have been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/Yubico/python-fido2/blob/main/NEWS\"\u003efido2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eVersion 2.1.1 (released 2026-01-19)\n** Fix: Platform detection in fido2.hid module for BSD's.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVersion 2.1.0 (released 2026-01-14)\n** CTAP 2.3 support:\n*** Add new GetInfo fields: enc_cred_store_state.\n*** Add support for pinComplexityPolicy extension.\n*** Add thirdPartyPayment bit to credman.\n*** Check support for config subcommands.\n** WebAuthn:\n*** Allow UserEntity without 'name' field for improved spec compliance.\n*** Update MDS3 dataclasses with new fields.\n** Fido2Client:\n*** Fallback to PIN after UV_BLOCKED error.\n*** Improve preflight handling when message exceeds maximum size.\n** WindowsClient:\n*** Fix: Parse 'credentialProtectionPolicy' properly.\n*** Update win_api.py from latest webauthn.h.\n*** Add support for hmac-secret-mc extension.\n*** Add support for hints.\n** Development:\n*** Switch from Poetry to uv for project management.\n*** Add pyright and ty for improved type checking.\n*** Replace bandit and flake8 with ruff for linting.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVersion 2.0.0 (released 2025-05-20)\n** See also the migration guide: doc/Migration_1-2.adoc.\n** Python 3.10 or later is now required.\n** WebAuthn dataclasses have been updated to align with the WebAuthn Level 3\nWorking Draft. Constructors now require keyword arguments (\u003ccode\u003ekwargs_only=True\u003c/code\u003e),\nand serialization to/from dictionaries is compatible with standardized JSON\nformats.\n** The \u003ccode\u003efeatures.webauthn_json_mapping\u003c/code\u003e flag has been removed, as its\nbehavior (standardized JSON mapping) is now default.\n** \u003ccode\u003eFido2Client\u003c/code\u003e and \u003ccode\u003eWindowsClient\u003c/code\u003e constructors now accept a\n\u003ccode\u003eClientDataCollector\u003c/code\u003e instance instead of \u003ccode\u003eorigin\u003c/code\u003e and \u003ccode\u003everify\u003c/code\u003e parameters.\n** \u003ccode\u003eWindowsClient\u003c/code\u003e has been relocated to \u003ccode\u003efido2.client.windows\u003c/code\u003e. Importing this\nclass on non-Windows platforms will now raise an \u003ccode\u003eImportError\u003c/code\u003e.\n** \u003ccode\u003eFido2Client\u003c/code\u003e methods now return \u003ccode\u003eRegistrationResponse\u003c/code\u003e and\n\u003ccode\u003eAuthenticationResponse\u003c/code\u003e objects, instead of raw attestation/assertion data.\n** CTAP2/WebAuthn extension handling has been redesigned. \u003ccode\u003eFido2Client\u003c/code\u003e now\nexpects a list of \u003ccode\u003eCtap2Extension\u003c/code\u003e instances. Default behavior includes\nextensions commonly supported by browsers.\n** The \u003ccode\u003efido2.cbor\u003c/code\u003e module's \u003ccode\u003eload_x\u003c/code\u003e and \u003ccode\u003edump_x\u003c/code\u003e functions have been made\nprivate (renamed with a leading underscore) and should not be used directly.\n** Previously deprecated functions and APIs have been removed.\n** The \u003ccode\u003e__version__\u003c/code\u003e attribute in \u003ccode\u003efido2/__init__.py\u003c/code\u003e has been removed. Use\n\u003ccode\u003eimportlib.metadata.version('fido2')\u003c/code\u003e to get the package version.\n** Add new GetInfo fields based on CTAP 2.2.\n** Add support for Persistent PinUvAuthToken and encIdentifier.\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/Yubico/python-fido2/commit/0f10447369f147172490e781c57bd5f5b81c5c2b\"\u003e\u003ccode\u003e0f10447\u003c/code\u003e\u003c/a\u003e Prepare version 2.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/ad65653688a1646db4390fb6e862c96282f05992\"\u003e\u003ccode\u003ead65653\u003c/code\u003e\u003c/a\u003e Add comment to avoid accidental change in the future\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/e14b1ea205379d5b5511aad31635bcbf5e11c8f2\"\u003e\u003ccode\u003ee14b1ea\u003c/code\u003e\u003c/a\u003e Merge PR \u003ca href=\"https://redirect.github.com/Yubico/python-fido2/issues/276\"\u003e#276\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/70336138f3226608b1153ea7a10300030723517b\"\u003e\u003ccode\u003e7033613\u003c/code\u003e\u003c/a\u003e Properly detect platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/2a063f11332976cda21d5fee78c7045bb43e76f0\"\u003e\u003ccode\u003e2a063f1\u003c/code\u003e\u003c/a\u003e Merge PR \u003ca href=\"https://redirect.github.com/Yubico/python-fido2/issues/275\"\u003e#275\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/48dca0d3dcc264a6907c25597f88e21438413deb\"\u003e\u003ccode\u003e48dca0d\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/d27a282fe3e0cafbe0b05437bd24666ec5cd97d0\"\u003e\u003ccode\u003ed27a282\u003c/code\u003e\u003c/a\u003e Prepare version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/1c6dc4208bb8eafad3551e31777e14a0128fde9a\"\u003e\u003ccode\u003e1c6dc42\u003c/code\u003e\u003c/a\u003e Improve test cleanup for certain keys\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/c4e086760a9c98198a5d6f1873678f5f6817bc3e\"\u003e\u003ccode\u003ec4e0867\u003c/code\u003e\u003c/a\u003e Fix tests for non-HID devices\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/dd25d385549812dcd181a38e10486fdfab3f6a8d\"\u003e\u003ccode\u003edd25d38\u003c/code\u003e\u003c/a\u003e Bump example deps\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Yubico/python-fido2/compare/1.2.0...2.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8` from 7.0.0 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/c48217e1fc006c2dddd14df54e83b67da15de5cd\"\u003e\u003ccode\u003ec48217e\u003c/code\u003e\u003c/a\u003e Release 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/f9e0f33281d5bb892cae2c674ac398439d99c732\"\u003e\u003ccode\u003ef9e0f33\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1986\"\u003e#1986\u003c/a\u003e from PyCQA/document-f542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6bcdb628597fa2d03494965089ff87a492ffc1e9\"\u003e\u003ccode\u003e6bcdb62\u003c/code\u003e\u003c/a\u003e document F542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/70a15b8890d5bdf8c449ebb1b5259bd0140cc16b\"\u003e\u003ccode\u003e70a15b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1985\"\u003e#1985\u003c/a\u003e from PyCQA/upgrade-deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/4941a3e32e54488698ecbc23993bfeb2a60c0fc5\"\u003e\u003ccode\u003e4941a3e\u003c/code\u003e\u003c/a\u003e upgrade pyflakes / pycodestyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/23e4005c5501999c29e1e3774de7ed18d1e4e22d\"\u003e\u003ccode\u003e23e4005\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1983\"\u003e#1983\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/019424b80d3d7d5d8a2a1638f5877080546e3f46\"\u003e\u003ccode\u003e019424b\u003c/code\u003e\u003c/a\u003e add support for t-strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6b6f3d5fefecc994a06f425c18c3cddc9b71e4a4\"\u003e\u003ccode\u003e6b6f3d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1980\"\u003e#1980\u003c/a\u003e from PyCQA/asottile-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/8dfa6695b4fb1e1401b357367a0a71037d29f6aa\"\u003e\u003ccode\u003e8dfa669\u003c/code\u003e\u003c/a\u003e add rtd sphinx config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/ce3411118382d9332feb2749c8f417d10bfa2584\"\u003e\u003ccode\u003ece34111\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1976\"\u003e#1976\u003c/a\u003e from PyCQA/document-f824\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pycqa/flake8/compare/7.0.0...7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8-bugbear` from 22.10.27 to 25.11.29\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/releases\"\u003eflake8-bugbear's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.11.29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB043: Add new check to state don't call delattr with constant (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/514\"\u003e#514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB042: ignore overloaded init, ignore if str+pickle dunder, improve README\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.10.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB042: New check for reminding to call super().\u003cstrong\u003einit\u003c/strong\u003e in custom exceptions\u003c/li\u003e\n\u003cli\u003eB028: Skip if skip_file_prefixes is used (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB912: New check for \u003ccode\u003emap()\u003c/code\u003e without an explicit \u003ccode\u003estrict=\u003c/code\u003e parameter. (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd python3.14 Support / CI\u003c/li\u003e\n\u003cli\u003eRemove python3.9 support / CI\u003c/li\u003e\n\u003cli\u003eflake8-bugbear now requires at least Python 3.10, like the next release of flake8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.12.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB012 and B025 now also handle try/except* (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip B028 if warnings.warn is called with \u003ccode\u003e*args\u003c/code\u003e or \u003ccode\u003e**kwargs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd B911: itertools.batched without strict= (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReadme has anchors per check (they do not seem to render on GitHub tho)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.10.31\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB041: New dictionary same key AND value check (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/496\"\u003e#496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB037: Fix typo in error message\u003c/li\u003e\n\u003cli\u003eB024: No longer treats assigned class variables as abstract (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/471\"\u003e#471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump required attrs version to 22.2.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.8.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB910: implement to suggest using Counter() instead of defaultdict(int) (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/489\"\u003e#489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB901: Do not trigger with explicit Generator return type (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/481\"\u003e#481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB008: add some comments, rename b008_extend_immutable_calls (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB040: exception with note added not reraised or used (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB039, Add \u003ccode\u003eContextVar\u003c/code\u003e with mutable literal or function call as default\u003c/li\u003e\n\u003cli\u003eB040: Add Exception with added note not reraised. (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRun tests in Python 3.13\u003c/li\u003e\n\u003cli\u003eType annotated code (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/481\"\u003e#481\u003c/a\u003e + \u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/483\"\u003e#483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace hash with unsafe_hash (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.4.26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB909: Fix false positive affecting containers of mutables (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/469\"\u003e#469\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.4.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB950: Add pragma comment to line length ignores (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/463\"\u003e#463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB909: Add more cases to detect + more container mutating functions (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB902: Remove decorators named validator and root_validator from B902 checks (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/459\"\u003e#459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB038: Change B038 to B909 and make it optional (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/456\"\u003e#456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB038: Restrict rule to mutation functions only (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/453\"\u003e#453\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.16\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/a5ace0a2fe0697c42bca1c37cebc3d95e2c10df9\"\u003e\u003ccode\u003ea5ace0a\u003c/code\u003e\u003c/a\u003e Update CHANGES + move to version 25.11.29 to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/0afdcce2e33cf8fcbfe22d2d6f24e33b2f66eb1a\"\u003e\u003ccode\u003e0afdcce\u003c/code\u003e\u003c/a\u003e b042: ignore overloaded init, ignore if str+pickle dunder, improve README (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/2d2fd4d8abb1e3c5c831253ca8afd1717d4221e2\"\u003e\u003ccode\u003e2d2fd4d\u003c/code\u003e\u003c/a\u003e Add B043: Do not call delattr with constant (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/514\"\u003e#514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/9677fa878cdb35f82e79a51b37d635256edd84df\"\u003e\u003ccode\u003e9677fa8\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/ad43575c1a2cc58efca7148f5036ed3d9cd54cdc\"\u003e\u003ccode\u003ead43575\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/cdd75f1942294a152f864c978376f59b2ec08558\"\u003e\u003ccode\u003ecdd75f1\u003c/code\u003e\u003c/a\u003e Update CHANGES + move to version 25.10.21 to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/4601fe6e1993d7a8309dd26105a55d8c77aeae0d\"\u003e\u003ccode\u003e4601fe6\u003c/code\u003e\u003c/a\u003e Drop 3.9 support + add 3.14 CI (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/39699611b4b399a6e81d726e76c58cbcdffa25ab\"\u003e\u003ccode\u003e3969961\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/6276149b6807114307569d67be8516dae306beab\"\u003e\u003ccode\u003e6276149\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/d264420dec52a034efe05f160c4ac157f053c6e8\"\u003e\u003ccode\u003ed264420\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/compare/22.10.27...25.11.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` 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/flask/releases\"\u003eflask'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 a fix release for the 3.0.x feature branch.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.0.3/\"\u003ehttps://pypi.org/project/Flask/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/3.0.x/changes/#version-3-0-3\"\u003ehttps://flask.palletsprojects.com/en/3.0.x/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/35?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/35?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5448\"\u003e#5448\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't initialize the \u003ccode\u003ecli\u003c/code\u003e attribute in the sansio scaffold, but rather in the \u003ccode\u003eFlask\u003c/code\u003e concrete class. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5270\"\u003e#5270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-07\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e5448\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't initialize the \u003ccode\u003ecli\u003c/code\u003e attribute in the sansio scaffold, but rather in\nthe \u003ccode\u003eFlask\u003c/code\u003e concrete class. :pr:\u003ccode\u003e5270\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c12a5d874c5a014495eb2db8a73f40037bc813ac\"\u003e\u003ccode\u003ec12a5d8\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/5e22cc9eec0d1da2da706ccf724fde702b30d5f2\"\u003e\u003ccode\u003e5e22cc9\u003c/code\u003e\u003c/a\u003e Don't set the cli attribute in the sansio scaffold (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/5fdce4c331ac530280cc941179d364a07f4a1088\"\u003e\u003ccode\u003e5fdce4c\u003c/code\u003e\u003c/a\u003e Don't set the cli attribute in the sansio scaffold\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/adb7dd99c295a28726c8d818fba54c7b3f958ecc\"\u003e\u003ccode\u003eadb7dd9\u003c/code\u003e\u003c/a\u003e don't access app.logger when configuring app.logger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/b73939095564ec5c088c53e7595b00d174a018f5\"\u003e\u003ccode\u003eb739390\u003c/code\u003e\u003c/a\u003e support FIPS builds without SHA-1 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5460\"\u003e#5460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/db461112c70d5f2bf93c7a6ac27eeb665c232dd0\"\u003e\u003ccode\u003edb46111\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/7320e311a0a3f190351173f8be90cab31dadbf73\"\u003e\u003ccode\u003e7320e31\u003c/code\u003e\u003c/a\u003e start version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/87d5f5b9a9697434e6d972b021201105eabb54e6\"\u003e\u003ccode\u003e87d5f5b\u003c/code\u003e\u003c/a\u003e update project files (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5457\"\u003e#5457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/d5e321b792cd6f3cd7b072d175f47eacbd5ee14f\"\u003e\u003ccode\u003ed5e321b\u003c/code\u003e\u003c/a\u003e release version 3.0.2 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5403\"\u003e#5403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pallets/flask/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 `flask-wtf` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-wtf/releases\"\u003eflask-wtf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove the project to the pallets-eco organization. \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/602\"\u003e#602\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.8. Start support for Python 3.13. \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/603\"\u003e#603\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-eco/flask-wtf/blob/main/docs/changes.rst\"\u003eflask-wtf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2024-10-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMove the project to the pallets-eco organization. :pr:\u003ccode\u003e602\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.8. Start support for Python 3.13. :pr:\u003ccode\u003e603\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-eco/flask-wtf/commit/2e142951788d8209815fd4797c93f6f3c275ed71\"\u003e\u003ccode\u003e2e14295\u003c/code\u003e\u003c/a\u003e chore: pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/552b7a763235abbd69efc732147ec1e2c4c61ac8\"\u003e\u003ccode\u003e552b7a7\u003c/code\u003e\u003c/a\u003e chore: bump to 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/32f12767656e0f4304221e62c027fe99b67ea037\"\u003e\u003ccode\u003e32f1276\u003c/code\u003e\u003c/a\u003e chore: install 'build' dependency for the release GHA workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/f712367414346196e7fc436ad771533ed2c98898\"\u003e\u003ccode\u003ef712367\u003c/code\u003e\u003c/a\u003e chore: dependencies update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/b929162626b813b7ee2a8edb58fce861cd2e34af\"\u003e\u003ccode\u003eb929162\u003c/code\u003e\u003c/a\u003e chore: use Flask inspired GHA workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/07049e3b87aec17c693dd8cd6993e09bce679705\"\u003e\u003ccode\u003e07049e3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/604\"\u003e#604\u003c/a\u003e from azmeuk/flask-pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/49a13806e95b87735f7c196663ef5155a752dfec\"\u003e\u003ccode\u003e49a1380\u003c/code\u003e\u003c/a\u003e chore: pre-commit configuration insipred from Flask\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/f2bbd1b67a982131278488cc18ba1f65b3caafac\"\u003e\u003ccode\u003ef2bbd1b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/603\"\u003e#603\u003c/a\u003e from azmeuk/py313\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/d3cd8bf1e0d4dbd15daf1cbbf521da41e2c30d50\"\u003e\u003ccode\u003ed3cd8bf\u003c/code\u003e\u003c/a\u003e chore: stop support for python 3.8; start support for python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/0b2e5e413efb614b47f5deb8416847555e2ea07a\"\u003e\u003ccode\u003e0b2e5e4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/602\"\u003e#602\u003c/a\u003e from azmeuk/pallets-eco\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-wtf/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.2.2 to 1.5.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spulec/freezegun/blob/master/CHANGELOG\"\u003efreezegun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow parametrized arguments called 'func' (Broken in 1.5.4)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Ability to yield fixtures (broken in 1.5.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility with pytest 8.4.0 when using fixtures\u003c/li\u003e\n\u003cli\u003eAdd (back) class-decorator overload to guarantee Pytype understands it\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.7\u003c/li\u003e\n\u003cli\u003eExplicitly marks support for Python 3.13\u003c/li\u003e\n\u003cli\u003eImproved project documentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the typing of the \u003ccode\u003etick()\u003c/code\u003e method, and improve it's behaviour.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe default ignore list now contains the \u003ccode\u003equeue\u003c/code\u003e-package\u003c/li\u003e\n\u003cli\u003eAdded a missing \u003ccode\u003emove_to\u003c/code\u003e-function when calling \u003ccode\u003efreeze_time(tick=True)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixes a rounding error in \u003ccode\u003etime.time_ns()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed a bug where the default ignore list could not be empty (\u003ccode\u003econfigure(default_ignore_list=[])\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAll \u003ccode\u003etick()\u003c/code\u003e methods now return the new datetime (instead of None)\u003c/li\u003e\n\u003cli\u003eType improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e-support from 1.3.x introduced quite a few  bugs, so that functionality is now hidden behind a flag:\n\u003ccode\u003ewith freeze_time('1970-01-02', real_asyncio=True):\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded documentation for the \u003ccode\u003ereal_asyncio\u003c/code\u003e parameter in the \u003ccode\u003eREADME.rst\u003c/code\u003e file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the release number in the build\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003easyncio\u003c/code\u003e support to avoid \u003ccode\u003eawait asyncio.sleep(1)\u003c/code\u003e hanging forever.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.12\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/spulec/freezegun/commit/c9bf52c5aa12ea1b5b8647a136a92504ea071f2f\"\u003e\u003ccode\u003ec9bf52c\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0f2bd7ed8b420da73372f4cbb0207b777caa66e9\"\u003e\u003ccode\u003e0f2bd7e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/582\"\u003e#582\u003c/a\u003e from spulec/fixture-called-func\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/a6080557cbcbe4891843934c1334430bb1c5ead7\"\u003e\u003ccode\u003ea608055\u003c/code\u003e\u003c/a\u003e Allow parametrized arguments with name 'func'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/2bb47113a5f9f290d26630c92732e58f49557179\"\u003e\u003ccode\u003e2bb4711\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/7599eeea16b8f206e881892dc104128a5b36de82\"\u003e\u003ccode\u003e7599eee\u003c/code\u003e\u003c/a\u003e Add 1.5.4 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0d00e7ddd9ad33fc63fbed29af17853b18bc3c61\"\u003e\u003ccode\u003e0d00e7d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/579\"\u003e#579\u003c/a\u003e from zsh8/decorate_generator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/10c93f2d6c98f82e54470b05144cd0f17d3e1b46\"\u003e\u003ccode\u003e10c93f2\u003c/code\u003e\u003c/a\u003e fix: preserve functionality in pytest yield fixtures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/d2e0a00addb0653b0cf3be65f8fa7137c7e3bda1\"\u003e\u003ccode\u003ed2e0a00\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/6229e27d27ec61c4c55d7006db7ede6f16d7280a\"\u003e\u003ccode\u003e6229e27\u003c/code\u003e\u003c/a\u003e Add 1.5.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/3111775d6e484f55a85030c626180b592adef569\"\u003e\u003ccode\u003e3111775\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/576\"\u003e#576\u003c/a\u003e from spulec/support-fixtures-pytest-840\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spulec/freezegun/compare/1.2.2...1.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-bank-holidays` from 0.15 to 0.18\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/releases\"\u003egovuk-bank-holidays's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18\u003c/h2\u003e\n\u003cp\u003eAdded support for python 3.14 and removed 3.9 which has reached end-of-life.\nMigrated to trusted publishing.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.17...0.18\"\u003eChanges\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.17\u003c/h2\u003e\n\u003cp\u003eAdded timeout for source downloads (default being GOV.UK) before falling back to cache. With thanks to \u003ca href=\"https://github.com/ibrechin\"\u003e\u003ccode\u003e@​ibrechin\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.16...0.17\"\u003eChanges\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.16\u003c/h2\u003e\n\u003cp\u003eRemoved support for python versions older than 3.9 since they have reached end-of-life and are not available for testing in Github Actions.\nAdded python 3.13 to testing matrix.\nUpdated cached bank holidays file to include latest holidays published by GOV.UK.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.15...0.16\"\u003eChanges\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/ministryofjustice/govuk-bank-holidays/commit/d0eaced4110ac7fe7db4852b98a7fa878e3d44c8\"\u003e\u003ccode\u003ed0eaced\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/govuk-bank-holidays/issues/28\"\u003e#28\u003c/a\u003e from ministryofjustice/trusted-publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/d0edb45645dcebce3889010265b7f1593f83b0e9\"\u003e\u003ccode\u003ed0edb45\u003c/code\u003e\u003c/a\u003e Move to trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/6ccc756d9c91113f3be831e091a3545ee5b2b004\"\u003e\u003ccode\u003e6ccc756\u003c/code\u003e\u003c/a\u003e Update Github Actions dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/cf09505bbbb87a1c623144536707e2322f7cb528\"\u003e\u003ccode\u003ecf09505\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/8df5dea82c1369410c01e0e1ef406cd311d96b85\"\u003e\u003ccode\u003e8df5dea\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/a15061da364cb2927c441289a9defb767fa95551\"\u003e\u003ccode\u003ea15061d\u003c/code\u003e\u003c/a\u003e Bump to 0.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/7ccd9106a893cb6a470734e4c4e8a84439b7b24e\"\u003e\u003ccode\u003e7ccd910\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/govuk-bank-holidays/issues/25\"\u003e#25\u003c/a\u003e from ibrechin/add-request-timeout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/11dd549d0fd663e510a40772f9ebb5ec87f72fca\"\u003e\u003ccode\u003e11dd549\u003c/code\u003e\u003c/a\u003e Add configurable timeout for downloading live holiday data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/11ddc9c2e3bba5e140a5d17d54e7dd38aaa7fb56\"\u003e\u003ccode\u003e11ddc9c\u003c/code\u003e\u003c/a\u003e Bump to 0.16\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/5ad9b7b086865aa779e9a087555f841df80a858d\"\u003e\u003ccode\u003e5ad9b7b\u003c/code\u003e\u003c/a\u003e Remove (official) support and testing on python \u0026lt; 3.9 (though it should conti...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.15...0.18\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-frontend-jinja` from 3.3.0 to 3.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases\"\u003egovuk-frontend-jinja's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.14.0\"\u003eGOV.UK Frontend v5.14.0\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.13.0\"\u003eGOV.UK Frontend v5.13.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated from \u003ccode\u003esetup.py\u003c/code\u003e to \u003ccode\u003epyproject.toml\u003c/code\u003e for packaging config\u003c/li\u003e\n\u003cli\u003eMigrated from \u003ccode\u003epip-tools\u003c/code\u003e to \u003ccode\u003epipenv\u003c/code\u003e for dependency management\u003c/li\u003e\n\u003cli\u003eReduced test Docker image size from 1.28GB to 400MB (-69.5%)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.8.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.12.0\"\u003eGOV.UK Frontend v5.12.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.9 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/82\"\u003e#82\u003c/a\u003e - Templates use lower filter on values where it should not\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/tim-s-ccs\"\u003e\u003ccode\u003e@​tim-s-ccs\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/samuelhwilliams\"\u003e\u003ccode\u003e@​samuelhwilliams\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.11.1\"\u003eGOV.UK Frontend v5.11.1\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.10.0\"\u003eGOV.UK Frontend v5.10.0\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIntroduced rebranding logic in \u003ccode\u003eheader\u003c/code\u003e, \u003ccode\u003efooter\u003c/code\u003e, and \u003ccode\u003eservice-navigation\u003c/code\u003e components.\u003c/li\u003e\n\u003cli\u003eAdded a new \u003ccode\u003elogo.html\u003c/code\u003e macro for enhanced branding capabilities.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003etemplate.html\u003c/code\u003e to handle rebranding dynamically through variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgraded dependencies in \u003ccode\u003erequirements-test-*.txt\u003c/code\u003e files to the latest minor/patch versions:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eclick\u003c/code\u003e → v8.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflake8\u003c/code\u003e → v7.2.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/blob/main/CHANGELOG.md\"\u003egovuk-frontend-jinja's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.10.0\"\u003e3.10.0\u003c/a\u003e - 15/01/2026\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.14.0\"\u003eGOV.UK Frontend v5.14.0\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.9.0\"\u003e3.9.0\u003c/a\u003e - 13/10/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.13.0\"\u003eGOV.UK Frontend v5.13.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated from \u003ccode\u003esetup.py\u003c/code\u003e to \u003ccode\u003epyproject.toml\u003c/code\u003e for packaging config\u003c/li\u003e\n\u003cli\u003eMigrated from \u003ccode\u003epip-tools\u003c/code\u003e to \u003ccode\u003epipenv\u003c/code\u003e for dependency management\u003c/li\u003e\n\u003cli\u003eReduced test Docker image size from 1.28GB to 400MB (-69.5%)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.8.0\"\u003e3.8.0\u003c/a\u003e - 06/10/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.12.0\"\u003eGOV.UK Frontend v5.12.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.9 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/82\"\u003e#82\u003c/a\u003e - Templates use lower filter on values where it should not\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/tim-s-ccs\"\u003eTim South\u003c/a\u003e and \u003ca href=\"https://github.com/samuelhwilliams\"\u003eSamuel Williams\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.7.0\"\u003e3.7.0\u003c/a\u003e - 14/08/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.11.1\"\u003eGOV.UK Frontend v5.11.1\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.6.0\"\u003e3.6.0\u003c/a\u003e - 14/05/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.10.0\"\u003eGOV.UK Frontend v5.10.0\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIntroduced rebranding logic in \u003ccode\u003eheader\u003c/code\u003e, \u003ccode\u003efooter\u003c/code\u003e, and \u003ccode\u003eservice-navigation\u003c/code\u003e components.\u003c/li\u003e\n\u003cli\u003eAdded a new \u003ccode\u003elogo.html\u003c/code\u003e macro for enhanced branding capabilities.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003etemplate.html\u003c/code\u003e to handle rebranding dynamically through 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/LandRegistry/govuk-frontend-jinja/commit/381ffaa754c13f9dd0897e8eb35fbaf57870e4a7\"\u003e\u003ccode\u003e381ffaa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/107\"\u003e#107\u003c/a\u003e from LandRegistry/govuk-frontend-514\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/258af72df65772773de25a965ff6de00b3a12b67\"\u003e\u003ccode\u003e258af72\u003c/code\u003e\u003c/a\u003e add release to changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/cc32c81edb83233e2f58b214829484684f4f2333\"\u003e\u003ccode\u003ecc32c81\u003c/code\u003e\u003c/a\u003e v3.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/7372ab17ed3cabb8b3f5f5fa7513f47820cf7d1b\"\u003e\u003ccode\u003e7372ab1\u003c/code\u003e\u003c/a\u003e formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/059d5ed9c3f0a3e058894373c466c1fc60a44a25\"\u003e\u003ccode\u003e059d5ed\u003c/code\u003e\u003c/a\u003e service navigation changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/14e644f3e73488ce95d1d1fee2799952c156ef9d\"\u003e\u003ccode\u003e14e644f\u003c/code\u003e\u003c/a\u003e pagination changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/f6e51d00bc9b5eafe506c965ed756f8756390970\"\u003e\u003ccode\u003ef6e51d0\u003c/code\u003e\u003c/a\u003e footer changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/a3823449921b29f146a6071d4a5046ebcb976336\"\u003e\u003ccode\u003ea382344\u003c/code\u003e\u003c/a\u003e update dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/edacaa60ca644a791781bb2fbe23af613a6a011e\"\u003e\u003ccode\u003eedacaa6\u003c/code\u003e\u003c/a\u003e prep 5.14 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/f9697b2922bf4c8c369a0074f339b10d8f7330f7\"\u003e\u003ccode\u003ef9697b2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/96\"\u003e#96\u003c/a\u003e from sfount/fix-character-count-typo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/compare/3.3.0...3.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `humanize` from 4.4.0 to 4.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-humanize/humanize/releases\"\u003ehumanize's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.15.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd locale support for decimal separator in \u003ccode\u003eintword\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/287\"\u003e#287\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.15 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/275\"\u003e#275\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace pre-commit with prek (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/276\"\u003e#276\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enaturaldelta\u003c/code\u003e: round the value to nearest unit that makes sense (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/272\"\u003e#272\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix plural form for \u003ccode\u003eintword\u003c/code\u003e and improve performance (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/273\"\u003e#273\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace \u003ccode\u003eException\u003c/code\u003e with more specific \u003ccode\u003eFileNotFoundError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/286\"\u003e#286\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.14.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Uzbek language (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/264\"\u003e#264\u003c/a\u003e) \u003ca href=\"https://github.com/sSimuSs\"\u003e\u003ccode\u003e@​sSimuSs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/268\"\u003e#268\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.13.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimise \u003ccode\u003enaturalsize\u003c/code\u003e algorithm by using \u003ccode\u003emath.log\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/253\"\u003e#253\u003c/a\u003e) \u003ca href=\"https://github.com/Zaczero\"\u003e\u003ccode\u003e@​Zaczero\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprecisedelta\u003c/code\u003e rounding (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/254\"\u003e#254\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.3\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003enaturalsize\u003c/code\u003e for \u003ccode\u003efloat\u003c/code\u003e and \u003ccode\u003estr\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/250\"\u003e#250\u003c/a\u003e) \u003ca href=\"https://github.com/loicleyendecker\"\u003e\u003ccode\u003e@​loicleyendecker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprovements for French translation (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/248\"\u003e#248\u003c/a\u003e) \u003ca href=\"https://github.com/merwok\"\u003e\u003ccode\u003e@​merwok\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.2\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate license file reference from \u003ccode\u003eLICENSE\u003c/code\u003e to \u003ccode\u003eLICENCE\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/243\"\u003e#243\u003c/a\u003e) \u003ca href=\"https://github.com/williamjamir\"\u003e\u003ccode\u003e@​williamjamir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate docstring in naturaldelta (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/242\"\u003e#242\u003c/a\u003e) \u003ca href=\"https://github.com/teobucci\"\u003e\u003ccode\u003e@​teobucci\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore \u003ccode\u003esys.monitoring\u003c/code\u003e warning for Python 3.11 and earlier in coverage.py config (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/244\"\u003e#244\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.1\u003c/h2\u003e\n\u003ch2\u003eFixed\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/python-humanize/humanize/commit/2ddb5903cdc1c7e6eb6b083f4f99f73db50aecd9\"\u003e\u003ccode\u003e2ddb590\u003c/code\u003e\u003c/a\u003e Replace \u003ccode\u003eException\u003c/code\u003e with more specific \u003ccode\u003eFileNotFoundError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/e87f2e25660d3af2ea553ea8dc63bff99652bc94\"\u003e\u003ccode\u003ee87f2e2\u003c/code\u003e\u003c/a\u003e Add locale support for decimal separator in \u003ccode\u003eintword\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/717518400d6709cf7e9bebe4a9424eb3b1ebd60d\"\u003e\u003ccode\u003e7175184\u003c/code\u003e\u003c/a\u003e Add locale support for decimal separator in intword\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/25269993e7ef021edaba620c96827ca21cc13d7e\"\u003e\u003ccode\u003e2526999\u003c/code\u003e\u003c/a\u003e Update config (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/ba532d9ae45d1da89f3687259324365...\n\n_Description has been truncated_","html_url":"https://github.com/alphagov/emergency-alerts-admin/pull/332","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphagov%2Femergency-alerts-admin/issues/332","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/332/packages"}},{"old_version":"3.5.0","new_version":"3.7.2","update_type":"minor","path":"/Data/Python/Constraints","pr_created_at":"2026-01-24T20:06:48.000Z","version_change":"3.5.0 → 3.7.2","issue":{"uuid":"3851959999","node_id":"PR_kwDORAhFZs6_K0k5","number":1,"state":"open","title":"Bump the all-deps group in /Data/Python/Constraints with 81 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-24T20:06:48.000Z","updated_at":"2026-01-31T04:01:14.540Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-deps","update_count":81,"packages":[{"name":"aiofiles","old_version":"24.1.0","new_version":"25.1.0","repository_url":"https://github.com/Tinche/aiofiles"},{"name":"aiosqlite","old_version":"0.20.0","new_version":"0.22.1","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"antlr4-python3-runtime","old_version":"4.13.1","new_version":"4.13.2"},{"name":"asyncua","old_version":"1.1.5","new_version":"1.1.8","repository_url":"https://github.com/FreeOpcUa/opcua-asyncio"},{"name":"atomicwrites","old_version":"1.4.0","new_version":"1.4.1","repository_url":"https://github.com/untitaker/python-atomicwrites"},{"name":"autobahn","old_version":"21.3.1","new_version":"25.12.2","repository_url":"https://github.com/crossbario/autobahn-python"},{"name":"awkward","old_version":"2.6.10","new_version":"2.8.11","repository_url":"https://github.com/scikit-hep/awkward-1.0"},{"name":"awkward-cpp","old_version":"40","new_version":"51","repository_url":"https://github.com/scikit-hep/awkward-1.0"},{"name":"blinker","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/pallets-eco/blinker"},{"name":"certifi","old_version":"2025.11.12","new_version":"2026.1.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"click","old_version":"8.1.7","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"comtypes","old_version":"1.4.12","new_version":"1.4.15","repository_url":"https://github.com/enthought/comtypes"},{"name":"configparser","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/jaraco/configparser"},{"name":"contourpy","old_version":"1.1.1","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"cpylog","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/SteveDoyle2/cpylog"},{"name":"docutils","old_version":"0.20.1","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"ezdxf","old_version":"1.1.4","new_version":"1.4.3","repository_url":"https://github.com/mozman/ezdxf"},{"name":"fonttools","old_version":"4.57.0","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"fsspec","old_version":"2025.3.0","new_version":"2026.1.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"geomdl","old_version":"5.3.1","new_version":"5.4.0","repository_url":"https://github.com/orbingol/NURBS-Python"},{"name":"ijson","old_version":"3.3.0","new_version":"3.4.0.post0","repository_url":"https://github.com/ICRAR/ijson"},{"name":"imageio","old_version":"2.35.1","new_version":"2.37.2","repository_url":"https://github.com/imageio/imageio"},{"name":"importlib-metadata","old_version":"8.5.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"importlib-resources","old_version":"6.4.5","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.4.9","repository_url":"https://github.com/nucleic/kiwi"},{"name":"ladybug-comfort","old_version":"0.18.96","new_version":"0.18.97","repository_url":"https://github.com/ladybug-tools/ladybug-comfort"},{"name":"ladybug-core","old_version":"0.44.29","new_version":"0.44.30","repository_url":"https://github.com/ladybug-tools/ladybug"},{"name":"llvmlite","old_version":"0.41.1","new_version":"0.46.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"markdown","old_version":"3.7","new_version":"3.10.1","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"markdown-it-py","old_version":"3.0.0","new_version":"4.0.0","repository_url":"https://github.com/executablebooks/markdown-it-py"},{"name":"matplotlib","old_version":"3.7.5","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"msgpack","old_version":"1.1.1","new_version":"1.1.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"networkx","old_version":"3.1","new_version":"3.6.1","repository_url":"https://github.com/networkx/networkx"},{"name":"numba","old_version":"0.58.1","new_version":"0.63.1","repository_url":"https://github.com/numba/numba"},{"name":"numpy","old_version":"1.24.4","new_version":"2.4.1","repository_url":"https://github.com/numpy/numpy"},{"name":"openstudio","old_version":"3.10.0","new_version":"3.11.0","repository_url":"https://github.com/NREL/OpenStudio"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"pandas","old_version":"2.0.3","new_version":"3.0.0","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pillow","old_version":"10.4.0","new_version":"12.1.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"posthog","old_version":"4.2.0","new_version":"7.6.0","repository_url":"https://github.com/posthog/posthog-python"},{"name":"protobuf","old_version":"5.29.5","new_version":"6.33.4","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"psutil","old_version":"7.1.3","new_version":"7.2.1","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycollada","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/pycollada/pycollada"},{"name":"pycparser","old_version":"2.23","new_version":"3.0","repository_url":"https://github.com/eliben/pycparser"},{"name":"pyfakefs","old_version":"5.10.2","new_version":"6.0.0","repository_url":"https://github.com/pytest-dev/pyfakefs"},{"name":"pygit2","old_version":"1.13.3","new_version":"1.19.1","repository_url":"https://github.com/libgit2/pygit2"},{"name":"pyjwt","old_version":"2.9.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pynastran","old_version":"1.3.4","new_version":"1.4.1","repository_url":"https://github.com/SteveDoyle2/pyNastran"},{"name":"pyopenxr","old_version":"1.1.4601","new_version":"1.1.5301","repository_url":"https://github.com/cmbruns/pyopenxr"},{"name":"pyoptools","old_version":"0.2.1","new_version":"0.3.7"},{"name":"pyparsing","old_version":"3.1.4","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pypresence","old_version":"4.3.0","new_version":"4.6.1","repository_url":"https://github.com/qwertyquerty/pypresence"},{"name":"pyproj","old_version":"3.5.0","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"python-docx","old_version":"1.1.2","new_version":"1.2.0","repository_url":"https://github.com/python-openxml/python-docx"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pyvista","old_version":"0.44.2","new_version":"0.46.5","repository_url":"https://github.com/pyvista/pyvista"},{"name":"pywavelets","old_version":"1.4.1","new_version":"1.9.0","repository_url":"https://github.com/PyWavelets/pywt"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.2.0","new_version":"14.3.0","repository_url":"https://github.com/Textualize/rich"},{"name":"scikit-image","old_version":"0.21.0","new_version":"0.26.0","repository_url":"https://github.com/scikit-image/scikit-image"},{"name":"scikit-learn","old_version":"1.3.2","new_version":"1.8.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.10.1","new_version":"1.17.0","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.48.0","new_version":"2.50.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8.3","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"streamdeck","old_version":"0.9.6","new_version":"0.9.8","repository_url":"https://github.com/abcminiuser/python-elgato-streamdeck"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"testtools","old_version":"2.7.2","new_version":"2.8.2","repository_url":"https://github.com/testing-cabal/testtools"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tifffile","old_version":"2023.7.10","new_version":"2026.1.14","repository_url":"https://github.com/cgohlke/tifffile"},{"name":"trimesh","old_version":"4.10.1","new_version":"4.11.1","repository_url":"https://github.com/mikedh/trimesh"},{"name":"txaio","old_version":"23.1.1","new_version":"25.12.2","repository_url":"https://github.com/crossbario/txaio"},{"name":"typing-extensions","old_version":"4.13.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"tzlocal","old_version":"5.2","new_version":"5.3.1","repository_url":"https://github.com/regebro/tzlocal"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"vtk","old_version":"9.3.1","new_version":"9.5.2"},{"name":"xarray","old_version":"2023.1.0","new_version":"2025.12.0","repository_url":"https://github.com/pydata/xarray"},{"name":"zipp","old_version":"3.20.2","new_version":"3.23.0","repository_url":"https://github.com/jaraco/zipp"}],"path":"/Data/Python/Constraints","ecosystem":"pip"},"body":"Bumps the all-deps group in /Data/Python/Constraints with 81 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.20.0` | `0.22.1` |\n| [antlr4-python3-runtime](http://www.antlr.org) | `4.13.1` | `4.13.2` |\n| [asyncua](https://github.com/FreeOpcUa/opcua-asyncio) | `1.1.5` | `1.1.8` |\n| [atomicwrites](https://github.com/untitaker/python-atomicwrites) | `1.4.0` | `1.4.1` |\n| [autobahn](https://github.com/crossbario/autobahn-python) | `21.3.1` | `25.12.2` |\n| [awkward](https://github.com/scikit-hep/awkward-1.0) | `2.6.10` | `2.8.11` |\n| [awkward-cpp](https://github.com/scikit-hep/awkward-1.0) | `40` | `51` |\n| [blinker](https://github.com/pallets-eco/blinker) | `1.8.2` | `1.9.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.11.12` | `2026.1.4` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.1` |\n| [comtypes](https://github.com/enthought/comtypes) | `1.4.12` | `1.4.15` |\n| [configparser](https://github.com/jaraco/configparser) | `7.1.0` | `7.2.0` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.1.1` | `1.3.3` |\n| [cpylog](https://github.com/SteveDoyle2/cpylog) | `1.5.0` | `1.6.0` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.20.1` | `0.22.4` |\n| [ezdxf](https://github.com/mozman/ezdxf) | `1.1.4` | `1.4.3` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.57.0` | `4.61.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.3.0` | `2026.1.0` |\n| [geomdl](https://github.com/orbingol/NURBS-Python) | `5.3.1` | `5.4.0` |\n| [ijson](https://github.com/ICRAR/ijson) | `3.3.0` | `3.4.0.post0` |\n| [imageio](https://github.com/imageio/imageio) | `2.35.1` | `2.37.2` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.5.0` | `8.7.1` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `6.4.5` | `6.5.2` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.4.9` |\n| [ladybug-comfort](https://github.com/ladybug-tools/ladybug-comfort) | `0.18.96` | `0.18.97` |\n| [ladybug-core](https://github.com/ladybug-tools/ladybug) | `0.44.29` | `0.44.30` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.41.1` | `0.46.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.7` | `3.10.1` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `3.0.0` | `4.0.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.7.5` | `3.10.8` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.1` | `1.1.2` |\n| [networkx](https://github.com/networkx/networkx) | `3.1` | `3.6.1` |\n| [numba](https://github.com/numba/numba) | `0.58.1` | `0.63.1` |\n| [numpy](https://github.com/numpy/numpy) | `1.24.4` | `2.4.1` |\n| [openstudio](https://github.com/NREL/OpenStudio) | `3.10.0` | `3.11.0` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.0.3` | `3.0.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `10.4.0` | `12.1.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.5.1` |\n| [posthog](https://github.com/posthog/posthog-python) | `4.2.0` | `7.6.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.5` | `6.33.4` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.1.3` | `7.2.1` |\n| [pycollada](https://github.com/pycollada/pycollada) | `0.9.2` | `0.9.3` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.23` | `3.0` |\n| [pyfakefs](https://github.com/pytest-dev/pyfakefs) | `5.10.2` | `6.0.0` |\n| [pygit2](https://github.com/libgit2/pygit2) | `1.13.3` | `1.19.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.9.0` | `2.10.1` |\n| [pynastran](https://github.com/SteveDoyle2/pyNastran) | `1.3.4` | `1.4.1` |\n| [pyopenxr](https://github.com/cmbruns/pyopenxr) | `1.1.4601` | `1.1.5301` |\n| pyoptools | `0.2.1` | `0.3.7` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.1.4` | `3.3.2` |\n| [pypresence](https://github.com/qwertyquerty/pypresence) | `4.3.0` | `4.6.1` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.5.0` | `3.7.2` |\n| [python-docx](https://github.com/python-openxml/python-docx) | `1.1.2` | `1.2.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.1` |\n| [pyvista](https://github.com/pyvista/pyvista) | `0.44.2` | `0.46.5` |\n| [pywavelets](https://github.com/PyWavelets/pywt) | `1.4.1` | `1.9.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rich](https://github.com/Textualize/rich) | `14.2.0` | `14.3.0` |\n| [scikit-image](https://github.com/scikit-image/scikit-image) | `0.21.0` | `0.26.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.3.2` | `1.8.0` |\n| [scipy](https://github.com/scipy/scipy) | `1.10.1` | `1.17.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.48.0` | `2.50.0` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8.3` |\n| [streamdeck](https://github.com/abcminiuser/python-elgato-streamdeck) | `0.9.6` | `0.9.8` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [testtools](https://github.com/testing-cabal/testtools) | `2.7.2` | `2.8.2` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tifffile](https://github.com/cgohlke/tifffile) | `2023.7.10` | `2026.1.14` |\n| [trimesh](https://github.com/mikedh/trimesh) | `4.10.1` | `4.11.1` |\n| [txaio](https://github.com/crossbario/txaio) | `23.1.1` | `25.12.2` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.13.2` | `4.15.0` |\n| [tzlocal](https://github.com/regebro/tzlocal) | `5.2` | `5.3.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.6.3` |\n| [vtk](https://vtk.org) | `9.3.1` | `9.5.2` |\n| [xarray](https://github.com/pydata/xarray) | `2023.1.0` | `2025.12.0` |\n| [zipp](https://github.com/jaraco/zipp) | `3.20.2` | `3.23.0` |\n\nUpdates `aiofiles` from 24.1.0 to 25.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Tinche/aiofiles/releases\"\u003eaiofiles's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev25.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to \u003ca href=\"https://docs.astral.sh/uv/\"\u003euv\u003c/a\u003e + add Python v3.14 support.  (\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eruff\u003c/code\u003e formatter and linter. \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/216\"\u003e#216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 support. If you require it, use version 24.1.0. \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/204\"\u003e#204\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/danielsmyers\"\u003e\u003ccode\u003e@​danielsmyers\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/185\"\u003eTinche/aiofiles#185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stankudrow\"\u003e\u003ccode\u003e@​stankudrow\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/192\"\u003eTinche/aiofiles#192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/221\"\u003eTinche/aiofiles#221\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Tinche/aiofiles/compare/v24.1.0...v25.1.0\"\u003ehttps://github.com/Tinche/aiofiles/compare/v24.1.0...v25.1.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Tinche/aiofiles/blob/main/CHANGELOG.md\"\u003eaiofiles's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.1.0 (2025-10-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to \u003ca href=\"https://docs.astral.sh/uv/\"\u003euv\u003c/a\u003e + add Python v3.14 support.\n(\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eruff\u003c/code\u003e formatter and linter.\n\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/216\"\u003e#216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 support. If you require it, use version 24.1.0.\n\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/204\"\u003e#204\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/Tinche/aiofiles/commit/348f5ef6561c2b2c8a7497bd10487eab4102332f\"\u003e\u003ccode\u003e348f5ef\u003c/code\u003e\u003c/a\u003e v25.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/5e1bb8f12b09bce440cc9d1e28387d239cbc2577\"\u003e\u003ccode\u003e5e1bb8f\u003c/code\u003e\u003c/a\u003e docs: update readme to use ruff badge (\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/issues/221\"\u003e#221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/6fdc25c7812d6738ccf51c5e7d4cd68500053a52\"\u003e\u003ccode\u003e6fdc25c\u003c/code\u003e\u003c/a\u003e Move to uv. (\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/1989132423dc300c61e22434abd02725e922ddeb\"\u003e\u003ccode\u003e1989132\u003c/code\u003e\u003c/a\u003e set 'function' as a default fixture loop scope value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/8986452a1b28b109903078f8e9a805ec01e248a6\"\u003e\u003ccode\u003e8986452\u003c/code\u003e\u003c/a\u003e add the 'asyncio_default_fixture_loop_scope=session' option\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/ccab1ff77640c59b353046cb528c25ffa11caa73\"\u003e\u003ccode\u003eccab1ff\u003c/code\u003e\u003c/a\u003e update pytest-asyncio==1.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/8727c96f5be46235af412a9fe504ba7c149df7f3\"\u003e\u003ccode\u003e8727c96\u003c/code\u003e\u003c/a\u003e add PR \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/issues/216\"\u003e#216\u003c/a\u003e into the CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/a9388e5f8de9142c3e920917775e741bbf9f73b2\"\u003e\u003ccode\u003ea9388e5\u003c/code\u003e\u003c/a\u003e add TID and ignore TID252\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/760366489aed1fb041ef35652e2babb1870973d0\"\u003e\u003ccode\u003e7603664\u003c/code\u003e\u003c/a\u003e remove [ruff].exclude keyval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/7c49a5c5f2520233198487145423a7842805d740\"\u003e\u003ccode\u003e7c49a5c\u003c/code\u003e\u003c/a\u003e add final newlines\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Tinche/aiofiles/compare/v24.1.0...v25.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiosqlite` from 0.20.0 to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.1\u003c/h2\u003e\n\u003cp\u003eBug fix release\u003c/p\u003e\n\u003cp\u003eNOTE: Starting with \u003ccode\u003ev0.22.0\u003c/code\u003e, the \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e object no longer\ninherits from \u003ccode\u003ethreading.Thread\u003c/code\u003e. If not using aiosqlite as a context manager,\nclients must \u003ccode\u003eawait connection.close()\u003c/code\u003e or call \u003ccode\u003econnection.stop()\u003c/code\u003e to ensure\nthe helper thread is completed and terminated correctly. A \u003ccode\u003eResourceWarning\u003c/code\u003e\nwill be emitted for any connection that is garbage collected without being\nclosed or stopped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded synchronous \u003ccode\u003estop()\u003c/code\u003e method to \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e to enable safe\ncleanup and termination of the background thread without dependence\non having an active event loop (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.22.0...v0.22.1\n     2\tAmethyst Reese\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cp\u003eFeature release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eset_authorizer\u003c/code\u003e query access controls (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWait for transaction queue to complete when closing connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit warning when connection goes out of scope without being closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on \u003ccode\u003etyping_extensions\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.21.0...v0.22.0\n     1\tAlec Berryman\n     1\tAmethyst Reese\n     1\tDavid Andreoletti\n     1\tMarkus Heidelberg\n     1\tbeerpsi\n    19\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.21.0\u003c/h2\u003e\n\u003cp\u003eMaintenance release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix: close connection correctly when BaseException raised in connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMetadata improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/9b127cecc7de843bf4f343b6da63b641866533fb\"\u003e\u003ccode\u003e9b127ce\u003c/code\u003e\u003c/a\u003e Version bump v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/5c3f61c1ea49401f2716d8f58d494e76ca766921\"\u003e\u003ccode\u003e5c3f61c\u003c/code\u003e\u003c/a\u003e Improve stop semantics for connections (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/a869d73678adbc14472e4ac2c31f4e706efe8ef3\"\u003e\u003ccode\u003ea869d73\u003c/code\u003e\u003c/a\u003e Version bump v0.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/1cd60adcab12347577150a6fa6c7d92b7b86d989\"\u003e\u003ccode\u003e1cd60ad\u003c/code\u003e\u003c/a\u003e Emit warning if connection is deleted before it is closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/611d7b4f29fc3d7df6c173b2e79b0892e9d249aa\"\u003e\u003ccode\u003e611d7b4\u003c/code\u003e\u003c/a\u003e Add set_authorizer support for fine-grained access control (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/81d00c8f1676851c8634ca98f99e0973083ea75f\"\u003e\u003ccode\u003e81d00c8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/7a26722f7e6da6a1ae0febf515b4624794173fcc\"\u003e\u003ccode\u003e7a26722\u003c/code\u003e\u003c/a\u003e Bump coverage[toml] from 7.8.0 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/445754087ec452f888cc152debf79590d8a25d86\"\u003e\u003ccode\u003e4457540\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.2.0 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/b650dad318ad72e582b7ba1143cc05f270f8ab6b\"\u003e\u003ccode\u003eb650dad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/065ffdd1291693c5e69d2f3efff17e351d9a0163\"\u003e\u003ccode\u003e065ffdd\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.15.0 to 1.19.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.20.0...v0.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `antlr4-python3-runtime` from 4.13.1 to 4.13.2\n\nUpdates `asyncua` from 1.1.5 to 1.1.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/releases\"\u003easyncua's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.8\u003c/h2\u003e\n\u003cp\u003efix release script and upload\u003c/p\u003e\n\u003ch2\u003ev1.1.7\u003c/h2\u003e\n\u003cp\u003eorigin/master, origin/HEAD) Replace time.time() with time.monotonic() in asyncua core modules\nb3dd3a17ffdd554807df230b6b34403b8c946c30 make pytest loop scope explicit\na5d72a2dc2a53e21d84c5f3b9091e27ae14e007e finally unfreeze pytest-asyncio\ncc874c30e2154e86a43523006ecb5839412cc157 Feat: Support import/export of struct and enum Field descriptions (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1851\"\u003e#1851\u003c/a\u003e)\n97095b909c141daf9b7d300114f7d5d924444b76 Support pre 1.04 struct length fields for B\u0026amp;R\n5b1091795dc7745efb94acd94381db17274779e8 fix  connecting to new prosys opcua server (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1827\"\u003e#1827\u003c/a\u003e)\n120d2e8c090fe0dbe34fb27a3e2f723dcb83ab8d Fix small bug if imported xml has also the stardard namespace included (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1832\"\u003e#1832\u003c/a\u003e)\nd52d319b7ccf8c52f0e0fce469d06b9a10db0a24 Enhancement: Chunked Build ETree Function (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1833\"\u003e#1833\u003c/a\u003e)\n6b6f4bb220b47b7d6d5612dc4d8daccf386373b0 Fix: Issues with missing namespace URIs when importing and exporting XMLs (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1830\"\u003e#1830\u003c/a\u003e)\nf12f3e19b3e7a3bc3db38add30176eef0cecd300 fix ClientNonce and/or peer_certificate may be None\ne3e02e3cfaca19647aec9348e9452594c6ebd657 Include support for x509 certificate chains in DER format (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003ev1.1.6\u003c/h2\u003e\n\u003cp\u003eupdate ua adresse space to 1.0.5\nParse ExtensionObjects with missing length (= -1)\nadd: Number in uatypes.py\nAllow setting password to None.\nFix usage of X509IdentityToken\u003c/p\u003e\n\u003cp\u003ebug fixes\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/FreeOpcUa/opcua-asyncio/commit/d8a5de3fe4050f82f39690bb43157a4b8e20c545\"\u003e\u003ccode\u003ed8a5de3\u003c/code\u003e\u003c/a\u003e new release v1.1.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/fe795e16ad86a4aea8ee09905ab080f9a0841748\"\u003e\u003ccode\u003efe795e1\u003c/code\u003e\u003c/a\u003e fix release script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/cacd6a0c355cd5d5e3af9e1d50c8829b69c2ed88\"\u003e\u003ccode\u003ecacd6a0\u003c/code\u003e\u003c/a\u003e Replace time.time() with time.monotonic() in asyncua core modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/b3dd3a17ffdd554807df230b6b34403b8c946c30\"\u003e\u003ccode\u003eb3dd3a1\u003c/code\u003e\u003c/a\u003e make pytest loop scope explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/a5d72a2dc2a53e21d84c5f3b9091e27ae14e007e\"\u003e\u003ccode\u003ea5d72a2\u003c/code\u003e\u003c/a\u003e finally unfreeze pytest-asyncio\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/cc874c30e2154e86a43523006ecb5839412cc157\"\u003e\u003ccode\u003ecc874c3\u003c/code\u003e\u003c/a\u003e Feat: Support import/export of struct and enum Field descriptions (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1851\"\u003e#1851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/97095b909c141daf9b7d300114f7d5d924444b76\"\u003e\u003ccode\u003e97095b9\u003c/code\u003e\u003c/a\u003e Support pre 1.04 struct length fields for B\u0026amp;R\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/5b1091795dc7745efb94acd94381db17274779e8\"\u003e\u003ccode\u003e5b10917\u003c/code\u003e\u003c/a\u003e fix  connecting to new prosys opcua server (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1827\"\u003e#1827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/120d2e8c090fe0dbe34fb27a3e2f723dcb83ab8d\"\u003e\u003ccode\u003e120d2e8\u003c/code\u003e\u003c/a\u003e Fix small bug if imported xml has also the stardard namespace included (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1832\"\u003e#1832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/d52d319b7ccf8c52f0e0fce469d06b9a10db0a24\"\u003e\u003ccode\u003ed52d319\u003c/code\u003e\u003c/a\u003e Enhancement: Chunked Build ETree Function (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1833\"\u003e#1833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/compare/v1.1.5...v1.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `atomicwrites` from 1.4.0 to 1.4.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/e05d8c985a10176ad43eefb9c4bfa6d7ab176719\"\u003e\u003ccode\u003ee05d8c9\u003c/code\u003e\u003c/a\u003e version 1.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/ea90c67ffe5f38cd39d89625022d417da1966522\"\u003e\u003ccode\u003eea90c67\u003c/code\u003e\u003c/a\u003e fix name typo (\u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/60\"\u003e#60\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/c35cd32eb364d5a4210e64bf38fd1a55f329f316\"\u003e\u003ccode\u003ec35cd32\u003c/code\u003e\u003c/a\u003e Add Power Support ppc64le (\u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/57\"\u003e#57\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/9f8db6527db8a7d20879756ff83d86009df8c9c5\"\u003e\u003ccode\u003e9f8db65\u003c/code\u003e\u003c/a\u003e wrap line\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/6699a1fc44bc5cea2ee258cf960a8bd6cc584e21\"\u003e\u003ccode\u003e6699a1f\u003c/code\u003e\u003c/a\u003e migrate to travis-ci.com\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/ec443a88e5e6cfbc9b667b1bcfd52e5a0a485f7e\"\u003e\u003ccode\u003eec443a8\u003c/code\u003e\u003c/a\u003e Add documentation for open_kwargs, fix \u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/56\"\u003e#56\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/de33f6fac140f32a6eff9eb002feaa6dc7182182\"\u003e\u003ccode\u003ede33f6f\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/d17830127887b97f404f1596ac76d46d730e31f5\"\u003e\u003ccode\u003ed178301\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/72b5dcc9c5225fc8b54559f0f9c02d3211dfd403\"\u003e\u003ccode\u003e72b5dcc\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/14e7f1f5407344f215f0b06b5cbe49fe65e90d1d\"\u003e\u003ccode\u003e14e7f1f\u003c/code\u003e\u003c/a\u003e Clean up some FAQ/Frequently asked question repetition in readme (\u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/53\"\u003e#53\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/untitaker/python-atomicwrites/compare/1.4.0...1.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `autobahn` from 21.3.1 to 25.12.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/crossbario/autobahn-python/releases\"\u003eautobahn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eDevelopment Build fork-68427734-oberstet_autobahn_python-strict_typing_test-202601141357\u003c/h1\u003e\n\u003cp\u003eDevelopment build from pull request\u003c/p\u003e\n\u003ch2\u003eBuild Information\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCommit\u003c/strong\u003e: 1c7d45cd\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBuild Date\u003c/strong\u003e: 2026-01-14 14:02:37 UTC\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRelease Type\u003c/strong\u003e: development\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eIncluded Platforms\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLinux\u003c/strong\u003e: x86_64, ARM64 (manylinux wheels + pure Python fallbacks)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emacOS\u003c/strong\u003e: Apple Silicon ARM64\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWindows\u003c/strong\u003e: x86_64\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython Versions\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCPython\u003c/strong\u003e: 3.11, 3.12, 3.13, 3.14\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePyPy\u003c/strong\u003e: 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cp\u003eDownload the appropriate wheel for your platform:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install \u0026lt;downloaded-wheel-file\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eArtifact Inventory\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTotal Wheels\u003c/strong\u003e: 16\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSource Distributions\u003c/strong\u003e: 3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eDevelopment Build fork-cee77a0c-bblommers_autobahn_python-chore_apply_ruff_up-202601092138\u003c/h1\u003e\n\u003cp\u003eDevelopment build from pull request\u003c/p\u003e\n\u003ch2\u003eBuild Information\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCommit\u003c/strong\u003e: b006e90e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBuild Date\u003c/strong\u003e: 2026-01-09 21:43:05 UTC\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRelease Type\u003c/strong\u003e: development\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eIncluded Platforms\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLinux\u003c/strong\u003e: x86_64, ARM64 (manylinux wheels + pure Python fallbacks)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emacOS\u003c/strong\u003e: Apple Silicon ARM64\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWindows\u003c/strong\u003e: x86_64\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/crossbario/autobahn-python/blob/master/docs/changelog.rst\"\u003eautobahn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBuild \u0026amp; CI/CD\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSynchronize CI/CD, FlatBuffers vendoring, and wamp-ai/wamp-cicd submodules between autobahn-python and zlmdb (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSwitch manylinux container from 2_34 to 2_28 for x86_64 ISA compatibility (fixes auditwheel flatc bundling)\u003c/li\u003e\n\u003cli\u003eIncrease ARM64 build timeout to 60 minutes for QEMU emulation\u003c/li\u003e\n\u003cli\u003eAdd .github/workflows/README.md documenting CI/CD architecture\u003c/li\u003e\n\u003cli\u003eConsolidate download-github-release and download-release-artifacts recipes\u003c/li\u003e\n\u003cli\u003eAdd checksum verification to artifact download workflow\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFlatBuffers\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify vendored FlatBuffers - use upstream as-is\u003c/li\u003e\n\u003cli\u003eTrack vendored FlatBuffers in git (like zlmdb approach)\u003c/li\u003e\n\u003cli\u003eAdd version() function to vendored FlatBuffers runtime\u003c/li\u003e\n\u003cli\u003eAdd check_zlmdb_flatbuffers_version_in_sync() for cross-project compatibility\u003c/li\u003e\n\u003cli\u003eGenerate .bfbs files for WAMP schemas during wheel build\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eOther\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRename install-flatc to install-flatc-system with prominent warning\u003c/li\u003e\n\u003cli\u003eRemove legacy readthedocs.yml to activate .readthedocs.yaml\u003c/li\u003e\n\u003cli\u003eRemove dev-latest optional dependency (PyPI rejects direct URLs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.12.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNew\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd vendored Flatbuffers (v25.9.23) (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1761\"\u003e#1761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WAMP serdes functional and benchmark testing; WAMP-Flatbuffers; WAMP Serializer Composition (transport/payload) (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1765\"\u003e#1765\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFix\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix 1757 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1758\"\u003e#1758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix 1767 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1769\"\u003e#1769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix 1771 complete (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1774\"\u003e#1774\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eOther\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRel v25.10.2 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1734\"\u003e#1734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRel v25.10.2 part2 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1741\"\u003e#1741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWAMP Flatbuffers serialization test coverage; WAMP message classes refactoring (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1773\"\u003e#1773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eModernization phase 1.1 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1785\"\u003e#1785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePhase 1.2: Build Tooling Modernization (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1788\"\u003e#1788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePhase 1.3: CI/CD Modernization (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1791\"\u003e#1791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRel25 12 1 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1794\"\u003e#1794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eModernization phase 1.4 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1797\"\u003e#1797\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/crossbario/autobahn-python/commit/5e4f7e086a074892231377f465099946e8f66ac4\"\u003e\u003ccode\u003e5e4f7e0\u003c/code\u003e\u003c/a\u003e docs: add changelog and release notes for v25.12.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/e97953b3cdc42b103075146dabe9eb9f30111c8b\"\u003e\u003ccode\u003ee97953b\u003c/code\u003e\u003c/a\u003e fix: add checksum verification and unify artifact download paths\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/05f1193cb2b2cdf71a92edfd2d12965083000a68\"\u003e\u003ccode\u003e05f1193\u003c/code\u003e\u003c/a\u003e fix: download-github-release now downloads all release artifacts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/467581c1ef461c97e3c24ece03d61119bbc0e126\"\u003e\u003ccode\u003e467581c\u003c/code\u003e\u003c/a\u003e Synchronize CI/CD, Flatbuffers vendoring and wamp-ai and wamp-cicd Submodules...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/60f226c5356feaab3545f7d015c0655924d9444c\"\u003e\u003ccode\u003e60f226c\u003c/code\u003e\u003c/a\u003e build: remove legacy readthedocs.yml to activate .readthedocs.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/0dac159de6194c94d4be19b1958bddf627aba856\"\u003e\u003ccode\u003e0dac159\u003c/code\u003e\u003c/a\u003e Add missing docs deps to dev, ignore CFFI build artifacts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/e2503361b7c6f7cfd9fd38b5e2093703f3035166\"\u003e\u003ccode\u003ee250336\u003c/code\u003e\u003c/a\u003e Simplify vendored flatbuffers - use upstream as-is\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/03e2e157268713e71e10f5322e521349bc485116\"\u003e\u003ccode\u003e03e2e15\u003c/code\u003e\u003c/a\u003e Track vendored flatbuffers in git (like zlmdb approach)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/41f7e3c6595b911c482f332f5ea40de7f9c0bc1c\"\u003e\u003ccode\u003e41f7e3c\u003c/code\u003e\u003c/a\u003e Move vendor-flatbuffers logic to external Python script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/8db464888d9c738fb51b78544706c130cc1c47a6\"\u003e\u003ccode\u003e8db4648\u003c/code\u003e\u003c/a\u003e bump package version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/crossbario/autobahn-python/compare/v21.3.1...v25.12.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `awkward` from 2.6.10 to 2.8.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scikit-hep/awkward-1.0/releases\"\u003eawkward's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.8.11\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add behavior cls validation hook by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3710\"\u003escikit-hep/awkward#3710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add a playground for cccl studies by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3734\"\u003escikit-hep/awkward#3734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add cuda.compute implementation to CCCL study by \u003ca href=\"https://github.com/shwina\"\u003e\u003ccode\u003e@​shwina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3748\"\u003escikit-hep/awkward#3748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: ability to optionally disable the caching of virtual arrays on themselves by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3741\"\u003escikit-hep/awkward#3741\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug-fixes and performance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: string array numpy conversion fails with int32 offsets from parquet by \u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3697\"\u003escikit-hep/awkward#3697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: only check length against empty form in \u003ccode\u003eak.from_buffers\u003c/code\u003e if it is known by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3714\"\u003escikit-hep/awkward#3714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: typestr respects now limit_cols for .show and \u003cem\u003erepr_mimebundle\u003c/em\u003e by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3712\"\u003escikit-hep/awkward#3712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003eArrayBuilder.__bool__ \u003c/code\u003e raises \u003ccode\u003eTypeError\u003c/code\u003e when builder length is 1 by \u003ca href=\"https://github.com/T90REAL\"\u003e\u003ccode\u003e@​T90REAL\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3738\"\u003escikit-hep/awkward#3738\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: prevent teardown from crashing GPU test suite by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3747\"\u003escikit-hep/awkward#3747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: hide awkward.ak_* and awkward.str.akstr_* from 'awkward' and 'awkward.str' module by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3752\"\u003escikit-hep/awkward#3752\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: align multi-level indices before merge in \u003ccode\u003eto_dataframe()\u003c/code\u003e by \u003ca href=\"https://github.com/TaiSakuma\"\u003e\u003ccode\u003e@​TaiSakuma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3733\"\u003escikit-hep/awkward#3733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: numba test failures on Python 3.14 by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3757\"\u003escikit-hep/awkward#3757\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: incorrect passing of \u003ccode\u003eIndex\u003c/code\u003e inside nplike function in \u003ccode\u003eto_IndexedOptionArray64\u003c/code\u003e by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3727\"\u003escikit-hep/awkward#3727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: weights should not be raised to the power n in the n-th moment calculation by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3729\"\u003escikit-hep/awkward#3729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003eak.Record\u003c/code\u003e creation from iterable with nested dicts by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3728\"\u003escikit-hep/awkward#3728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: keep track of buffer key instead of field path for VirtualNDArrays \u0026amp; PlaceholderArrays by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3751\"\u003escikit-hep/awkward#3751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: typetracer nplike's \u003ccode\u003eall\u003c/code\u003e function leads to infinite recursion for \u003ccode\u003eaxis=None\u003c/code\u003e by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3765\"\u003escikit-hep/awkward#3765\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: fix compilation on self-hosted CI and test with multiple versions of CUDA by \u003ca href=\"https://github.com/ariostas\"\u003e\u003ccode\u003e@​ariostas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3704\"\u003escikit-hep/awkward#3704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update acknowledgements to include NumFOCUS affiliation by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3708\"\u003escikit-hep/awkward#3708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update pre-commit hooks 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/scikit-hep/awkward/pull/3709\"\u003escikit-hep/awkward#3709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: pytest log_level is better than log_cli_level by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3719\"\u003escikit-hep/awkward#3719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update requirements files for latest possible python versions by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3739\"\u003escikit-hep/awkward#3739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump the actions 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/scikit-hep/awkward/pull/3744\"\u003escikit-hep/awkward#3744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update pre-commit hooks 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/scikit-hep/awkward/pull/3754\"\u003escikit-hep/awkward#3754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Remove CUDA 11 support by \u003ca href=\"https://github.com/shwina\"\u003e\u003ccode\u003e@​shwina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3758\"\u003escikit-hep/awkward#3758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(ci): use macos-15-intel for x86 wheel building and testing by \u003ca href=\"https://github.com/ariostas\"\u003e\u003ccode\u003e@​ariostas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3720\"\u003escikit-hep/awkward#3720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add new versions to version selector by \u003ca href=\"https://github.com/ariostas\"\u003e\u003ccode\u003e@​ariostas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3707\"\u003escikit-hep/awkward#3707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: 3.14 is supported by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3717\"\u003escikit-hep/awkward#3717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add T90REAL as a contributor for code by \u003ca href=\"https://github.com/allcontributors\"\u003e\u003ccode\u003e@​allcontributors\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3742\"\u003escikit-hep/awkward#3742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add dependency and version change guidelines by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3745\"\u003escikit-hep/awkward#3745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add shwina as a contributor for code by \u003ca href=\"https://github.com/allcontributors\"\u003e\u003ccode\u003e@​allcontributors\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3759\"\u003escikit-hep/awkward#3759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add an example summation reducer using cccl by \u003ca href=\"https://github.com/maxymnaumchyk\"\u003e\u003ccode\u003e@​maxymnaumchyk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3762\"\u003escikit-hep/awkward#3762\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/T90REAL\"\u003e\u003ccode\u003e@​T90REAL\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3738\"\u003escikit-hep/awkward#3738\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shwina\"\u003e\u003ccode\u003e@​shwina\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3748\"\u003escikit-hep/awkward#3748\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/scikit-hep/awkward/compare/v2.8.10...v2.8.11\"\u003ehttps://github.com/scikit-hep/awkward/compare/v2.8.10...v2.8.11\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 2.8.10\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: preserve field order when replacing existing fields in with_field by \u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3681\"\u003escikit-hep/awkward#3681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add to_/from_safetensors by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3685\"\u003escikit-hep/awkward#3685\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/scikit-hep/awkward/commit/c4a2e57b47f6738670ffc0e4781a3990e7c3ff03\"\u003e\u003ccode\u003ec4a2e57\u003c/code\u003e\u003c/a\u003e awkward 2.8.11 and awkward-cpp 51\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/60072263c91fd8d5df48b487427319c5a10ae70d\"\u003e\u003ccode\u003e6007226\u003c/code\u003e\u003c/a\u003e awkward 2.8.11 and awkward-cpp 51\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/0ad8b1e25b0bd493508bade8ab8d79a383a854a0\"\u003e\u003ccode\u003e0ad8b1e\u003c/code\u003e\u003c/a\u003e fix: typetracer nplike's \u003ccode\u003eall\u003c/code\u003e function leads to infinite recursion for `axis...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/0941b378a8236a660990bd02d2c14e4d6593f28e\"\u003e\u003ccode\u003e0941b37\u003c/code\u003e\u003c/a\u003e fix: keep track of buffer key instead of field path for VirtualNDArrays \u0026amp; Pla...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/efea08c134963bc37c1013adc4ab320ebeb4d7a3\"\u003e\u003ccode\u003eefea08c\u003c/code\u003e\u003c/a\u003e chore(ci): use macos-15-intel for x86 wheel building and testing (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3720\"\u003e#3720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/87765b6adb379ba27b0f6b984607c250443b170c\"\u003e\u003ccode\u003e87765b6\u003c/code\u003e\u003c/a\u003e fix: \u003ccode\u003eak.Record\u003c/code\u003e creation from iterable with nested dicts (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3728\"\u003e#3728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/306274c1fd6028ed549fa0f9a5e47a8bd76e693c\"\u003e\u003ccode\u003e306274c\u003c/code\u003e\u003c/a\u003e fix: weights should not be raised to the power n in the n-th moment calculati...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/8872e1f4ffd781b07c2a661c235dc2d0a5f5bade\"\u003e\u003ccode\u003e8872e1f\u003c/code\u003e\u003c/a\u003e fix: incorrect passing of \u003ccode\u003eIndex\u003c/code\u003e inside nplike function in `to_IndexedOption...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/1594a70bb0d39e174996275dd251305a13f83b2b\"\u003e\u003ccode\u003e1594a70\u003c/code\u003e\u003c/a\u003e fix: numba test failures on Python 3.14 (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3757\"\u003e#3757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/ca066ddc96dd690d52956535fc7422de71ed92e3\"\u003e\u003ccode\u003eca066dd\u003c/code\u003e\u003c/a\u003e feat: ability to optionally disable the caching of virtual arrays on themselv...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scikit-hep/awkward-1.0/compare/v2.6.10...v2.8.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `awkward-cpp` from 40 to 51\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/scikit-hep/awkward-1.0/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `blinker` from 1.8.2 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/blinker/releases\"\u003eblinker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.9.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.9.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.9.0/\"\u003ehttps://pypi.org/project/blinker/1.9.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/stable/#version-1-9-0\"\u003ehttps://blinker.readthedocs.io/en/stable/#version-1-9-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/blinker/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/blinker/milestone/1?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e, \u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/173\"\u003e#173\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-eco/blinker/blob/main/CHANGES.rst\"\u003eblinker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e175\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e,\n\u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. :pr:\u003ccode\u003e172\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down.\n:issue:\u003ccode\u003e173\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-eco/blinker/commit/669f3a027828d19786e708b511277fabcd6b9532\"\u003e\u003ccode\u003e669f3a0\u003c/code\u003e\u003c/a\u003e release version 1.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/cfe116fa7912d8dcb0deee4907aa63d1efaadf5b\"\u003e\u003ccode\u003ecfe116f\u003c/code\u003e\u003c/a\u003e try disabling attestions on test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/16e4bd70a19353d9d7cf47e4df7de54936296377\"\u003e\u003ccode\u003e16e4bd7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/174\"\u003e#174\u003c/a\u003e from projectgus/bugfix/weakref_disconnect_shutdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/42561fdf065032f5c39aea04d8c3fb4db93f73f3\"\u003e\u003ccode\u003e42561fd\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;Exception ignored\u0026quot; in weakref callback during interpreter shutdown.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/dcce3e97743494433025e0b68f742f3582b6ba6a\"\u003e\u003ccode\u003edcce3e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e from pallets-eco/drop-python3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/efa95eaa080b0d4a8dcfc46ad1f387ea1ddebd97\"\u003e\u003ccode\u003eefa95ea\u003c/code\u003e\u003c/a\u003e drop support for python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/82305185358d8ce21619ec0f324688a14a89c23b\"\u003e\u003ccode\u003e8230518\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/94f1202f08c6d00a9fe1ecf5c8cba9da84e4b22f\"\u003e\u003ccode\u003e94f1202\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/8c983ecd764e1d113d24522838c2a7312460b7eb\"\u003e\u003ccode\u003e8c983ec\u003c/code\u003e\u003c/a\u003e remove previously deprecated code (\u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/f5915f3bfcd9f9da0caf6cd4858bf68068c52963\"\u003e\u003ccode\u003ef5915f3\u003c/code\u003e\u003c/a\u003e set up pre-commit lite workflow\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/blinker/compare/1.8.2...1.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.11.12 to 2026.1.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c64d9f3a8496c0195548697f2080e716af66dd6a\"\u003e\u003ccode\u003ec64d9f3\u003c/code\u003e\u003c/a\u003e 2026.01.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4ac232f05a547071543d2fb069aa3c62b1dc79f3\"\u003e\u003ccode\u003e4ac232f\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/95ae4b20e8abb7fa708e751e346466d16b36211a\"\u003e\u003ccode\u003e95ae4b2\u003c/code\u003e\u003c/a\u003e Update CI workflow to use Ubuntu 24.04 and Python 3.14 stable (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/386\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/b72a7b1a40ae20755338d3132d8f880427b3b6fc\"\u003e\u003ccode\u003eb72a7b1\u003c/code\u003e\u003c/a\u003e Bump dessant/lock-threads from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ecc267216fbdcecb1b2aa2aa175152b773cc5ced\"\u003e\u003ccode\u003eecc2672\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6a897dbc1124b17f179ef225742fcda481ec96f3\"\u003e\u003ccode\u003e6a897db\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.11 to 8.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/27ca98ad845ee6d130a88301622c137893f71620\"\u003e\u003ccode\u003e27ca98a\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.9 to 7.0.11 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/56c59a63909cfd3162b37e7bc16956e64df0f737\"\u003e\u003ccode\u003e56c59a6\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6.0.0 to 6.0.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ae0021cd43a77bfba67d20a041469cdf6996570e\"\u003e\u003ccode\u003eae0021c\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/380\"\u003e#380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddf5d0b5d2a3d55fd92a79f141dbb5e074caf924\"\u003e\u003ccode\u003eddf5d0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.1 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.11.12...2026.01.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cffi` from 1.17.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-cffi/cffi/releases\"\u003ecffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only) - huge thanks to the folks at Quansight Labs for all the work to get this one sorted!\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only).\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/6366c01d84e9a78e7e85f12ebe9760ba5d19b6d3\"\u003e\u003ccode\u003e6366c01\u003c/code\u003e\u003c/a\u003e release 2.0.0 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/95c847663aec401e4003927a274e4de9b8595f4f\"\u003e\u003ccode\u003e95c8476\u003c/code\u003e\u003c/a\u003e 2.0.0 post beta backports (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/195cbda66b6be9297ef6d584644e50cfdcca4e8a\"\u003e\u003ccode\u003e195cbda\u003c/code\u003e\u003c/a\u003e Release 2.0.0b1 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b4bbe7940d3f76027534db1aecbae9b61c35221a\"\u003e\u003ccode\u003eb4bbe79\u003c/code\u003e\u003c/a\u003e fix version test to support beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/7ed073de66e713cf791b6fdfa23685c81fdfd6ad\"\u003e\u003ccode\u003e7ed073d\u003c/code\u003e\u003c/a\u003e Add support for the free-threaded build (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/67a170dc7972dc9361743690b38da3d963b200ef\"\u003e\u003ccode\u003e67a170d\u003c/code\u003e\u003c/a\u003e Change the license from MIT to MIT-no-attribution, which is the same without ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/92645ec9329feb03e3fa86240b40fe0fc37469d1\"\u003e\u003ccode\u003e92645ec\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support/testing (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/177\"\u003e#177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/2b81170583a898478a6996c9705d8c38ab7f73a1\"\u003e\u003ccode\u003e2b81170\u003c/code\u003e\u003c/a\u003e doc: update test commands in Section Testing/development tips (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/25172b84cf51cf58241f074ccd1efd9c7648cb43\"\u003e\u003ccode\u003e25172b8\u003c/code\u003e\u003c/a\u003e doc: update year (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b57a92c03eb2078a99c900519a37d18b4d52324f\"\u003e\u003ccode\u003eb57a92c\u003c/code\u003e\u003c/a\u003e issue 147: force-compute nested structs before parent structs.  Occurs mainly...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 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.1.7...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `comtypes` from 1.4.12 to 1.4.15\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/enthought/comtypes/releases\"\u003ecomtypes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eTYPE_E_ELEMENTNOTFOUND\u003c/code\u003e HRESULT constant value. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003eITypeInfo\u003c/code\u003e testing in \u003ccode\u003etest_typeinfo.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eImprove type hints for for generated dispmethods and properties. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEnhance tests for generated type hints. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove Internet Explorer dependency from \u003ccode\u003etest_QueryService.py\u003c/code\u003e and \u003ccode\u003etest_casesensitivity.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etest_ie.py\u003c/code\u003e to \u003ccode\u003etest_eventinterface.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSyntaxError\u003c/code\u003e in \u003ccode\u003eDispMethodAnnotator\u003c/code\u003e signature generation. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etest_msi.py\u003c/code\u003e to \u003ccode\u003etest_puredispatch.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003etest_wmi.py\u003c/code\u003e to \u003ccode\u003etest_variant_outparam.py\u003c/code\u003e. By \u003ca href=\"https://github.com/junk...\n\n_Description has been truncated_","html_url":"https://github.com/FreeCAD/Addons/pull/1","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreeCAD%2FAddons/issues/1","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1/packages"}},{"old_version":"3.6.1","new_version":"3.7.2","update_type":"minor","path":null,"pr_created_at":"2026-01-22T14:47:02.000Z","version_change":"3.6.1 → 3.7.2","issue":{"uuid":"3843278803","node_id":"PR_kwDOIoSAbM6-txLz","number":323,"state":"closed","title":"Bump the pip-updates group across 1 directory with 24 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-26T11:47:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-22T14:47:02.000Z","updated_at":"2026-01-26T11:48:00.000Z","time_to_close":334857,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-updates","update_count":24,"packages":[{"name":"aws-opentelemetry-distro","old_version":"0.12.2","new_version":"0.14.2","repository_url":"https://github.com/aws-observability/aws-otel-python-instrumentation"},{"name":"beautifulsoup4","old_version":"4.11.1","new_version":"4.14.3"},{"name":"black","old_version":"25.1.0","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"blinker","old_version":"1.7.0","new_version":"1.9.0","repository_url":"https://github.com/pallets-eco/blinker"},{"name":"fido2","old_version":"1.2.0","new_version":"2.1.1","repository_url":"https://github.com/Yubico/python-fido2"},{"name":"flake8","old_version":"7.0.0","new_version":"7.3.0","repository_url":"https://github.com/pycqa/flake8"},{"name":"flake8-bugbear","old_version":"22.10.27","new_version":"25.11.29","repository_url":"https://github.com/PyCQA/flake8-bugbear"},{"name":"flask","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/flask"},{"name":"flask-wtf","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/pallets-eco/flask-wtf"},{"name":"freezegun","old_version":"1.2.2","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"govuk-bank-holidays","old_version":"0.15","new_version":"0.18","repository_url":"https://github.com/ministryofjustice/govuk-bank-holidays"},{"name":"govuk-frontend-jinja","old_version":"3.3.0","new_version":"3.10.0","repository_url":"https://github.com/LandRegistry/govuk-frontend-jinja"},{"name":"humanize","old_version":"4.4.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"isort","old_version":"5.12.0","new_version":"7.0.0","repository_url":"https://github.com/PyCQA/isort"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"2.1.5","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"moto","old_version":"5.1.3","new_version":"5.1.20","repository_url":"https://github.com/getmoto/moto"},{"name":"notifications-python-client","old_version":"8.0.0","new_version":"10.0.1","repository_url":"https://github.com/alphagov/notifications-python-client"},{"name":"pyproj","old_version":"3.6.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytz","old_version":"2022.6","new_version":"2025.2","repository_url":"https://github.com/stub42/pytz"},{"name":"requests-mock","old_version":"1.10.0","new_version":"1.12.1","repository_url":"https://github.com/jamielennox/requests-mock"},{"name":"shapely","old_version":"2.1.1","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"wtforms","old_version":"3.1.2","new_version":"3.2.1","repository_url":"https://github.com/pallets-eco/wtforms"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-updates group with 24 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aws-opentelemetry-distro](https://github.com/aws-observability/aws-otel-python-instrumentation) | `0.12.2` | `0.14.2` |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.11.1` | `4.14.3` |\n| [black](https://github.com/psf/black) | `25.1.0` | `26.1.0` |\n| [blinker](https://github.com/pallets-eco/blinker) | `1.7.0` | `1.9.0` |\n| [fido2](https://github.com/Yubico/python-fido2) | `1.2.0` | `2.1.1` |\n| [flake8](https://github.com/pycqa/flake8) | `7.0.0` | `7.3.0` |\n| [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear) | `22.10.27` | `25.11.29` |\n| [flask](https://github.com/pallets/flask) | `3.0.2` | `3.0.3` |\n| [flask-wtf](https://github.com/pallets-eco/flask-wtf) | `1.2.1` | `1.2.2` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.2.2` | `1.5.5` |\n| [govuk-bank-holidays](https://github.com/ministryofjustice/govuk-bank-holidays) | `0.15` | `0.18` |\n| [govuk-frontend-jinja](https://github.com/LandRegistry/govuk-frontend-jinja) | `3.3.0` | `3.10.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.4.0` | `4.15.0` |\n| [isort](https://github.com/PyCQA/isort) | `5.12.0` | `7.0.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `2.1.5` | `3.0.3` |\n| [moto](https://github.com/getmoto/moto) | `5.1.3` | `5.1.20` |\n| [notifications-python-client](https://github.com/alphagov/notifications-python-client) | `8.0.0` | `10.0.1` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.6.1` | `3.7.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [pytz](https://github.com/stub42/pytz) | `2022.6` | `2025.2` |\n| [requests-mock](https://github.com/jamielennox/requests-mock) | `1.10.0` | `1.12.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.1.1` | `2.1.2` |\n| [wtforms](https://github.com/pallets-eco/wtforms) | `3.1.2` | `3.2.1` |\n\n\nUpdates `aws-opentelemetry-distro` from 0.12.2 to 0.14.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws-observability/aws-otel-python-instrumentation/releases\"\u003eaws-opentelemetry-distro's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd custom ADOT UserAgent for OTLP Spans Exporter\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable django instrumentation if DJANGO_SETTINGS_MODULE is not set\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/549\"\u003e#549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Service and Environment dimensions to EMF metrics when Application Signals EMF export is enabled\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/548\"\u003e#548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor configuration for adding Application Signals Dimensions to EMF exporter\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/552\"\u003e#552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix CVE-2025-66471. No associated PR since \u003ccode\u003eurllib3\u003c/code\u003e dependency will auto-bump to \u003ccode\u003e2.6.x\u003c/code\u003e upon release.\u003c/li\u003e\n\u003cli\u003e[PATCH] Add safety check for bedrock ConverseStream responses\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpstream Components\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e - 1.33.1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk\u003c/code\u003e - 1.33.1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e - 1.33.1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e - 1.33.1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-propagator-b3\u003c/code\u003e - 1.33.1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-propagator-jaeger\u003c/code\u003e - 1.33.1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-exporter-otlp-proto-common\u003c/code\u003e - 1.33.1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-sdk-extension-aws\u003c/code\u003e - 2.0.2\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-propagator-aws-xray\u003c/code\u003e - 1.0.1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-distro\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-processor-baggage\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-propagator-ot-trace\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aws-lambda\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aio-pika\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aiohttp-client\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aiokafka\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aiopg\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-asgi\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-asyncpg\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-boto\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-boto3sqs\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-botocore\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-celery\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-dbapi\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-django\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-elasticsearch\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-falcon\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-fastapi\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-flask\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-grpc\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-httpx\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-jinja2\u003c/code\u003e - 0.54b1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/aws-observability/aws-otel-python-instrumentation/blob/main/CHANGELOG.md\"\u003eaws-opentelemetry-distro's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e This CHANGELOG was created starting from version 0.12.0. Earlier changes are not documented here.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eFor any change that affects end users of this package, please add an entry under the \u003cstrong\u003eUnreleased\u003c/strong\u003e section. Briefly summarize the change and provide the link to the PR. Example:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eadd GenAI attribute support for Amazon Bedrock models\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/300\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf your change does not need a CHANGELOG entry, add the \u0026quot;skip changelog\u0026quot; label to your PR.\u003c/p\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Support new fields in X-Ray API responses\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/577\"\u003e#577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSign Lambda layer by AWS Signer\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport PyPI Signature\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/571\"\u003e#571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove redundant environment variable configuration in Lambda layer\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd custom ADOT UserAgent for OTLP Spans Exporter\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable django instrumentation if DJANGO_SETTINGS_MODULE is not set\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/549\"\u003e#549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PATCH] Add safety check for bedrock ConverseStream responses\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Service and Environment dimensions to EMF metrics when Application Signals EMF export is enabled\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/548\"\u003e#548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor configuration for adding Application Signals Dimensions to EMF exporter\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/552\"\u003e#552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix CVE-2025-66471 and CVE-2026-21441. No associated PR since \u003ccode\u003eurllib3\u003c/code\u003e dependency will auto-bump to the latest \u003ccode\u003e2.6.x\u003c/code\u003e version upon release.\u003c/li\u003e\n\u003cli\u003eUpdate opentelemetry-sdk-extension-aws to version 2.1.0, and remove unneeded Resource Detector patches\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd cloud.platform attribute to resource attributes in lambda\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.14.1 - 2025-12-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd custom ADOT UserAgent for OTLP Spans Exporter\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable django instrumentation if DJANGO_SETTINGS_MODULE is not set\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/549\"\u003e#549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Service and Environment dimensions to EMF metrics when Application Signals EMF export is enabled\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/548\"\u003e#548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor configuration for adding Application Signals Dimensions to EMF exporter\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/552\"\u003e#552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix CVE-2025-66471. No associated PR since \u003ccode\u003eurllib3\u003c/code\u003e dependency will auto-bump to \u003ccode\u003e2.6.x\u003c/code\u003e upon release.\u003c/li\u003e\n\u003cli\u003e[PATCH] Add safety check for bedrock ConverseStream responses\n(\u003ca href=\"https://redirect.github.com/aws-observability/aws-otel-python-instrumentation/pull/547\"\u003e#547\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\u003eSee full diff in \u003ca href=\"https://github.com/aws-observability/aws-otel-python-instrumentation/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beautifulsoup4` from 4.11.1 to 4.14.3\n\nUpdates `black` from 25.1.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.1.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 `blinker` from 1.7.0 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/blinker/releases\"\u003eblinker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.9.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.9.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.9.0/\"\u003ehttps://pypi.org/project/blinker/1.9.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/stable/#version-1-9-0\"\u003ehttps://blinker.readthedocs.io/en/stable/#version-1-9-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/blinker/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/blinker/milestone/1?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e, \u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/173\"\u003e#173\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.2\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.2/\"\u003ehttps://pypi.org/project/blinker/1.8.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-2\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-2\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify type for \u003ccode\u003e_async_wrapper\u003c/code\u003e and \u003ccode\u003e_sync_wrapper\u003c/code\u003e arguments. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/156\"\u003e#156\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.1\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.1/\"\u003ehttps://pypi.org/project/blinker/1.8.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-1\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore identity handling for \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eint\u003c/code\u003e senders. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/148\"\u003e#148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.WeakNamespace\u003c/code\u003e import. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/149\"\u003e#149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.receiver_connected import\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/153\"\u003e#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse types from \u003ccode\u003ecollections.abc\u003c/code\u003e instead of \u003ccode\u003etyping\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/150\"\u003e#150\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully specify exported types as reported by pyright. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/152\"\u003e#152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.0 feature release, which may include new features, remove previously deprecated code, or add new deprecations. The 1.8.x line is now the supported fix branch, support has ended for the 1.7.x line. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.0/\"\u003ehttps://pypi.org/project/blinker/1.8.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-0\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-0\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;blinker\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/128\"\u003e#128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify that the deprecated \u003ccode\u003etemporarily_connected_to\u003c/code\u003e will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated global \u003ccode\u003ereceiver_connected\u003c/code\u003e signal and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated \u003ccode\u003eWeakNamespace\u003c/code\u003e and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eGreatly simplify how the library uses weakrefs. This is a significant change internally but should not affect any public API. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/144\"\u003e#144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose the namespace used by \u003ccode\u003esignal()\u003c/code\u003e as \u003ccode\u003edefault_namespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/145\"\u003e#145\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-eco/blinker/blob/main/CHANGES.rst\"\u003eblinker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e175\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e,\n\u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. :pr:\u003ccode\u003e172\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down.\n:issue:\u003ccode\u003e173\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.2\u003c/h2\u003e\n\u003cp\u003eReleased 2024-05-06\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify type for \u003ccode\u003e_async_wrapper\u003c/code\u003e and \u003ccode\u003e_sync_wrapper\u003c/code\u003e arguments.\n:pr:\u003ccode\u003e156\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.1\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-28\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore identity handling for \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eint\u003c/code\u003e senders. :pr:\u003ccode\u003e148\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.WeakNamespace\u003c/code\u003e import. :pr:\u003ccode\u003e149\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.receiver_connected import\u003c/code\u003e. :pr:\u003ccode\u003e153\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse types from \u003ccode\u003ecollections.abc\u003c/code\u003e instead of \u003ccode\u003etyping\u003c/code\u003e. :pr:\u003ccode\u003e150\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFully specify exported types as reported by pyright. :pr:\u003ccode\u003e152\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;blinker\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e128\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSpecify that the deprecated \u003ccode\u003etemporarily_connected_to\u003c/code\u003e will be removed in\nthe next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated global \u003ccode\u003ereceiver_connected\u003c/code\u003e\nsignal and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated \u003ccode\u003eWeakNamespace\u003c/code\u003e and specify\nthat it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eGreatly simplify how the library uses weakrefs. This is a significant change\ninternally but should not affect any public API. :pr:\u003ccode\u003e144\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eExpose the namespace used by \u003ccode\u003esignal()\u003c/code\u003e as \u003ccode\u003edefault_namespace\u003c/code\u003e.\n:pr:\u003ccode\u003e145\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-eco/blinker/commit/669f3a027828d19786e708b511277fabcd6b9532\"\u003e\u003ccode\u003e669f3a0\u003c/code\u003e\u003c/a\u003e release version 1.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/cfe116fa7912d8dcb0deee4907aa63d1efaadf5b\"\u003e\u003ccode\u003ecfe116f\u003c/code\u003e\u003c/a\u003e try disabling attestions on test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/16e4bd70a19353d9d7cf47e4df7de54936296377\"\u003e\u003ccode\u003e16e4bd7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/174\"\u003e#174\u003c/a\u003e from projectgus/bugfix/weakref_disconnect_shutdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/42561fdf065032f5c39aea04d8c3fb4db93f73f3\"\u003e\u003ccode\u003e42561fd\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;Exception ignored\u0026quot; in weakref callback during interpreter shutdown.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/dcce3e97743494433025e0b68f742f3582b6ba6a\"\u003e\u003ccode\u003edcce3e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e from pallets-eco/drop-python3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/efa95eaa080b0d4a8dcfc46ad1f387ea1ddebd97\"\u003e\u003ccode\u003eefa95ea\u003c/code\u003e\u003c/a\u003e drop support for python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/82305185358d8ce21619ec0f324688a14a89c23b\"\u003e\u003ccode\u003e8230518\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/94f1202f08c6d00a9fe1ecf5c8cba9da84e4b22f\"\u003e\u003ccode\u003e94f1202\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/8c983ecd764e1d113d24522838c2a7312460b7eb\"\u003e\u003ccode\u003e8c983ec\u003c/code\u003e\u003c/a\u003e remove previously deprecated code (\u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/f5915f3bfcd9f9da0caf6cd4858bf68068c52963\"\u003e\u003ccode\u003ef5915f3\u003c/code\u003e\u003c/a\u003e set up pre-commit lite workflow\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/blinker/compare/1.7.0...1.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fido2` from 1.2.0 to 2.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Yubico/python-fido2/releases\"\u003efido2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epython-fido2 2.1.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.1.1 (released 2026-01-19)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Platform detection in fido2.hid module for BSD's.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epython-fido2 2.1.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.1.0 (released 2026-01-14)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCTAP 2.3 support:\n\u003cul\u003e\n\u003cli\u003eAdd new GetInfo fields: enc_cred_store_state.\u003c/li\u003e\n\u003cli\u003eAdd support for pinComplexityPolicy extension.\u003c/li\u003e\n\u003cli\u003eAdd thirdPartyPayment bit to credman.\u003c/li\u003e\n\u003cli\u003eCheck support for config subcommands.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eWebAuthn:\n\u003cul\u003e\n\u003cli\u003eAllow UserEntity without 'name' field for improved spec compliance.\u003c/li\u003e\n\u003cli\u003eUpdate MDS3 dataclasses with new fields.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFido2Client:\n\u003cul\u003e\n\u003cli\u003eFallback to PIN after UV_BLOCKED error.\u003c/li\u003e\n\u003cli\u003eImprove preflight handling when message exceeds maximum size.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eWindowsClient:\n\u003cul\u003e\n\u003cli\u003eFix: Parse 'credentialProtectionPolicy' properly.\u003c/li\u003e\n\u003cli\u003eUpdate win_api.py from latest webauthn.h.\u003c/li\u003e\n\u003cli\u003eAdd support for hmac-secret-mc extension.\u003c/li\u003e\n\u003cli\u003eAdd support for hints.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDevelopment:\n\u003cul\u003e\n\u003cli\u003eSwitch from Poetry to uv for project management.\u003c/li\u003e\n\u003cli\u003eAdd pyright and ty for improved type checking.\u003c/li\u003e\n\u003cli\u003eReplace bandit and flake8 with ruff for linting.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epython-fido2 2.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.0.0 (released 2025-05-20)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSee also the migration guide: doc/Migration_1-2.adoc.\u003c/li\u003e\n\u003cli\u003ePython 3.10 or later is now required.\u003c/li\u003e\n\u003cli\u003eWebAuthn dataclasses have been updated to align with the WebAuthn Level 3\nWorking Draft. Constructors now require keyword arguments (\u003ccode\u003ekwargs_only=True\u003c/code\u003e),\nand serialization to/from dictionaries is compatible with standardized JSON\nformats.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003efeatures.webauthn_json_mapping\u003c/code\u003e flag has been removed, as its\nbehavior (standardized JSON mapping) is now default.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFido2Client\u003c/code\u003e and \u003ccode\u003eWindowsClient\u003c/code\u003e constructors now accept a\n\u003ccode\u003eClientDataCollector\u003c/code\u003e instance instead of \u003ccode\u003eorigin\u003c/code\u003e and \u003ccode\u003everify\u003c/code\u003e parameters.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWindowsClient\u003c/code\u003e has been relocated to \u003ccode\u003efido2.client.windows\u003c/code\u003e. Importing this\nclass on non-Windows platforms will now raise an \u003ccode\u003eImportError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFido2Client\u003c/code\u003e methods now return \u003ccode\u003eRegistrationResponse\u003c/code\u003e and\n\u003ccode\u003eAuthenticationResponse\u003c/code\u003e objects, instead of raw attestation/assertion data.\u003c/li\u003e\n\u003cli\u003eCTAP2/WebAuthn extension handling has been redesigned. \u003ccode\u003eFido2Client\u003c/code\u003e now\nexpects a list of \u003ccode\u003eCtap2Extension\u003c/code\u003e instances. Default behavior includes\nextensions commonly supported by browsers.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003efido2.cbor\u003c/code\u003e module's \u003ccode\u003eload_x\u003c/code\u003e and \u003ccode\u003edump_x\u003c/code\u003e functions have been made\nprivate (renamed with a leading underscore) and should not be used directly.\u003c/li\u003e\n\u003cli\u003ePreviously deprecated functions and APIs have been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/Yubico/python-fido2/blob/main/NEWS\"\u003efido2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eVersion 2.1.1 (released 2026-01-19)\n** Fix: Platform detection in fido2.hid module for BSD's.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVersion 2.1.0 (released 2026-01-14)\n** CTAP 2.3 support:\n*** Add new GetInfo fields: enc_cred_store_state.\n*** Add support for pinComplexityPolicy extension.\n*** Add thirdPartyPayment bit to credman.\n*** Check support for config subcommands.\n** WebAuthn:\n*** Allow UserEntity without 'name' field for improved spec compliance.\n*** Update MDS3 dataclasses with new fields.\n** Fido2Client:\n*** Fallback to PIN after UV_BLOCKED error.\n*** Improve preflight handling when message exceeds maximum size.\n** WindowsClient:\n*** Fix: Parse 'credentialProtectionPolicy' properly.\n*** Update win_api.py from latest webauthn.h.\n*** Add support for hmac-secret-mc extension.\n*** Add support for hints.\n** Development:\n*** Switch from Poetry to uv for project management.\n*** Add pyright and ty for improved type checking.\n*** Replace bandit and flake8 with ruff for linting.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVersion 2.0.0 (released 2025-05-20)\n** See also the migration guide: doc/Migration_1-2.adoc.\n** Python 3.10 or later is now required.\n** WebAuthn dataclasses have been updated to align with the WebAuthn Level 3\nWorking Draft. Constructors now require keyword arguments (\u003ccode\u003ekwargs_only=True\u003c/code\u003e),\nand serialization to/from dictionaries is compatible with standardized JSON\nformats.\n** The \u003ccode\u003efeatures.webauthn_json_mapping\u003c/code\u003e flag has been removed, as its\nbehavior (standardized JSON mapping) is now default.\n** \u003ccode\u003eFido2Client\u003c/code\u003e and \u003ccode\u003eWindowsClient\u003c/code\u003e constructors now accept a\n\u003ccode\u003eClientDataCollector\u003c/code\u003e instance instead of \u003ccode\u003eorigin\u003c/code\u003e and \u003ccode\u003everify\u003c/code\u003e parameters.\n** \u003ccode\u003eWindowsClient\u003c/code\u003e has been relocated to \u003ccode\u003efido2.client.windows\u003c/code\u003e. Importing this\nclass on non-Windows platforms will now raise an \u003ccode\u003eImportError\u003c/code\u003e.\n** \u003ccode\u003eFido2Client\u003c/code\u003e methods now return \u003ccode\u003eRegistrationResponse\u003c/code\u003e and\n\u003ccode\u003eAuthenticationResponse\u003c/code\u003e objects, instead of raw attestation/assertion data.\n** CTAP2/WebAuthn extension handling has been redesigned. \u003ccode\u003eFido2Client\u003c/code\u003e now\nexpects a list of \u003ccode\u003eCtap2Extension\u003c/code\u003e instances. Default behavior includes\nextensions commonly supported by browsers.\n** The \u003ccode\u003efido2.cbor\u003c/code\u003e module's \u003ccode\u003eload_x\u003c/code\u003e and \u003ccode\u003edump_x\u003c/code\u003e functions have been made\nprivate (renamed with a leading underscore) and should not be used directly.\n** Previously deprecated functions and APIs have been removed.\n** The \u003ccode\u003e__version__\u003c/code\u003e attribute in \u003ccode\u003efido2/__init__.py\u003c/code\u003e has been removed. Use\n\u003ccode\u003eimportlib.metadata.version('fido2')\u003c/code\u003e to get the package version.\n** Add new GetInfo fields based on CTAP 2.2.\n** Add support for Persistent PinUvAuthToken and encIdentifier.\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/Yubico/python-fido2/commit/0f10447369f147172490e781c57bd5f5b81c5c2b\"\u003e\u003ccode\u003e0f10447\u003c/code\u003e\u003c/a\u003e Prepare version 2.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/ad65653688a1646db4390fb6e862c96282f05992\"\u003e\u003ccode\u003ead65653\u003c/code\u003e\u003c/a\u003e Add comment to avoid accidental change in the future\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/e14b1ea205379d5b5511aad31635bcbf5e11c8f2\"\u003e\u003ccode\u003ee14b1ea\u003c/code\u003e\u003c/a\u003e Merge PR \u003ca href=\"https://redirect.github.com/Yubico/python-fido2/issues/276\"\u003e#276\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/70336138f3226608b1153ea7a10300030723517b\"\u003e\u003ccode\u003e7033613\u003c/code\u003e\u003c/a\u003e Properly detect platform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/2a063f11332976cda21d5fee78c7045bb43e76f0\"\u003e\u003ccode\u003e2a063f1\u003c/code\u003e\u003c/a\u003e Merge PR \u003ca href=\"https://redirect.github.com/Yubico/python-fido2/issues/275\"\u003e#275\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/48dca0d3dcc264a6907c25597f88e21438413deb\"\u003e\u003ccode\u003e48dca0d\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/d27a282fe3e0cafbe0b05437bd24666ec5cd97d0\"\u003e\u003ccode\u003ed27a282\u003c/code\u003e\u003c/a\u003e Prepare version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/1c6dc4208bb8eafad3551e31777e14a0128fde9a\"\u003e\u003ccode\u003e1c6dc42\u003c/code\u003e\u003c/a\u003e Improve test cleanup for certain keys\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/c4e086760a9c98198a5d6f1873678f5f6817bc3e\"\u003e\u003ccode\u003ec4e0867\u003c/code\u003e\u003c/a\u003e Fix tests for non-HID devices\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/dd25d385549812dcd181a38e10486fdfab3f6a8d\"\u003e\u003ccode\u003edd25d38\u003c/code\u003e\u003c/a\u003e Bump example deps\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Yubico/python-fido2/compare/1.2.0...2.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8` from 7.0.0 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/c48217e1fc006c2dddd14df54e83b67da15de5cd\"\u003e\u003ccode\u003ec48217e\u003c/code\u003e\u003c/a\u003e Release 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/f9e0f33281d5bb892cae2c674ac398439d99c732\"\u003e\u003ccode\u003ef9e0f33\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1986\"\u003e#1986\u003c/a\u003e from PyCQA/document-f542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6bcdb628597fa2d03494965089ff87a492ffc1e9\"\u003e\u003ccode\u003e6bcdb62\u003c/code\u003e\u003c/a\u003e document F542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/70a15b8890d5bdf8c449ebb1b5259bd0140cc16b\"\u003e\u003ccode\u003e70a15b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1985\"\u003e#1985\u003c/a\u003e from PyCQA/upgrade-deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/4941a3e32e54488698ecbc23993bfeb2a60c0fc5\"\u003e\u003ccode\u003e4941a3e\u003c/code\u003e\u003c/a\u003e upgrade pyflakes / pycodestyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/23e4005c5501999c29e1e3774de7ed18d1e4e22d\"\u003e\u003ccode\u003e23e4005\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1983\"\u003e#1983\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/019424b80d3d7d5d8a2a1638f5877080546e3f46\"\u003e\u003ccode\u003e019424b\u003c/code\u003e\u003c/a\u003e add support for t-strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6b6f3d5fefecc994a06f425c18c3cddc9b71e4a4\"\u003e\u003ccode\u003e6b6f3d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1980\"\u003e#1980\u003c/a\u003e from PyCQA/asottile-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/8dfa6695b4fb1e1401b357367a0a71037d29f6aa\"\u003e\u003ccode\u003e8dfa669\u003c/code\u003e\u003c/a\u003e add rtd sphinx config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/ce3411118382d9332feb2749c8f417d10bfa2584\"\u003e\u003ccode\u003ece34111\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1976\"\u003e#1976\u003c/a\u003e from PyCQA/document-f824\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pycqa/flake8/compare/7.0.0...7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8-bugbear` from 22.10.27 to 25.11.29\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/releases\"\u003eflake8-bugbear's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.11.29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB043: Add new check to state don't call delattr with constant (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/514\"\u003e#514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB042: ignore overloaded init, ignore if str+pickle dunder, improve README\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.10.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB042: New check for reminding to call super().\u003cstrong\u003einit\u003c/strong\u003e in custom exceptions\u003c/li\u003e\n\u003cli\u003eB028: Skip if skip_file_prefixes is used (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/503\"\u003e#503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB912: New check for \u003ccode\u003emap()\u003c/code\u003e without an explicit \u003ccode\u003estrict=\u003c/code\u003e parameter. (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/516\"\u003e#516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd python3.14 Support / CI\u003c/li\u003e\n\u003cli\u003eRemove python3.9 support / CI\u003c/li\u003e\n\u003cli\u003eflake8-bugbear now requires at least Python 3.10, like the next release of flake8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.12.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB012 and B025 now also handle try/except* (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip B028 if warnings.warn is called with \u003ccode\u003e*args\u003c/code\u003e or \u003ccode\u003e**kwargs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd B911: itertools.batched without strict= (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReadme has anchors per check (they do not seem to render on GitHub tho)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.10.31\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB041: New dictionary same key AND value check (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/496\"\u003e#496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB037: Fix typo in error message\u003c/li\u003e\n\u003cli\u003eB024: No longer treats assigned class variables as abstract (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/471\"\u003e#471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump required attrs version to 22.2.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.8.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB910: implement to suggest using Counter() instead of defaultdict(int) (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/489\"\u003e#489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB901: Do not trigger with explicit Generator return type (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/481\"\u003e#481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB008: add some comments, rename b008_extend_immutable_calls (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB040: exception with note added not reraised or used (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB039, Add \u003ccode\u003eContextVar\u003c/code\u003e with mutable literal or function call as default\u003c/li\u003e\n\u003cli\u003eB040: Add Exception with added note not reraised. (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRun tests in Python 3.13\u003c/li\u003e\n\u003cli\u003eType annotated code (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/481\"\u003e#481\u003c/a\u003e + \u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/483\"\u003e#483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace hash with unsafe_hash (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.4.26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB909: Fix false positive affecting containers of mutables (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/469\"\u003e#469\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.4.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB950: Add pragma comment to line length ignores (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/463\"\u003e#463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB909: Add more cases to detect + more container mutating functions (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB902: Remove decorators named validator and root_validator from B902 checks (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/459\"\u003e#459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB038: Change B038 to B909 and make it optional (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/456\"\u003e#456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB038: Restrict rule to mutation functions only (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/453\"\u003e#453\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.16\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/a5ace0a2fe0697c42bca1c37cebc3d95e2c10df9\"\u003e\u003ccode\u003ea5ace0a\u003c/code\u003e\u003c/a\u003e Update CHANGES + move to version 25.11.29 to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/0afdcce2e33cf8fcbfe22d2d6f24e33b2f66eb1a\"\u003e\u003ccode\u003e0afdcce\u003c/code\u003e\u003c/a\u003e b042: ignore overloaded init, ignore if str+pickle dunder, improve README (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/2d2fd4d8abb1e3c5c831253ca8afd1717d4221e2\"\u003e\u003ccode\u003e2d2fd4d\u003c/code\u003e\u003c/a\u003e Add B043: Do not call delattr with constant (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/514\"\u003e#514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/9677fa878cdb35f82e79a51b37d635256edd84df\"\u003e\u003ccode\u003e9677fa8\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/ad43575c1a2cc58efca7148f5036ed3d9cd54cdc\"\u003e\u003ccode\u003ead43575\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/cdd75f1942294a152f864c978376f59b2ec08558\"\u003e\u003ccode\u003ecdd75f1\u003c/code\u003e\u003c/a\u003e Update CHANGES + move to version 25.10.21 to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/4601fe6e1993d7a8309dd26105a55d8c77aeae0d\"\u003e\u003ccode\u003e4601fe6\u003c/code\u003e\u003c/a\u003e Drop 3.9 support + add 3.14 CI (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/39699611b4b399a6e81d726e76c58cbcdffa25ab\"\u003e\u003ccode\u003e3969961\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/6276149b6807114307569d67be8516dae306beab\"\u003e\u003ccode\u003e6276149\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/d264420dec52a034efe05f160c4ac157f053c6e8\"\u003e\u003ccode\u003ed264420\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/compare/22.10.27...25.11.29\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` 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/flask/releases\"\u003eflask'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 a fix release for the 3.0.x feature branch.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.0.3/\"\u003ehttps://pypi.org/project/Flask/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/3.0.x/changes/#version-3-0-3\"\u003ehttps://flask.palletsprojects.com/en/3.0.x/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/35?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/35?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5448\"\u003e#5448\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't initialize the \u003ccode\u003ecli\u003c/code\u003e attribute in the sansio scaffold, but rather in the \u003ccode\u003eFlask\u003c/code\u003e concrete class. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5270\"\u003e#5270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-07\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e5448\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't initialize the \u003ccode\u003ecli\u003c/code\u003e attribute in the sansio scaffold, but rather in\nthe \u003ccode\u003eFlask\u003c/code\u003e concrete class. :pr:\u003ccode\u003e5270\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c12a5d874c5a014495eb2db8a73f40037bc813ac\"\u003e\u003ccode\u003ec12a5d8\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/5e22cc9eec0d1da2da706ccf724fde702b30d5f2\"\u003e\u003ccode\u003e5e22cc9\u003c/code\u003e\u003c/a\u003e Don't set the cli attribute in the sansio scaffold (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/5fdce4c331ac530280cc941179d364a07f4a1088\"\u003e\u003ccode\u003e5fdce4c\u003c/code\u003e\u003c/a\u003e Don't set the cli attribute in the sansio scaffold\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/adb7dd99c295a28726c8d818fba54c7b3f958ecc\"\u003e\u003ccode\u003eadb7dd9\u003c/code\u003e\u003c/a\u003e don't access app.logger when configuring app.logger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/b73939095564ec5c088c53e7595b00d174a018f5\"\u003e\u003ccode\u003eb739390\u003c/code\u003e\u003c/a\u003e support FIPS builds without SHA-1 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5460\"\u003e#5460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/db461112c70d5f2bf93c7a6ac27eeb665c232dd0\"\u003e\u003ccode\u003edb46111\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/7320e311a0a3f190351173f8be90cab31dadbf73\"\u003e\u003ccode\u003e7320e31\u003c/code\u003e\u003c/a\u003e start version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/87d5f5b9a9697434e6d972b021201105eabb54e6\"\u003e\u003ccode\u003e87d5f5b\u003c/code\u003e\u003c/a\u003e update project files (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5457\"\u003e#5457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/d5e321b792cd6f3cd7b072d175f47eacbd5ee14f\"\u003e\u003ccode\u003ed5e321b\u003c/code\u003e\u003c/a\u003e release version 3.0.2 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5403\"\u003e#5403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pallets/flask/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 `flask-wtf` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-wtf/releases\"\u003eflask-wtf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove the project to the pallets-eco organization. \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/602\"\u003e#602\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.8. Start support for Python 3.13. \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/603\"\u003e#603\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-eco/flask-wtf/blob/main/docs/changes.rst\"\u003eflask-wtf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2024-10-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMove the project to the pallets-eco organization. :pr:\u003ccode\u003e602\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.8. Start support for Python 3.13. :pr:\u003ccode\u003e603\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-eco/flask-wtf/commit/2e142951788d8209815fd4797c93f6f3c275ed71\"\u003e\u003ccode\u003e2e14295\u003c/code\u003e\u003c/a\u003e chore: pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/552b7a763235abbd69efc732147ec1e2c4c61ac8\"\u003e\u003ccode\u003e552b7a7\u003c/code\u003e\u003c/a\u003e chore: bump to 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/32f12767656e0f4304221e62c027fe99b67ea037\"\u003e\u003ccode\u003e32f1276\u003c/code\u003e\u003c/a\u003e chore: install 'build' dependency for the release GHA workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/f712367414346196e7fc436ad771533ed2c98898\"\u003e\u003ccode\u003ef712367\u003c/code\u003e\u003c/a\u003e chore: dependencies update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/b929162626b813b7ee2a8edb58fce861cd2e34af\"\u003e\u003ccode\u003eb929162\u003c/code\u003e\u003c/a\u003e chore: use Flask inspired GHA workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/07049e3b87aec17c693dd8cd6993e09bce679705\"\u003e\u003ccode\u003e07049e3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/604\"\u003e#604\u003c/a\u003e from azmeuk/flask-pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/49a13806e95b87735f7c196663ef5155a752dfec\"\u003e\u003ccode\u003e49a1380\u003c/code\u003e\u003c/a\u003e chore: pre-commit configuration insipred from Flask\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/f2bbd1b67a982131278488cc18ba1f65b3caafac\"\u003e\u003ccode\u003ef2bbd1b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/603\"\u003e#603\u003c/a\u003e from azmeuk/py313\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/d3cd8bf1e0d4dbd15daf1cbbf521da41e2c30d50\"\u003e\u003ccode\u003ed3cd8bf\u003c/code\u003e\u003c/a\u003e chore: stop support for python 3.8; start support for python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/0b2e5e413efb614b47f5deb8416847555e2ea07a\"\u003e\u003ccode\u003e0b2e5e4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/602\"\u003e#602\u003c/a\u003e from azmeuk/pallets-eco\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-wtf/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.2.2 to 1.5.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spulec/freezegun/blob/master/CHANGELOG\"\u003efreezegun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow parametrized arguments called 'func' (Broken in 1.5.4)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Ability to yield fixtures (broken in 1.5.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility with pytest 8.4.0 when using fixtures\u003c/li\u003e\n\u003cli\u003eAdd (back) class-decorator overload to guarantee Pytype understands it\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.7\u003c/li\u003e\n\u003cli\u003eExplicitly marks support for Python 3.13\u003c/li\u003e\n\u003cli\u003eImproved project documentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the typing of the \u003ccode\u003etick()\u003c/code\u003e method, and improve it's behaviour.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe default ignore list now contains the \u003ccode\u003equeue\u003c/code\u003e-package\u003c/li\u003e\n\u003cli\u003eAdded a missing \u003ccode\u003emove_to\u003c/code\u003e-function when calling \u003ccode\u003efreeze_time(tick=True)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixes a rounding error in \u003ccode\u003etime.time_ns()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed a bug where the default ignore list could not be empty (\u003ccode\u003econfigure(default_ignore_list=[])\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAll \u003ccode\u003etick()\u003c/code\u003e methods now return the new datetime (instead of None)\u003c/li\u003e\n\u003cli\u003eType improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e-support from 1.3.x introduced quite a few  bugs, so that functionality is now hidden behind a flag:\n\u003ccode\u003ewith freeze_time('1970-01-02', real_asyncio=True):\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded documentation for the \u003ccode\u003ereal_asyncio\u003c/code\u003e parameter in the \u003ccode\u003eREADME.rst\u003c/code\u003e file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the release number in the build\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003easyncio\u003c/code\u003e support to avoid \u003ccode\u003eawait asyncio.sleep(1)\u003c/code\u003e hanging forever.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.12\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/spulec/freezegun/commit/c9bf52c5aa12ea1b5b8647a136a92504ea071f2f\"\u003e\u003ccode\u003ec9bf52c\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0f2bd7ed8b420da73372f4cbb0207b777caa66e9\"\u003e\u003ccode\u003e0f2bd7e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/582\"\u003e#582\u003c/a\u003e from spulec/fixture-called-func\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/a6080557cbcbe4891843934c1334430bb1c5ead7\"\u003e\u003ccode\u003ea608055\u003c/code\u003e\u003c/a\u003e Allow parametrized arguments with name 'func'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/2bb47113a5f9f290d26630c92732e58f49557179\"\u003e\u003ccode\u003e2bb4711\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/7599eeea16b8f206e881892dc104128a5b36de82\"\u003e\u003ccode\u003e7599eee\u003c/code\u003e\u003c/a\u003e Add 1.5.4 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0d00e7ddd9ad33fc63fbed29af17853b18bc3c61\"\u003e\u003ccode\u003e0d00e7d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/579\"\u003e#579\u003c/a\u003e from zsh8/decorate_generator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/10c93f2d6c98f82e54470b05144cd0f17d3e1b46\"\u003e\u003ccode\u003e10c93f2\u003c/code\u003e\u003c/a\u003e fix: preserve functionality in pytest yield fixtures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/d2e0a00addb0653b0cf3be65f8fa7137c7e3bda1\"\u003e\u003ccode\u003ed2e0a00\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/6229e27d27ec61c4c55d7006db7ede6f16d7280a\"\u003e\u003ccode\u003e6229e27\u003c/code\u003e\u003c/a\u003e Add 1.5.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/3111775d6e484f55a85030c626180b592adef569\"\u003e\u003ccode\u003e3111775\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/576\"\u003e#576\u003c/a\u003e from spulec/support-fixtures-pytest-840\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spulec/freezegun/compare/1.2.2...1.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-bank-holidays` from 0.15 to 0.18\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/releases\"\u003egovuk-bank-holidays's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18\u003c/h2\u003e\n\u003cp\u003eAdded support for python 3.14 and removed 3.9 which has reached end-of-life.\nMigrated to trusted publishing.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.17...0.18\"\u003eChanges\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.17\u003c/h2\u003e\n\u003cp\u003eAdded timeout for source downloads (default being GOV.UK) before falling back to cache. With thanks to \u003ca href=\"https://github.com/ibrechin\"\u003e\u003ccode\u003e@​ibrechin\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.16...0.17\"\u003eChanges\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.16\u003c/h2\u003e\n\u003cp\u003eRemoved support for python versions older than 3.9 since they have reached end-of-life and are not available for testing in Github Actions.\nAdded python 3.13 to testing matrix.\nUpdated cached bank holidays file to include latest holidays published by GOV.UK.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.15...0.16\"\u003eChanges\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/ministryofjustice/govuk-bank-holidays/commit/d0eaced4110ac7fe7db4852b98a7fa878e3d44c8\"\u003e\u003ccode\u003ed0eaced\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/govuk-bank-holidays/issues/28\"\u003e#28\u003c/a\u003e from ministryofjustice/trusted-publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/d0edb45645dcebce3889010265b7f1593f83b0e9\"\u003e\u003ccode\u003ed0edb45\u003c/code\u003e\u003c/a\u003e Move to trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/6ccc756d9c91113f3be831e091a3545ee5b2b004\"\u003e\u003ccode\u003e6ccc756\u003c/code\u003e\u003c/a\u003e Update Github Actions dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/cf09505bbbb87a1c623144536707e2322f7cb528\"\u003e\u003ccode\u003ecf09505\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/8df5dea82c1369410c01e0e1ef406cd311d96b85\"\u003e\u003ccode\u003e8df5dea\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/a15061da364cb2927c441289a9defb767fa95551\"\u003e\u003ccode\u003ea15061d\u003c/code\u003e\u003c/a\u003e Bump to 0.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/7ccd9106a893cb6a470734e4c4e8a84439b7b24e\"\u003e\u003ccode\u003e7ccd910\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/govuk-bank-holidays/issues/25\"\u003e#25\u003c/a\u003e from ibrechin/add-request-timeout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/11dd549d0fd663e510a40772f9ebb5ec87f72fca\"\u003e\u003ccode\u003e11dd549\u003c/code\u003e\u003c/a\u003e Add configurable timeout for downloading live holiday data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/11ddc9c2e3bba5e140a5d17d54e7dd38aaa7fb56\"\u003e\u003ccode\u003e11ddc9c\u003c/code\u003e\u003c/a\u003e Bump to 0.16\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/5ad9b7b086865aa779e9a087555f841df80a858d\"\u003e\u003ccode\u003e5ad9b7b\u003c/code\u003e\u003c/a\u003e Remove (official) support and testing on python \u0026lt; 3.9 (though it should conti...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.15...0.18\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-frontend-jinja` from 3.3.0 to 3.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases\"\u003egovuk-frontend-jinja's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.14.0\"\u003eGOV.UK Frontend v5.14.0\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.9.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.13.0\"\u003eGOV.UK Frontend v5.13.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated from \u003ccode\u003esetup.py\u003c/code\u003e to \u003ccode\u003epyproject.toml\u003c/code\u003e for packaging config\u003c/li\u003e\n\u003cli\u003eMigrated from \u003ccode\u003epip-tools\u003c/code\u003e to \u003ccode\u003epipenv\u003c/code\u003e for dependency management\u003c/li\u003e\n\u003cli\u003eReduced test Docker image size from 1.28GB to 400MB (-69.5%)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.8.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.12.0\"\u003eGOV.UK Frontend v5.12.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.9 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/82\"\u003e#82\u003c/a\u003e - Templates use lower filter on values where it should not\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/tim-s-ccs\"\u003e\u003ccode\u003e@​tim-s-ccs\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/samuelhwilliams\"\u003e\u003ccode\u003e@​samuelhwilliams\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.11.1\"\u003eGOV.UK Frontend v5.11.1\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.10.0\"\u003eGOV.UK Frontend v5.10.0\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIntroduced rebranding logic in \u003ccode\u003eheader\u003c/code\u003e, \u003ccode\u003efooter\u003c/code\u003e, and \u003ccode\u003eservice-navigation\u003c/code\u003e components.\u003c/li\u003e\n\u003cli\u003eAdded a new \u003ccode\u003elogo.html\u003c/code\u003e macro for enhanced branding capabilities.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003etemplate.html\u003c/code\u003e to handle rebranding dynamically through variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgraded dependencies in \u003ccode\u003erequirements-test-*.txt\u003c/code\u003e files to the latest minor/patch versions:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eclick\u003c/code\u003e → v8.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflake8\u003c/code\u003e → v7.2.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/blob/main/CHANGELOG.md\"\u003egovuk-frontend-jinja's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.10.0\"\u003e3.10.0\u003c/a\u003e - 15/01/2026\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.14.0\"\u003eGOV.UK Frontend v5.14.0\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.9.0\"\u003e3.9.0\u003c/a\u003e - 13/10/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.13.0\"\u003eGOV.UK Frontend v5.13.0\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated from \u003ccode\u003esetup.py\u003c/code\u003e to \u003ccode\u003epyproject.toml\u003c/code\u003e for packaging config\u003c/li\u003e\n\u003cli\u003eMigrated from \u003ccode\u003epip-tools\u003c/code\u003e to \u003ccode\u003epipenv\u003c/code\u003e for dependency management\u003c/li\u003e\n\u003cli\u003eReduced test Docker image size from 1.28GB to 400MB (-69.5%)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.8.0\"\u003e3.8.0\u003c/a\u003e - 06/10/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.12.0\"\u003eGOV.UK Frontend v5.12.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.9 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/alphagov/emergency-alerts-admin/pull/323","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphagov%2Femergency-alerts-admin/issues/323","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/323/packages"}},{"old_version":"3.5.0","new_version":"3.7.2","update_type":"minor","path":null,"pr_created_at":"2025-12-22T22:32:38.000Z","version_change":"3.5.0 → 3.7.2","issue":{"uuid":"3755433246","node_id":"PR_kwDOAozSis66Opa_","number":516,"state":"open","title":"Bump the all-deps group across 1 directory with 72 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-22T22:32:38.000Z","updated_at":"2025-12-22T22:35:08.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-deps","update_count":72,"packages":[{"name":"aiofiles","old_version":"24.1.0","new_version":"25.1.0","repository_url":"https://github.com/Tinche/aiofiles"},{"name":"aiosqlite","old_version":"0.20.0","new_version":"0.22.0","repository_url":"https://github.com/omnilib/aiosqlite"},{"name":"antlr4-python3-runtime","old_version":"4.13.1","new_version":"4.13.2"},{"name":"asyncua","old_version":"1.1.5","new_version":"1.1.8","repository_url":"https://github.com/FreeOpcUa/opcua-asyncio"},{"name":"atomicwrites","old_version":"1.4.0","new_version":"1.4.1","repository_url":"https://github.com/untitaker/python-atomicwrites"},{"name":"autobahn","old_version":"21.3.1","new_version":"25.12.2","repository_url":"https://github.com/crossbario/autobahn-python"},{"name":"awkward","old_version":"2.6.10","new_version":"2.8.11","repository_url":"https://github.com/scikit-hep/awkward-1.0"},{"name":"awkward-cpp","old_version":"40","new_version":"51","repository_url":"https://github.com/scikit-hep/awkward-1.0"},{"name":"blinker","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/pallets-eco/blinker"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"click","old_version":"8.1.7","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"comtypes","old_version":"1.4.12","new_version":"1.4.14","repository_url":"https://github.com/enthought/comtypes"},{"name":"configparser","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/jaraco/configparser"},{"name":"contourpy","old_version":"1.1.1","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"cpylog","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/SteveDoyle2/cpylog"},{"name":"docutils","old_version":"0.20.1","new_version":"0.22.4","repository_url":"https://github.com/rtfd/recommonmark"},{"name":"ezdxf","old_version":"1.1.4","new_version":"1.4.3","repository_url":"https://github.com/mozman/ezdxf"},{"name":"fonttools","old_version":"4.57.0","new_version":"4.61.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"fsspec","old_version":"2025.3.0","new_version":"2025.12.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"geomdl","old_version":"5.3.1","new_version":"5.4.0","repository_url":"https://github.com/orbingol/NURBS-Python"},{"name":"ijson","old_version":"3.3.0","new_version":"3.4.0.post0","repository_url":"https://github.com/ICRAR/ijson"},{"name":"imageio","old_version":"2.35.1","new_version":"2.37.2","repository_url":"https://github.com/imageio/imageio"},{"name":"importlib-metadata","old_version":"8.5.0","new_version":"8.7.1","repository_url":"https://github.com/python/importlib_metadata"},{"name":"importlib-resources","old_version":"6.4.5","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.4.9","repository_url":"https://github.com/nucleic/kiwi"},{"name":"llvmlite","old_version":"0.41.1","new_version":"0.46.0","repository_url":"https://github.com/numba/llvmlite"},{"name":"markdown","old_version":"3.7","new_version":"3.10","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"markdown-it-py","old_version":"3.0.0","new_version":"4.0.0","repository_url":"https://github.com/executablebooks/markdown-it-py"},{"name":"matplotlib","old_version":"3.7.5","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"msgpack","old_version":"1.1.1","new_version":"1.1.2","repository_url":"https://github.com/msgpack/msgpack-python"},{"name":"networkx","old_version":"3.1","new_version":"3.6.1","repository_url":"https://github.com/networkx/networkx"},{"name":"numba","old_version":"0.58.1","new_version":"0.63.1","repository_url":"https://github.com/numba/numba"},{"name":"numpy","old_version":"1.24.4","new_version":"2.4.0","repository_url":"https://github.com/numpy/numpy"},{"name":"pandas","old_version":"2.0.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pillow","old_version":"10.4.0","new_version":"12.0.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"posthog","old_version":"4.2.0","new_version":"7.4.2","repository_url":"https://github.com/posthog/posthog-python"},{"name":"protobuf","old_version":"5.29.5","new_version":"6.33.2","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pyfakefs","old_version":"5.10.2","new_version":"6.0.0","repository_url":"https://github.com/pytest-dev/pyfakefs"},{"name":"pygit2","old_version":"1.13.3","new_version":"1.19.0","repository_url":"https://github.com/libgit2/pygit2"},{"name":"pyjwt","old_version":"2.9.0","new_version":"2.10.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pynastran","old_version":"1.3.4","new_version":"1.4.1","repository_url":"https://github.com/SteveDoyle2/pyNastran"},{"name":"pyopenxr","old_version":"1.1.4601","new_version":"1.1.5301","repository_url":"https://github.com/cmbruns/pyopenxr"},{"name":"pyoptools","old_version":"0.2.1","new_version":"0.3.7"},{"name":"pyparsing","old_version":"3.1.4","new_version":"3.3.0","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pypresence","old_version":"4.3.0","new_version":"4.6.1","repository_url":"https://github.com/qwertyquerty/pypresence"},{"name":"pyproj","old_version":"3.5.0","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"python-docx","old_version":"1.1.2","new_version":"1.2.0","repository_url":"https://github.com/python-openxml/python-docx"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pyvista","old_version":"0.44.2","new_version":"0.46.4","repository_url":"https://github.com/pyvista/pyvista"},{"name":"pywavelets","old_version":"1.4.1","new_version":"1.9.0","repository_url":"https://github.com/PyWavelets/pywt"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"scikit-image","old_version":"0.21.0","new_version":"0.26.0","repository_url":"https://github.com/scikit-image/scikit-image"},{"name":"scikit-learn","old_version":"1.3.2","new_version":"1.8.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.10.1","new_version":"1.16.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentry-sdk","old_version":"2.47.0","new_version":"2.48.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"soupsieve","old_version":"2.7","new_version":"2.8.1","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"streamdeck","old_version":"0.9.6","new_version":"0.9.8","repository_url":"https://github.com/abcminiuser/python-elgato-streamdeck"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"testtools","old_version":"2.7.2","new_version":"2.8.2","repository_url":"https://github.com/testing-cabal/testtools"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tifffile","old_version":"2023.7.10","new_version":"2025.12.20","repository_url":"https://github.com/cgohlke/tifffile"},{"name":"txaio","old_version":"23.1.1","new_version":"25.12.2","repository_url":"https://github.com/crossbario/txaio"},{"name":"typing-extensions","old_version":"4.13.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"tzdata","old_version":"2025.2","new_version":"2025.3","repository_url":"https://github.com/python/tzdata"},{"name":"tzlocal","old_version":"5.2","new_version":"5.3.1","repository_url":"https://github.com/regebro/tzlocal"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.6.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"vtk","old_version":"9.3.1","new_version":"9.5.2"},{"name":"xarray","old_version":"2023.1.0","new_version":"2025.12.0","repository_url":"https://github.com/pydata/xarray"},{"name":"zipp","old_version":"3.20.2","new_version":"3.23.0","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-deps group with 72 updates in the /constraints directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aiofiles](https://github.com/Tinche/aiofiles) | `24.1.0` | `25.1.0` |\n| [aiosqlite](https://github.com/omnilib/aiosqlite) | `0.20.0` | `0.22.0` |\n| [antlr4-python3-runtime](http://www.antlr.org) | `4.13.1` | `4.13.2` |\n| [asyncua](https://github.com/FreeOpcUa/opcua-asyncio) | `1.1.5` | `1.1.8` |\n| [atomicwrites](https://github.com/untitaker/python-atomicwrites) | `1.4.0` | `1.4.1` |\n| [autobahn](https://github.com/crossbario/autobahn-python) | `21.3.1` | `25.12.2` |\n| [awkward](https://github.com/scikit-hep/awkward-1.0) | `2.6.10` | `2.8.11` |\n| [awkward-cpp](https://github.com/scikit-hep/awkward-1.0) | `40` | `51` |\n| [blinker](https://github.com/pallets-eco/blinker) | `1.8.2` | `1.9.0` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.1` |\n| [comtypes](https://github.com/enthought/comtypes) | `1.4.12` | `1.4.14` |\n| [configparser](https://github.com/jaraco/configparser) | `7.1.0` | `7.2.0` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.1.1` | `1.3.3` |\n| [cpylog](https://github.com/SteveDoyle2/cpylog) | `1.5.0` | `1.6.0` |\n| [docutils](https://github.com/rtfd/recommonmark) | `0.20.1` | `0.22.4` |\n| [ezdxf](https://github.com/mozman/ezdxf) | `1.1.4` | `1.4.3` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.57.0` | `4.61.1` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.3.0` | `2025.12.0` |\n| [geomdl](https://github.com/orbingol/NURBS-Python) | `5.3.1` | `5.4.0` |\n| [ijson](https://github.com/ICRAR/ijson) | `3.3.0` | `3.4.0.post0` |\n| [imageio](https://github.com/imageio/imageio) | `2.35.1` | `2.37.2` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.5.0` | `8.7.1` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `6.4.5` | `6.5.2` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.4.9` |\n| [llvmlite](https://github.com/numba/llvmlite) | `0.41.1` | `0.46.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.7` | `3.10` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `3.0.0` | `4.0.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.7.5` | `3.10.8` |\n| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.1` | `1.1.2` |\n| [networkx](https://github.com/networkx/networkx) | `3.1` | `3.6.1` |\n| [numba](https://github.com/numba/numba) | `0.58.1` | `0.63.1` |\n| [numpy](https://github.com/numpy/numpy) | `1.24.4` | `2.4.0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.0.3` | `2.3.3` |\n| [pillow](https://github.com/python-pillow/Pillow) | `10.4.0` | `12.0.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.5.1` |\n| [posthog](https://github.com/posthog/posthog-python) | `4.2.0` | `7.4.2` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.5` | `6.33.2` |\n| [pyfakefs](https://github.com/pytest-dev/pyfakefs) | `5.10.2` | `6.0.0` |\n| [pygit2](https://github.com/libgit2/pygit2) | `1.13.3` | `1.19.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.9.0` | `2.10.1` |\n| [pynastran](https://github.com/SteveDoyle2/pyNastran) | `1.3.4` | `1.4.1` |\n| [pyopenxr](https://github.com/cmbruns/pyopenxr) | `1.1.4601` | `1.1.5301` |\n| pyoptools | `0.2.1` | `0.3.7` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.1.4` | `3.3.0` |\n| [pypresence](https://github.com/qwertyquerty/pypresence) | `4.3.0` | `4.6.1` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.5.0` | `3.7.2` |\n| [python-docx](https://github.com/python-openxml/python-docx) | `1.1.2` | `1.2.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.1` |\n| [pyvista](https://github.com/pyvista/pyvista) | `0.44.2` | `0.46.4` |\n| [pywavelets](https://github.com/PyWavelets/pywt) | `1.4.1` | `1.9.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [scikit-image](https://github.com/scikit-image/scikit-image) | `0.21.0` | `0.26.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.3.2` | `1.8.0` |\n| [scipy](https://github.com/scipy/scipy) | `1.10.1` | `1.16.3` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.47.0` | `2.48.0` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.7` | `2.8.1` |\n| [streamdeck](https://github.com/abcminiuser/python-elgato-streamdeck) | `0.9.6` | `0.9.8` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [testtools](https://github.com/testing-cabal/testtools) | `2.7.2` | `2.8.2` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tifffile](https://github.com/cgohlke/tifffile) | `2023.7.10` | `2025.12.20` |\n| [txaio](https://github.com/crossbario/txaio) | `23.1.1` | `25.12.2` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.13.2` | `4.15.0` |\n| [tzdata](https://github.com/python/tzdata) | `2025.2` | `2025.3` |\n| [tzlocal](https://github.com/regebro/tzlocal) | `5.2` | `5.3.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.6.2` |\n| [vtk](https://vtk.org) | `9.3.1` | `9.5.2` |\n| [xarray](https://github.com/pydata/xarray) | `2023.1.0` | `2025.12.0` |\n| [zipp](https://github.com/jaraco/zipp) | `3.20.2` | `3.23.0` |\n\n\nUpdates `aiofiles` from 24.1.0 to 25.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Tinche/aiofiles/releases\"\u003eaiofiles's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev25.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to \u003ca href=\"https://docs.astral.sh/uv/\"\u003euv\u003c/a\u003e + add Python v3.14 support.  (\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eruff\u003c/code\u003e formatter and linter. \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/216\"\u003e#216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 support. If you require it, use version 24.1.0. \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/204\"\u003e#204\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/danielsmyers\"\u003e\u003ccode\u003e@​danielsmyers\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/185\"\u003eTinche/aiofiles#185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stankudrow\"\u003e\u003ccode\u003e@​stankudrow\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/192\"\u003eTinche/aiofiles#192\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/221\"\u003eTinche/aiofiles#221\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Tinche/aiofiles/compare/v24.1.0...v25.1.0\"\u003ehttps://github.com/Tinche/aiofiles/compare/v24.1.0...v25.1.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Tinche/aiofiles/blob/main/CHANGELOG.md\"\u003eaiofiles's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.1.0 (2025-10-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to \u003ca href=\"https://docs.astral.sh/uv/\"\u003euv\u003c/a\u003e + add Python v3.14 support.\n(\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eruff\u003c/code\u003e formatter and linter.\n\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/216\"\u003e#216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 support. If you require it, use version 24.1.0.\n\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/pull/204\"\u003e#204\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/Tinche/aiofiles/commit/348f5ef6561c2b2c8a7497bd10487eab4102332f\"\u003e\u003ccode\u003e348f5ef\u003c/code\u003e\u003c/a\u003e v25.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/5e1bb8f12b09bce440cc9d1e28387d239cbc2577\"\u003e\u003ccode\u003e5e1bb8f\u003c/code\u003e\u003c/a\u003e docs: update readme to use ruff badge (\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/issues/221\"\u003e#221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/6fdc25c7812d6738ccf51c5e7d4cd68500053a52\"\u003e\u003ccode\u003e6fdc25c\u003c/code\u003e\u003c/a\u003e Move to uv. (\u003ca href=\"https://redirect.github.com/Tinche/aiofiles/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/1989132423dc300c61e22434abd02725e922ddeb\"\u003e\u003ccode\u003e1989132\u003c/code\u003e\u003c/a\u003e set 'function' as a default fixture loop scope value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/8986452a1b28b109903078f8e9a805ec01e248a6\"\u003e\u003ccode\u003e8986452\u003c/code\u003e\u003c/a\u003e add the 'asyncio_default_fixture_loop_scope=session' option\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/ccab1ff77640c59b353046cb528c25ffa11caa73\"\u003e\u003ccode\u003eccab1ff\u003c/code\u003e\u003c/a\u003e update pytest-asyncio==1.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/8727c96f5be46235af412a9fe504ba7c149df7f3\"\u003e\u003ccode\u003e8727c96\u003c/code\u003e\u003c/a\u003e add PR \u003ca href=\"https://redirect.github.com/Tinche/aiofiles/issues/216\"\u003e#216\u003c/a\u003e into the CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/a9388e5f8de9142c3e920917775e741bbf9f73b2\"\u003e\u003ccode\u003ea9388e5\u003c/code\u003e\u003c/a\u003e add TID and ignore TID252\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/760366489aed1fb041ef35652e2babb1870973d0\"\u003e\u003ccode\u003e7603664\u003c/code\u003e\u003c/a\u003e remove [ruff].exclude keyval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tinche/aiofiles/commit/7c49a5c5f2520233198487145423a7842805d740\"\u003e\u003ccode\u003e7c49a5c\u003c/code\u003e\u003c/a\u003e add final newlines\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Tinche/aiofiles/compare/v24.1.0...v25.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiosqlite` from 0.20.0 to 0.22.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cp\u003eFeature release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eset_authorizer\u003c/code\u003e query access controls (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWait for transaction queue to complete when closing connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit warning when connection goes out of scope without being closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on \u003ccode\u003etyping_extensions\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.21.0...v0.22.0\n     1\tAlec Berryman\n     1\tAmethyst Reese\n     1\tDavid Andreoletti\n     1\tMarkus Heidelberg\n     1\tbeerpsi\n    19\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.21.0\u003c/h2\u003e\n\u003cp\u003eMaintenance release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix: close connection correctly when BaseException raised in connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMetadata improvements\u003c/li\u003e\n\u003cli\u003eTested and supported on Python 3.13\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003cli\u003eDrop testing on PyPy\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.20.0...v0.21.0\n     6\tAmethyst Reese\n     1\tGabriel\n     1\tStanley Kudrow\n    11\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/a869d73678adbc14472e4ac2c31f4e706efe8ef3\"\u003e\u003ccode\u003ea869d73\u003c/code\u003e\u003c/a\u003e Version bump v0.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/1cd60adcab12347577150a6fa6c7d92b7b86d989\"\u003e\u003ccode\u003e1cd60ad\u003c/code\u003e\u003c/a\u003e Emit warning if connection is deleted before it is closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/611d7b4f29fc3d7df6c173b2e79b0892e9d249aa\"\u003e\u003ccode\u003e611d7b4\u003c/code\u003e\u003c/a\u003e Add set_authorizer support for fine-grained access control (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/81d00c8f1676851c8634ca98f99e0973083ea75f\"\u003e\u003ccode\u003e81d00c8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/7a26722f7e6da6a1ae0febf515b4624794173fcc\"\u003e\u003ccode\u003e7a26722\u003c/code\u003e\u003c/a\u003e Bump coverage[toml] from 7.8.0 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/445754087ec452f888cc152debf79590d8a25d86\"\u003e\u003ccode\u003e4457540\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.2.0 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/b650dad318ad72e582b7ba1143cc05f270f8ab6b\"\u003e\u003ccode\u003eb650dad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/065ffdd1291693c5e69d2f3efff17e351d9a0163\"\u003e\u003ccode\u003e065ffdd\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.15.0 to 1.19.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/3a6d7b03bf86054551b6fd90498056f652671c52\"\u003e\u003ccode\u003e3a6d7b0\u003c/code\u003e\u003c/a\u003e Remove obsolete dependency on typing_extensions (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/e9d6b44af028e7704293b5d7a31ae02077fea5e6\"\u003e\u003ccode\u003ee9d6b44\u003c/code\u003e\u003c/a\u003e Bump black from 25.1.0 to 25.11.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.20.0...v0.22.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `antlr4-python3-runtime` from 4.13.1 to 4.13.2\n\nUpdates `asyncua` from 1.1.5 to 1.1.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/releases\"\u003easyncua's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.8\u003c/h2\u003e\n\u003cp\u003efix release script and upload\u003c/p\u003e\n\u003ch2\u003ev1.1.7\u003c/h2\u003e\n\u003cp\u003eorigin/master, origin/HEAD) Replace time.time() with time.monotonic() in asyncua core modules\nb3dd3a17ffdd554807df230b6b34403b8c946c30 make pytest loop scope explicit\na5d72a2dc2a53e21d84c5f3b9091e27ae14e007e finally unfreeze pytest-asyncio\ncc874c30e2154e86a43523006ecb5839412cc157 Feat: Support import/export of struct and enum Field descriptions (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1851\"\u003e#1851\u003c/a\u003e)\n97095b909c141daf9b7d300114f7d5d924444b76 Support pre 1.04 struct length fields for B\u0026amp;R\n5b1091795dc7745efb94acd94381db17274779e8 fix  connecting to new prosys opcua server (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1827\"\u003e#1827\u003c/a\u003e)\n120d2e8c090fe0dbe34fb27a3e2f723dcb83ab8d Fix small bug if imported xml has also the stardard namespace included (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1832\"\u003e#1832\u003c/a\u003e)\nd52d319b7ccf8c52f0e0fce469d06b9a10db0a24 Enhancement: Chunked Build ETree Function (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1833\"\u003e#1833\u003c/a\u003e)\n6b6f4bb220b47b7d6d5612dc4d8daccf386373b0 Fix: Issues with missing namespace URIs when importing and exporting XMLs (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1830\"\u003e#1830\u003c/a\u003e)\nf12f3e19b3e7a3bc3db38add30176eef0cecd300 fix ClientNonce and/or peer_certificate may be None\ne3e02e3cfaca19647aec9348e9452594c6ebd657 Include support for x509 certificate chains in DER format (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003ev1.1.6\u003c/h2\u003e\n\u003cp\u003eupdate ua adresse space to 1.0.5\nParse ExtensionObjects with missing length (= -1)\nadd: Number in uatypes.py\nAllow setting password to None.\nFix usage of X509IdentityToken\u003c/p\u003e\n\u003cp\u003ebug fixes\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/FreeOpcUa/opcua-asyncio/commit/d8a5de3fe4050f82f39690bb43157a4b8e20c545\"\u003e\u003ccode\u003ed8a5de3\u003c/code\u003e\u003c/a\u003e new release v1.1.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/fe795e16ad86a4aea8ee09905ab080f9a0841748\"\u003e\u003ccode\u003efe795e1\u003c/code\u003e\u003c/a\u003e fix release script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/cacd6a0c355cd5d5e3af9e1d50c8829b69c2ed88\"\u003e\u003ccode\u003ecacd6a0\u003c/code\u003e\u003c/a\u003e Replace time.time() with time.monotonic() in asyncua core modules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/b3dd3a17ffdd554807df230b6b34403b8c946c30\"\u003e\u003ccode\u003eb3dd3a1\u003c/code\u003e\u003c/a\u003e make pytest loop scope explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/a5d72a2dc2a53e21d84c5f3b9091e27ae14e007e\"\u003e\u003ccode\u003ea5d72a2\u003c/code\u003e\u003c/a\u003e finally unfreeze pytest-asyncio\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/cc874c30e2154e86a43523006ecb5839412cc157\"\u003e\u003ccode\u003ecc874c3\u003c/code\u003e\u003c/a\u003e Feat: Support import/export of struct and enum Field descriptions (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1851\"\u003e#1851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/97095b909c141daf9b7d300114f7d5d924444b76\"\u003e\u003ccode\u003e97095b9\u003c/code\u003e\u003c/a\u003e Support pre 1.04 struct length fields for B\u0026amp;R\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/5b1091795dc7745efb94acd94381db17274779e8\"\u003e\u003ccode\u003e5b10917\u003c/code\u003e\u003c/a\u003e fix  connecting to new prosys opcua server (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1827\"\u003e#1827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/120d2e8c090fe0dbe34fb27a3e2f723dcb83ab8d\"\u003e\u003ccode\u003e120d2e8\u003c/code\u003e\u003c/a\u003e Fix small bug if imported xml has also the stardard namespace included (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1832\"\u003e#1832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/commit/d52d319b7ccf8c52f0e0fce469d06b9a10db0a24\"\u003e\u003ccode\u003ed52d319\u003c/code\u003e\u003c/a\u003e Enhancement: Chunked Build ETree Function (\u003ca href=\"https://redirect.github.com/FreeOpcUa/opcua-asyncio/issues/1833\"\u003e#1833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FreeOpcUa/opcua-asyncio/compare/v1.1.5...v1.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `atomicwrites` from 1.4.0 to 1.4.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/e05d8c985a10176ad43eefb9c4bfa6d7ab176719\"\u003e\u003ccode\u003ee05d8c9\u003c/code\u003e\u003c/a\u003e version 1.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/ea90c67ffe5f38cd39d89625022d417da1966522\"\u003e\u003ccode\u003eea90c67\u003c/code\u003e\u003c/a\u003e fix name typo (\u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/60\"\u003e#60\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/c35cd32eb364d5a4210e64bf38fd1a55f329f316\"\u003e\u003ccode\u003ec35cd32\u003c/code\u003e\u003c/a\u003e Add Power Support ppc64le (\u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/57\"\u003e#57\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/9f8db6527db8a7d20879756ff83d86009df8c9c5\"\u003e\u003ccode\u003e9f8db65\u003c/code\u003e\u003c/a\u003e wrap line\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/6699a1fc44bc5cea2ee258cf960a8bd6cc584e21\"\u003e\u003ccode\u003e6699a1f\u003c/code\u003e\u003c/a\u003e migrate to travis-ci.com\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/ec443a88e5e6cfbc9b667b1bcfd52e5a0a485f7e\"\u003e\u003ccode\u003eec443a8\u003c/code\u003e\u003c/a\u003e Add documentation for open_kwargs, fix \u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/56\"\u003e#56\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/de33f6fac140f32a6eff9eb002feaa6dc7182182\"\u003e\u003ccode\u003ede33f6f\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/d17830127887b97f404f1596ac76d46d730e31f5\"\u003e\u003ccode\u003ed178301\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/72b5dcc9c5225fc8b54559f0f9c02d3211dfd403\"\u003e\u003ccode\u003e72b5dcc\u003c/code\u003e\u003c/a\u003e Update README.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/untitaker/python-atomicwrites/commit/14e7f1f5407344f215f0b06b5cbe49fe65e90d1d\"\u003e\u003ccode\u003e14e7f1f\u003c/code\u003e\u003c/a\u003e Clean up some FAQ/Frequently asked question repetition in readme (\u003ca href=\"https://redirect.github.com/untitaker/python-atomicwrites/issues/53\"\u003e#53\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/untitaker/python-atomicwrites/compare/1.4.0...1.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `autobahn` from 21.3.1 to 25.12.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/crossbario/autobahn-python/releases\"\u003eautobahn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v25_12_2\u003c/h1\u003e\n\u003cp\u003eOfficial release v25_12_2\u003c/p\u003e\n\u003ch2\u003eIncluded Platforms\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eLinux\u003c/strong\u003e: x86_64, ARM64 (manylinux_2_34 wheels with NVX)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emacOS\u003c/strong\u003e: Apple Silicon ARM64 (binary wheels with NVX)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWindows\u003c/strong\u003e: x86_64 (binary wheels with NVX)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePython Versions\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCPython\u003c/strong\u003e: 3.11, 3.12, 3.13, 3.14\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePyPy\u003c/strong\u003e: 3.11\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstallation\u003c/h2\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install autobahn[all]==v25_12_2\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr download wheels directly from this release.\u003c/p\u003e\n\u003ch2\u003eBuild Information\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRelease Date\u003c/strong\u003e: 2025-12-15 11:12:00 UTC\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTotal Wheels\u003c/strong\u003e: 16\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSource Distributions\u003c/strong\u003e: 3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cp\u003eAutobahn|Python provides:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eWebSocket\u003c/strong\u003e client and server implementations (RFC 6455)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWAMP\u003c/strong\u003e client library for both Twisted and asyncio\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNVX acceleration\u003c/strong\u003e for high-performance networking (binary wheels)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePure Python fallback\u003c/strong\u003e wheels for maximum compatibility\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://autobahn.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python\"\u003eGitHub Repository\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://wamp-proto.org\"\u003eWAMP Protocol\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eDevelopment Build fork-7ce4f0c4-oberstet_autobahn_python-sync_autobahn_zlmdb-202512132337\u003c/h1\u003e\n\u003cp\u003eDevelopment build from pull request\u003c/p\u003e\n\u003ch2\u003eBuild Information\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/crossbario/autobahn-python/blob/master/docs/changelog.rst\"\u003eautobahn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBuild \u0026amp; CI/CD\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSynchronize CI/CD, FlatBuffers vendoring, and wamp-ai/wamp-cicd submodules between autobahn-python and zlmdb (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSwitch manylinux container from 2_34 to 2_28 for x86_64 ISA compatibility (fixes auditwheel flatc bundling)\u003c/li\u003e\n\u003cli\u003eIncrease ARM64 build timeout to 60 minutes for QEMU emulation\u003c/li\u003e\n\u003cli\u003eAdd .github/workflows/README.md documenting CI/CD architecture\u003c/li\u003e\n\u003cli\u003eConsolidate download-github-release and download-release-artifacts recipes\u003c/li\u003e\n\u003cli\u003eAdd checksum verification to artifact download workflow\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFlatBuffers\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify vendored FlatBuffers - use upstream as-is\u003c/li\u003e\n\u003cli\u003eTrack vendored FlatBuffers in git (like zlmdb approach)\u003c/li\u003e\n\u003cli\u003eAdd version() function to vendored FlatBuffers runtime\u003c/li\u003e\n\u003cli\u003eAdd check_zlmdb_flatbuffers_version_in_sync() for cross-project compatibility\u003c/li\u003e\n\u003cli\u003eGenerate .bfbs files for WAMP schemas during wheel build\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eOther\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRename install-flatc to install-flatc-system with prominent warning\u003c/li\u003e\n\u003cli\u003eRemove legacy readthedocs.yml to activate .readthedocs.yaml\u003c/li\u003e\n\u003cli\u003eRemove dev-latest optional dependency (PyPI rejects direct URLs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.12.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNew\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd vendored Flatbuffers (v25.9.23) (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1761\"\u003e#1761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd WAMP serdes functional and benchmark testing; WAMP-Flatbuffers; WAMP Serializer Composition (transport/payload) (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1765\"\u003e#1765\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFix\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix 1757 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1758\"\u003e#1758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix 1767 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1769\"\u003e#1769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix 1771 complete (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1774\"\u003e#1774\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eOther\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRel v25.10.2 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1734\"\u003e#1734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRel v25.10.2 part2 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1741\"\u003e#1741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWAMP Flatbuffers serialization test coverage; WAMP message classes refactoring (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1773\"\u003e#1773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eModernization phase 1.1 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1785\"\u003e#1785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePhase 1.2: Build Tooling Modernization (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1788\"\u003e#1788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePhase 1.3: CI/CD Modernization (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1791\"\u003e#1791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRel25 12 1 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1794\"\u003e#1794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eModernization phase 1.4 (\u003ca href=\"https://redirect.github.com/crossbario/autobahn-python/issues/1797\"\u003e#1797\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/crossbario/autobahn-python/commit/5e4f7e086a074892231377f465099946e8f66ac4\"\u003e\u003ccode\u003e5e4f7e0\u003c/code\u003e\u003c/a\u003e docs: add changelog and release notes for v25.12.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/e97953b3cdc42b103075146dabe9eb9f30111c8b\"\u003e\u003ccode\u003ee97953b\u003c/code\u003e\u003c/a\u003e fix: add checksum verification and unify artifact download paths\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/05f1193cb2b2cdf71a92edfd2d12965083000a68\"\u003e\u003ccode\u003e05f1193\u003c/code\u003e\u003c/a\u003e fix: download-github-release now downloads all release artifacts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/467581c1ef461c97e3c24ece03d61119bbc0e126\"\u003e\u003ccode\u003e467581c\u003c/code\u003e\u003c/a\u003e Synchronize CI/CD, Flatbuffers vendoring and wamp-ai and wamp-cicd Submodules...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/60f226c5356feaab3545f7d015c0655924d9444c\"\u003e\u003ccode\u003e60f226c\u003c/code\u003e\u003c/a\u003e build: remove legacy readthedocs.yml to activate .readthedocs.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/0dac159de6194c94d4be19b1958bddf627aba856\"\u003e\u003ccode\u003e0dac159\u003c/code\u003e\u003c/a\u003e Add missing docs deps to dev, ignore CFFI build artifacts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/e2503361b7c6f7cfd9fd38b5e2093703f3035166\"\u003e\u003ccode\u003ee250336\u003c/code\u003e\u003c/a\u003e Simplify vendored flatbuffers - use upstream as-is\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/03e2e157268713e71e10f5322e521349bc485116\"\u003e\u003ccode\u003e03e2e15\u003c/code\u003e\u003c/a\u003e Track vendored flatbuffers in git (like zlmdb approach)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/41f7e3c6595b911c482f332f5ea40de7f9c0bc1c\"\u003e\u003ccode\u003e41f7e3c\u003c/code\u003e\u003c/a\u003e Move vendor-flatbuffers logic to external Python script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/crossbario/autobahn-python/commit/8db464888d9c738fb51b78544706c130cc1c47a6\"\u003e\u003ccode\u003e8db4648\u003c/code\u003e\u003c/a\u003e bump package version\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/crossbario/autobahn-python/compare/v21.3.1...v25.12.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `awkward` from 2.6.10 to 2.8.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scikit-hep/awkward-1.0/releases\"\u003eawkward's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.8.11\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add behavior cls validation hook by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3710\"\u003escikit-hep/awkward#3710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add a playground for cccl studies by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3734\"\u003escikit-hep/awkward#3734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add cuda.compute implementation to CCCL study by \u003ca href=\"https://github.com/shwina\"\u003e\u003ccode\u003e@​shwina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3748\"\u003escikit-hep/awkward#3748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: ability to optionally disable the caching of virtual arrays on themselves by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3741\"\u003escikit-hep/awkward#3741\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug-fixes and performance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: string array numpy conversion fails with int32 offsets from parquet by \u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3697\"\u003escikit-hep/awkward#3697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: only check length against empty form in \u003ccode\u003eak.from_buffers\u003c/code\u003e if it is known by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3714\"\u003escikit-hep/awkward#3714\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: typestr respects now limit_cols for .show and \u003cem\u003erepr_mimebundle\u003c/em\u003e by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3712\"\u003escikit-hep/awkward#3712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003eArrayBuilder.__bool__ \u003c/code\u003e raises \u003ccode\u003eTypeError\u003c/code\u003e when builder length is 1 by \u003ca href=\"https://github.com/T90REAL\"\u003e\u003ccode\u003e@​T90REAL\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3738\"\u003escikit-hep/awkward#3738\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: prevent teardown from crashing GPU test suite by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3747\"\u003escikit-hep/awkward#3747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: hide awkward.ak_* and awkward.str.akstr_* from 'awkward' and 'awkward.str' module by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3752\"\u003escikit-hep/awkward#3752\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: align multi-level indices before merge in \u003ccode\u003eto_dataframe()\u003c/code\u003e by \u003ca href=\"https://github.com/TaiSakuma\"\u003e\u003ccode\u003e@​TaiSakuma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3733\"\u003escikit-hep/awkward#3733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: numba test failures on Python 3.14 by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3757\"\u003escikit-hep/awkward#3757\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: incorrect passing of \u003ccode\u003eIndex\u003c/code\u003e inside nplike function in \u003ccode\u003eto_IndexedOptionArray64\u003c/code\u003e by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3727\"\u003escikit-hep/awkward#3727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: weights should not be raised to the power n in the n-th moment calculation by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3729\"\u003escikit-hep/awkward#3729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: \u003ccode\u003eak.Record\u003c/code\u003e creation from iterable with nested dicts by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3728\"\u003escikit-hep/awkward#3728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: keep track of buffer key instead of field path for VirtualNDArrays \u0026amp; PlaceholderArrays by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3751\"\u003escikit-hep/awkward#3751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: typetracer nplike's \u003ccode\u003eall\u003c/code\u003e function leads to infinite recursion for \u003ccode\u003eaxis=None\u003c/code\u003e by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3765\"\u003escikit-hep/awkward#3765\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: fix compilation on self-hosted CI and test with multiple versions of CUDA by \u003ca href=\"https://github.com/ariostas\"\u003e\u003ccode\u003e@​ariostas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3704\"\u003escikit-hep/awkward#3704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update acknowledgements to include NumFOCUS affiliation by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3708\"\u003escikit-hep/awkward#3708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update pre-commit hooks 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/scikit-hep/awkward/pull/3709\"\u003escikit-hep/awkward#3709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: pytest log_level is better than log_cli_level by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3719\"\u003escikit-hep/awkward#3719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update requirements files for latest possible python versions by \u003ca href=\"https://github.com/ikrommyd\"\u003e\u003ccode\u003e@​ikrommyd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3739\"\u003escikit-hep/awkward#3739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump the actions 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/scikit-hep/awkward/pull/3744\"\u003escikit-hep/awkward#3744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update pre-commit hooks 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/scikit-hep/awkward/pull/3754\"\u003escikit-hep/awkward#3754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Remove CUDA 11 support by \u003ca href=\"https://github.com/shwina\"\u003e\u003ccode\u003e@​shwina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3758\"\u003escikit-hep/awkward#3758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(ci): use macos-15-intel for x86 wheel building and testing by \u003ca href=\"https://github.com/ariostas\"\u003e\u003ccode\u003e@​ariostas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3720\"\u003escikit-hep/awkward#3720\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add new versions to version selector by \u003ca href=\"https://github.com/ariostas\"\u003e\u003ccode\u003e@​ariostas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3707\"\u003escikit-hep/awkward#3707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: 3.14 is supported by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3717\"\u003escikit-hep/awkward#3717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add T90REAL as a contributor for code by \u003ca href=\"https://github.com/allcontributors\"\u003e\u003ccode\u003e@​allcontributors\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3742\"\u003escikit-hep/awkward#3742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add dependency and version change guidelines by \u003ca href=\"https://github.com/ianna\"\u003e\u003ccode\u003e@​ianna\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3745\"\u003escikit-hep/awkward#3745\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add shwina as a contributor for code by \u003ca href=\"https://github.com/allcontributors\"\u003e\u003ccode\u003e@​allcontributors\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3759\"\u003escikit-hep/awkward#3759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Add an example summation reducer using cccl by \u003ca href=\"https://github.com/maxymnaumchyk\"\u003e\u003ccode\u003e@​maxymnaumchyk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3762\"\u003escikit-hep/awkward#3762\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/T90REAL\"\u003e\u003ccode\u003e@​T90REAL\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3738\"\u003escikit-hep/awkward#3738\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shwina\"\u003e\u003ccode\u003e@​shwina\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3748\"\u003escikit-hep/awkward#3748\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/scikit-hep/awkward/compare/v2.8.10...v2.8.11\"\u003ehttps://github.com/scikit-hep/awkward/compare/v2.8.10...v2.8.11\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 2.8.10\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: preserve field order when replacing existing fields in with_field by \u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3681\"\u003escikit-hep/awkward#3681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add to_/from_safetensors by \u003ca href=\"https://github.com/pfackeldey\"\u003e\u003ccode\u003e@​pfackeldey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/scikit-hep/awkward/pull/3685\"\u003escikit-hep/awkward#3685\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/scikit-hep/awkward/commit/c4a2e57b47f6738670ffc0e4781a3990e7c3ff03\"\u003e\u003ccode\u003ec4a2e57\u003c/code\u003e\u003c/a\u003e awkward 2.8.11 and awkward-cpp 51\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/60072263c91fd8d5df48b487427319c5a10ae70d\"\u003e\u003ccode\u003e6007226\u003c/code\u003e\u003c/a\u003e awkward 2.8.11 and awkward-cpp 51\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/0ad8b1e25b0bd493508bade8ab8d79a383a854a0\"\u003e\u003ccode\u003e0ad8b1e\u003c/code\u003e\u003c/a\u003e fix: typetracer nplike's \u003ccode\u003eall\u003c/code\u003e function leads to infinite recursion for `axis...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/0941b378a8236a660990bd02d2c14e4d6593f28e\"\u003e\u003ccode\u003e0941b37\u003c/code\u003e\u003c/a\u003e fix: keep track of buffer key instead of field path for VirtualNDArrays \u0026amp; Pla...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/efea08c134963bc37c1013adc4ab320ebeb4d7a3\"\u003e\u003ccode\u003eefea08c\u003c/code\u003e\u003c/a\u003e chore(ci): use macos-15-intel for x86 wheel building and testing (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3720\"\u003e#3720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/87765b6adb379ba27b0f6b984607c250443b170c\"\u003e\u003ccode\u003e87765b6\u003c/code\u003e\u003c/a\u003e fix: \u003ccode\u003eak.Record\u003c/code\u003e creation from iterable with nested dicts (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3728\"\u003e#3728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/306274c1fd6028ed549fa0f9a5e47a8bd76e693c\"\u003e\u003ccode\u003e306274c\u003c/code\u003e\u003c/a\u003e fix: weights should not be raised to the power n in the n-th moment calculati...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/8872e1f4ffd781b07c2a661c235dc2d0a5f5bade\"\u003e\u003ccode\u003e8872e1f\u003c/code\u003e\u003c/a\u003e fix: incorrect passing of \u003ccode\u003eIndex\u003c/code\u003e inside nplike function in `to_IndexedOption...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/1594a70bb0d39e174996275dd251305a13f83b2b\"\u003e\u003ccode\u003e1594a70\u003c/code\u003e\u003c/a\u003e fix: numba test failures on Python 3.14 (\u003ca href=\"https://redirect.github.com/scikit-hep/awkward-1.0/issues/3757\"\u003e#3757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scikit-hep/awkward/commit/ca066ddc96dd690d52956535fc7422de71ed92e3\"\u003e\u003ccode\u003eca066dd\u003c/code\u003e\u003c/a\u003e feat: ability to optionally disable the caching of virtual arrays on themselv...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scikit-hep/awkward-1.0/compare/v2.6.10...v2.8.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `awkward-cpp` from 40 to 51\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/scikit-hep/awkward-1.0/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `blinker` from 1.8.2 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/blinker/releases\"\u003eblinker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.9.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.9.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.9.0/\"\u003ehttps://pypi.org/project/blinker/1.9.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/stable/#version-1-9-0\"\u003ehttps://blinker.readthedocs.io/en/stable/#version-1-9-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/blinker/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/blinker/milestone/1?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e, \u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/173\"\u003e#173\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-eco/blinker/blob/main/CHANGES.rst\"\u003eblinker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e175\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e,\n\u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. :pr:\u003ccode\u003e172\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down.\n:issue:\u003ccode\u003e173\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-eco/blinker/commit/669f3a027828d19786e708b511277fabcd6b9532\"\u003e\u003ccode\u003e669f3a0\u003c/code\u003e\u003c/a\u003e release version 1.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/cfe116fa7912d8dcb0deee4907aa63d1efaadf5b\"\u003e\u003ccode\u003ecfe116f\u003c/code\u003e\u003c/a\u003e try disabling attestions on test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/16e4bd70a19353d9d7cf47e4df7de54936296377\"\u003e\u003ccode\u003e16e4bd7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/174\"\u003e#174\u003c/a\u003e from projectgus/bugfix/weakref_disconnect_shutdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/42561fdf065032f5c39aea04d8c3fb4db93f73f3\"\u003e\u003ccode\u003e42561fd\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;Exception ignored\u0026quot; in weakref callback during interpreter shutdown.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/dcce3e97743494433025e0b68f742f3582b6ba6a\"\u003e\u003ccode\u003edcce3e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e from pallets-eco/drop-python3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/efa95eaa080b0d4a8dcfc46ad1f387ea1ddebd97\"\u003e\u003ccode\u003eefa95ea\u003c/code\u003e\u003c/a\u003e drop support for python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/82305185358d8ce21619ec0f324688a14a89c23b\"\u003e\u003ccode\u003e8230518\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/94f1202f08c6d00a9fe1ecf5c8cba9da84e4b22f\"\u003e\u003ccode\u003e94f1202\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/8c983ecd764e1d113d24522838c2a7312460b7eb\"\u003e\u003ccode\u003e8c983ec\u003c/code\u003e\u003c/a\u003e remove previously deprecated code (\u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/f5915f3bfcd9f9da0caf6cd4858bf68068c52963\"\u003e\u003ccode\u003ef5915f3\u003c/code\u003e\u003c/a\u003e set up pre-commit lite workflow\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/blinker/compare/1.8.2...1.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cffi` from 1.17.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-cffi/cffi/releases\"\u003ecffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only) - huge thanks to the folks at Quansight Labs for all the work to get this one sorted!\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only).\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/6366c01d84e9a78e7e85f12ebe9760ba5d19b6d3\"\u003e\u003ccode\u003e6366c01\u003c/code\u003e\u003c/a\u003e release 2.0.0 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/95c847663aec401e4003927a274e4de9b8595f4f\"\u003e\u003ccode\u003e95c8476\u003c/code\u003e\u003c/a\u003e 2.0.0 post beta backports (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/195cbda66b6be9297ef6d584644e50cfdcca4e8a\"\u003e\u003ccode\u003e195cbda\u003c/code\u003e\u003c/a\u003e Release 2.0.0b1 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b4bbe7940d3f76027534db1aecbae9b61c35221a\"\u003e\u003ccode\u003eb4bbe79\u003c/code\u003e\u003c/a\u003e fix version test to support beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/7ed073de66e713cf791b6fdfa23685c81fdfd6ad\"\u003e\u003ccode\u003e7ed073d\u003c/code\u003e\u003c/a\u003e Add support for the free-threaded build (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/67a170dc7972dc9361743690b38da3d963b200ef\"\u003e\u003ccode\u003e67a170d\u003c/code\u003e\u003c/a\u003e Change the license from MIT to MIT-no-attribution, which is the same without ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/92645ec9329feb03e3fa86240b40fe0fc37469d1\"\u003e\u003ccode\u003e92645ec\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support/testing (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/177\"\u003e#177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/2b81170583a898478a6996c9705d8c38ab7f73a1\"\u003e\u003ccode\u003e2b81170\u003c/code\u003e\u003c/a\u003e doc: update test commands in Section Testing/development tips (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/25172b84cf51cf58241f074ccd1efd9c7648cb43\"\u003e\u003ccode\u003e25172b8\u003c/code\u003e\u003c/a\u003e doc: update year (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/153\"\u003e#153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b57a92c03eb2078a99c900519a37d18b4d52324f\"\u003e\u003ccode\u003eb57a92c\u003c/code\u003e\u003c/a\u003e issue 147: force-compute nested structs before parent structs.  Occurs mainly...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.1.7 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.1.7...8.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `comtypes` from 1.4.12 to 1.4.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/enthought/comtypes/releases\"\u003ecomtypes's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace \u003ccode\u003esetup.py\u003c/code\u003e with \u003ccode\u003epyproject.toml\u003c/code\u003e. By \u003ca href=\"https://github.com/moi15moi\"\u003e\u003ccode\u003e@​moi15moi\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate codebases for PEP585 compliance. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove Python 3.8 and add Python 3.14 to the CI pipelines. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eDeclare the minimum Python version as 3.9. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003ePyCArgObject.value\u003c/code\u003e for Python 3.14 compatibility. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd version bridges for the \u003ccode\u003e__pointer_type__\u003c/code\u003e attribute protocol. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/enthought/comtypes/blob/main/CHANGES.txt\"\u003ecomtypes's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.4.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace \u003ccode\u003esetup.py\u003c/code\u003e with \u003ccode\u003epyproject.toml\u003c/code\u003e. By \u003ca href=\"https://github.com/moi15moi\"\u003e\u003ccode\u003e@​moi15moi\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate codebases for PEP585 compliance. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 1.4.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove Python 3.8 and add Python 3.14 to the CI pipelines. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eDeclare the minimum Python version as 3.9. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003ePyCArgObject.value\u003c/code\u003e for Python 3.14 compatibility. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd version bridges for the \u003ccode\u003e__pointer_type__\u003c/code\u003e attribute protocol. By \u003ca href=\"https://github.com/junkmd\"\u003e\u003ccode\u003e@​junkmd\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/enthought/comtypes/commit/b4226687d1df5ccaa6d0ee0df596c0c9adc50b0a\"\u003e\u003ccode\u003eb422668\u003c/code\u003e\u003c/a\u003e Bump version and update change log for 1.4.14 (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/882\"\u003e#882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/ee4320fc96134277bf72cd42df4221772bcd902b\"\u003e\u003ccode\u003eee4320f\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003ecollections.abc.Iterator\u003c/code\u003e in \u003ccode\u003etypeannotator\u003c/code\u003e to align with PEP 585. (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/881\"\u003e#881\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/4c95d110d0d5fd286378bae0dc211b69c01f837d\"\u003e\u003ccode\u003e4c95d11\u003c/code\u003e\u003c/a\u003e Replace setup.py with pyproject.toml (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/848\"\u003e#848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/f2bd6052aa6daf3d3791e30b40bdd3fd85e3bfdd\"\u003e\u003ccode\u003ef2bd605\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003e*.py\u003c/code\u003e and \u003ccode\u003e_post_coinit/*.py\u003c/code\u003e files for PEP585 compliance. (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/ab2b95e8c76b2fa6ddc24cc911742845ede79f54\"\u003e\u003ccode\u003eab2b95e\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etools/**/*.py\u003c/code\u003e, \u003ccode\u003eserver/*.py\u003c/code\u003e and \u003ccode\u003eclient/*.py\u003c/code\u003e files for PEP585 comp...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/4134455d4c290a10e084a97c9b18ccb5ef62aaf4\"\u003e\u003ccode\u003e4134455\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest/*.py\u003c/code\u003e files for PEP585 compliance. (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/5fd01e33d9f2fc571a0f02fffab1f4ed8b241931\"\u003e\u003ccode\u003e5fd01e3\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003ehints.pyi\u003c/code\u003e and the type symbols under \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e blocks in the g...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/6d80cc6a742623130564469aaa543582e10c6301\"\u003e\u003ccode\u003e6d80cc6\u003c/code\u003e\u003c/a\u003e Improve \u003ccode\u003eGetModuleFileName\u003c/code\u003e tests and clarify virtual environment behavior. (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/fb8fd5823d83f866df43ce6f15d1b8dfd7f51f8c\"\u003e\u003ccode\u003efb8fd58\u003c/code\u003e\u003c/a\u003e Bump version and update change log for 1.4.13 (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/874\"\u003e#874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enthought/comtypes/commit/2429d3461e30387daa901cf59fdab02aae851696\"\u003e\u003ccode\u003e2429d34\u003c/code\u003e\u003c/a\u003e Support Python 3.14 and drop Python 3.8. (\u003ca href=\"https://redirect.github.com/enthought/comtypes/issues/839\"\u003e#839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/enthought/comtypes/compare/1.4.12...1.4.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `configparser` from 7.1.0 to 7.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jaraco/configparser/blob/main/NEWS.rst\"\u003econfigparser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev7.2.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefreshed with implementation from CPython main (3.14).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/configparser/commit/196691a5900488f11cdf276af745e36776e2209a\"\u003e\u003ccode\u003e196691a\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/j...\n\n_Description has been truncated_","html_url":"https://github.com/FreeCAD/FreeCAD-addons/pull/516","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FreeCAD%2FFreeCAD-addons/issues/516","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/516/packages"}},{"old_version":"3.7.0","new_version":"3.7.2","update_type":"patch","path":null,"pr_created_at":"2025-12-08T08:35:12.000Z","version_change":"3.7.0 → 3.7.2","issue":{"uuid":"3705259885","node_id":"PR_kwDONa-oLc63nqM-","number":17,"state":"closed","title":"Bump pyproj from 3.7.0 to 3.7.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-08T17:31:45.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-08T08:35:12.000Z","updated_at":"2025-12-08T17:31:47.000Z","time_to_close":32193,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pyproj","old_version":"3.7.0","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pyproj](https://github.com/pyproj4/pyproj) from 3.7.0 to 3.7.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.22 to 2.23 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/pyproj4/pyproj/pull/1479\"\u003epyproj4/pyproj#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Only import time.perf_counter by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1480\"\u003epyproj4/pyproj#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1481\"\u003epyproj4/pyproj#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Python 3.11+ by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1483\"\u003epyproj4/pyproj#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.1 to 0.6.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/pyproj4/pyproj/pull/1488\"\u003epyproj4/pyproj#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: update doc geometry_area_perimeter by \u003ca href=\"https://github.com/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Remove 'noqa: E501' from docstrings by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epyproj.crs: add imports to \u003cstrong\u003eall\u003c/strong\u003e by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1494\"\u003epyproj4/pyproj#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: replace black and isort with ruff format and lint by \u003ca href=\"https://github.com/mwtoews\"\u003e\u003ccode\u003e@​mwtoews\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1496\"\u003epyproj4/pyproj#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUILD/CI: Add win_arm64 wheel build by \u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.23 to 3.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/pyproj4/pyproj/pull/1502\"\u003epyproj4/pyproj#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 3.0.0 to 3.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/pyproj4/pyproj/pull/1505\"\u003epyproj4/pyproj#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBLD: Enable free-threading compatibility by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1512\"\u003epyproj4/pyproj#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add 3.13 free-threading wheels by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1514\"\u003epyproj4/pyproj#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-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/pyproj4/pyproj/pull/1520\"\u003epyproj4/pyproj#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1519\"\u003epyproj4/pyproj#1519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout 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/pyproj4/pyproj/pull/1521\"\u003epyproj4/pyproj#1521\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/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.2rc1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.2rc0\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.1 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1477\"\u003epyproj4/pyproj#1477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in  \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1475\"\u003epyproj4/pyproj#1475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: Add wheels for musllinux by \u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead. by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1450\"\u003epyproj4/pyproj#1450\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1452\"\u003epyproj4/pyproj#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 by \u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1455\"\u003epyproj4/pyproj#1455\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Disallow type error without code by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1456\"\u003epyproj4/pyproj#1456\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/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\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/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.11 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Add CRS imports to \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add win_arm64 wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.13 free-threading wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.14 and 3.14 free-threading wheels\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Add wheels for musllinux (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1477\"\u003e#1477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1446\"\u003e#1446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff \u0026amp; lint fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1455\"\u003e#1455\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1456\"\u003e#1456\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/pyproj4/pyproj/commit/f16037d2c45c3274ef28b828998267c3390393c8\"\u003e\u003ccode\u003ef16037d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/878615decadbde676f9acc82bce9763d62fbacbe\"\u003e\u003ccode\u003e878615d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4813b2db7c0fb92f598748bb1aca85288765a354\"\u003e\u003ccode\u003e4813b2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1521\"\u003e#1521\u003c/a\u003e from pyproj4/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/66b8e0b2fb2f93a83be484cd3ae741c140123930\"\u003e\u003ccode\u003e66b8e0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/ff97ab97b5bfd02a714bf84ebd847ec366da48f8\"\u003e\u003ccode\u003eff97ab9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1519\"\u003e#1519\u003c/a\u003e from djhoese/remove-old-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3692f8aa7fc9373927178fa1774ae69811387cfb\"\u003e\u003ccode\u003e3692f8a\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1520\"\u003e#1520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f3815db4169e399271d87ce9970175edb4b4170b\"\u003e\u003ccode\u003ef3815db\u003c/code\u003e\u003c/a\u003e MNT: Update history with test removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e5ee13f82067e9c577a1bb5e2484ed91c5f96c22\"\u003e\u003ccode\u003ee5ee13f\u003c/code\u003e\u003c/a\u003e TST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26b3cdb7d68e677ebfec62549288eea02bc38ed9\"\u003e\u003ccode\u003e26b3cdb\u003c/code\u003e\u003c/a\u003e MNT: 3.7.2rc0 and update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0cd586a0fb7094b4f8fb43fe34dd2e249aec0da0\"\u003e\u003ccode\u003e0cd586a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1514\"\u003e#1514\u003c/a\u003e from djhoese/ci-313-ft\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.0...3.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyproj\u0026package-manager=pip\u0026previous-version=3.7.0\u0026new-version=3.7.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Ifeoluwakolopin/lba/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ifeoluwakolopin%2Flba/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"}},{"old_version":"3.7.1","new_version":"3.7.2","update_type":"patch","path":null,"pr_created_at":"2025-12-08T02:32:25.000Z","version_change":"3.7.1 → 3.7.2","issue":{"uuid":"3704392014","node_id":"PR_kwDOO1bbZM63kwzP","number":34,"state":"closed","title":"chore(deps): bump the production-dependencies group across 1 directory with 73 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-15T02:26:50.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-08T02:32:25.000Z","updated_at":"2025-12-15T02:26:52.000Z","time_to_close":604465,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"production-dependencies","update_count":73,"packages":[{"name":"ipykernel","old_version":"6.29.5","new_version":"7.1.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"matplotlib","old_version":"3.10.3","new_version":"3.10.7","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"plotly","old_version":"6.1.2","new_version":"6.5.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"pypsa","old_version":"0.34.1","new_version":"1.0.5","repository_url":"https://github.com/PyPSA/PyPSA"},{"name":"asttokens","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/gristlabs/asttokens"},{"name":"attrs","old_version":"25.3.0","new_version":"25.4.0","repository_url":"https://github.com/sponsors/hynek"},{"name":"bottleneck","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pydata/bottleneck"},{"name":"cdsapi","old_version":"0.7.6","new_version":"0.7.7","repository_url":"https://github.com/ecmwf/cdsapi"},{"name":"certifi","old_version":"2025.4.26","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"cffi","old_version":"1.17.1","new_version":"2.0.0","repository_url":"https://github.com/python-cffi/cffi"},{"name":"cfgrib","old_version":"0.9.15.0","new_version":"0.9.15.1","repository_url":"https://github.com/ecmwf/cfgrib"},{"name":"cftime","old_version":"1.6.4.post1","new_version":"1.6.5","repository_url":"https://github.com/Unidata/cftime"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.2.1","new_version":"8.3.1","repository_url":"https://github.com/pallets/click"},{"name":"cloudpickle","old_version":"3.1.1","new_version":"3.1.2","repository_url":"https://github.com/cloudpipe/cloudpickle"},{"name":"comm","old_version":"0.2.2","new_version":"0.2.3","repository_url":"https://github.com/ipython/comm"},{"name":"contourpy","old_version":"1.3.2","new_version":"1.3.3","repository_url":"https://github.com/contourpy/contourpy"},{"name":"dask","old_version":"2025.5.1","new_version":"2025.11.0","repository_url":"https://github.com/dask/dask"},{"name":"debugpy","old_version":"1.8.14","new_version":"1.8.17","repository_url":"https://github.com/microsoft/debugpy"},{"name":"eccodes","old_version":"2.42.0","new_version":"2.44.0","repository_url":"https://github.com/ecmwf/eccodes-python"},{"name":"ecmwf-datastores-client","old_version":"0.2.0","new_version":"0.4.1","repository_url":"https://github.com/ecmwf/ecmwf-datastores-client"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"fastjsonschema","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/horejsek/python-fastjsonschema"},{"name":"findlibs","old_version":"0.1.1","new_version":"0.1.2","repository_url":"https://github.com/ecmwf/findlibs"},{"name":"fonttools","old_version":"4.58.1","new_version":"4.61.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"fsspec","old_version":"2025.5.1","new_version":"2025.12.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"geopandas","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/geopandas/geopandas"},{"name":"h5netcdf","old_version":"1.6.3","new_version":"1.7.3","repository_url":"https://github.com/h5netcdf/h5netcdf"},{"name":"h5py","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/h5py/h5py"},{"name":"highspy","old_version":"1.10.0","new_version":"1.12.0","repository_url":"https://github.com/ERGO-Code/HiGHS"},{"name":"idna","old_version":"3.10","new_version":"3.11","repository_url":"https://github.com/kjd/idna"},{"name":"ipython","old_version":"9.3.0","new_version":"9.8.0","repository_url":"https://github.com/ipython/ipython"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"jsonschema-specifications","old_version":"2025.4.1","new_version":"2025.9.1","repository_url":"https://github.com/python-jsonschema/jsonschema-specifications"},{"name":"jupyter-core","old_version":"5.8.1","new_version":"5.9.1","repository_url":"https://github.com/jupyter/jupyter_core"},{"name":"kiwisolver","old_version":"1.4.8","new_version":"1.4.9","repository_url":"https://github.com/nucleic/kiwi"},{"name":"linopy","old_version":"0.5.5","new_version":"0.5.8","repository_url":"https://github.com/PyPSA/linopy"},{"name":"matplotlib-inline","old_version":"0.1.7","new_version":"0.2.1","repository_url":"https://github.com/ipython/matplotlib-inline"},{"name":"multiurl","old_version":"0.3.6","new_version":"0.3.7","repository_url":"https://github.com/ecmwf/multiurl"},{"name":"narwhals","old_version":"1.41.0","new_version":"2.13.0","repository_url":"https://github.com/narwhals-dev/narwhals"},{"name":"netcdf4","old_version":"1.7.2","new_version":"1.7.3","repository_url":"https://github.com/Unidata/netcdf4-python"},{"name":"networkx","old_version":"3.5","new_version":"3.6","repository_url":"https://github.com/networkx/networkx"},{"name":"numexpr","old_version":"2.10.2","new_version":"2.14.1","repository_url":"https://github.com/pydata/numexpr"},{"name":"numpy","old_version":"2.2.0","new_version":"2.3.5","repository_url":"https://github.com/numpy/numpy"},{"name":"packaging","old_version":"24.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pillow","old_version":"11.2.1","new_version":"12.0.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.5.1","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"polars","old_version":"1.30.0","new_version":"1.35.2","repository_url":"https://github.com/pola-rs/polars"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.3","repository_url":"https://github.com/giampaolo/psutil"},{"name":"pycparser","old_version":"2.22","new_version":"2.23","repository_url":"https://github.com/eliben/pycparser"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pyogrio","old_version":"0.11.0","new_version":"0.12.1","repository_url":"https://github.com/geopandas/pyogrio"},{"name":"pyparsing","old_version":"3.2.3","new_version":"3.2.5","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pyproj","old_version":"3.7.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"pytz","old_version":"2024.2","new_version":"2025.2","repository_url":"https://github.com/stub42/pytz"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"pyzmq","old_version":"26.4.0","new_version":"27.1.0","repository_url":"https://github.com/zeromq/pyzmq"},{"name":"referencing","old_version":"0.36.2","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"scipy","old_version":"1.15.3","new_version":"1.16.3","repository_url":"https://github.com/scipy/scipy"},{"name":"shapely","old_version":"2.0.7","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"toolz","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/pytoolz/toolz"},{"name":"tornado","old_version":"6.5.1","new_version":"6.5.2","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"typing-extensions","old_version":"4.14.0","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"tzdata","old_version":"2024.2","new_version":"2025.2","repository_url":"https://github.com/python/tzdata"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.2.14","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xarray","old_version":"2025.4.0","new_version":"2025.12.0","repository_url":"https://github.com/pydata/xarray"},{"name":"zipp","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 73 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.29.5` | `7.1.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.3` | `3.10.7` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.1.2` | `6.5.0` |\n| [pypsa](https://github.com/PyPSA/PyPSA) | `0.34.1` | `1.0.5` |\n| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.0` | `3.0.1` |\n| [attrs](https://github.com/sponsors/hynek) | `25.3.0` | `25.4.0` |\n| [bottleneck](https://github.com/pydata/bottleneck) | `1.5.0` | `1.6.0` |\n| [cdsapi](https://github.com/ecmwf/cdsapi) | `0.7.6` | `0.7.7` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.4.26` | `2025.11.12` |\n| [cffi](https://github.com/python-cffi/cffi) | `1.17.1` | `2.0.0` |\n| [cfgrib](https://github.com/ecmwf/cfgrib) | `0.9.15.0` | `0.9.15.1` |\n| [cftime](https://github.com/Unidata/cftime) | `1.6.4.post1` | `1.6.5` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.4` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.1` |\n| [cloudpickle](https://github.com/cloudpipe/cloudpickle) | `3.1.1` | `3.1.2` |\n| [comm](https://github.com/ipython/comm) | `0.2.2` | `0.2.3` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.3.2` | `1.3.3` |\n| [dask](https://github.com/dask/dask) | `2025.5.1` | `2025.11.0` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.14` | `1.8.17` |\n| [eccodes](https://github.com/ecmwf/eccodes-python) | `2.42.0` | `2.44.0` |\n| [ecmwf-datastores-client](https://github.com/ecmwf/ecmwf-datastores-client) | `0.2.0` | `0.4.1` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.1` | `2.21.2` |\n| [findlibs](https://github.com/ecmwf/findlibs) | `0.1.1` | `0.1.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.58.1` | `4.61.0` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2025.5.1` | `2025.12.0` |\n| [geopandas](https://github.com/geopandas/geopandas) | `1.1.0` | `1.1.1` |\n| [h5netcdf](https://github.com/h5netcdf/h5netcdf) | `1.6.3` | `1.7.3` |\n| [h5py](https://github.com/h5py/h5py) | `3.14.0` | `3.15.1` |\n| [highspy](https://github.com/ERGO-Code/HiGHS) | `1.10.0` | `1.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.11` |\n| [ipython](https://github.com/ipython/ipython) | `9.3.0` | `9.8.0` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [jsonschema-specifications](https://github.com/python-jsonschema/jsonschema-specifications) | `2025.4.1` | `2025.9.1` |\n| [jupyter-core](https://github.com/jupyter/jupyter_core) | `5.8.1` | `5.9.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.8` | `1.4.9` |\n| [linopy](https://github.com/PyPSA/linopy) | `0.5.5` | `0.5.8` |\n| [matplotlib-inline](https://github.com/ipython/matplotlib-inline) | `0.1.7` | `0.2.1` |\n| [multiurl](https://github.com/ecmwf/multiurl) | `0.3.6` | `0.3.7` |\n| [narwhals](https://github.com/narwhals-dev/narwhals) | `1.41.0` | `2.13.0` |\n| [netcdf4](https://github.com/Unidata/netcdf4-python) | `1.7.2` | `1.7.3` |\n| [networkx](https://github.com/networkx/networkx) | `3.5` | `3.6` |\n| [numexpr](https://github.com/pydata/numexpr) | `2.10.2` | `2.14.1` |\n| [numpy](https://github.com/numpy/numpy) | `2.2.0` | `2.3.5` |\n| [packaging](https://github.com/pypa/packaging) | `24.2` | `25.0` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `12.0.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.5.1` |\n| [polars](https://github.com/pola-rs/polars) | `1.30.0` | `1.35.2` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.3` |\n| [pycparser](https://github.com/eliben/pycparser) | `2.22` | `2.23` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pyogrio](https://github.com/geopandas/pyogrio) | `0.11.0` | `0.12.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.3` | `3.2.5` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.7.1` | `3.7.2` |\n| [pytz](https://github.com/stub42/pytz) | `2024.2` | `2025.2` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [pyzmq](https://github.com/zeromq/pyzmq) | `26.4.0` | `27.1.0` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.36.2` | `0.37.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.30.0` |\n| [scipy](https://github.com/scipy/scipy) | `1.15.3` | `1.16.3` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.7` | `2.1.2` |\n| [toolz](https://github.com/pytoolz/toolz) | `1.0.0` | `1.1.0` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.1` | `6.5.2` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.14.0` | `4.15.0` |\n| [tzdata](https://github.com/python/tzdata) | `2024.2` | `2025.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.6.0` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.2.14` |\n| [xarray](https://github.com/pydata/xarray) | `2025.4.0` | `2025.12.0` |\n| [zipp](https://github.com/jaraco/zipp) | `3.22.0` | `3.23.0` |\n\n\nUpdates `ipykernel` from 6.29.5 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ipython/ipykernel/releases\"\u003eipykernel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.1.0\u003c/h2\u003e\n\u003ch2\u003e7.1.0\u003c/h2\u003e\n\u003cp\u003eIPykernel 7.1.0 fixes an issue where display outputs such as Matplotlib plots were not included when using \u003ccode\u003e%notebook\u003c/code\u003e magic to save sessions as \u003ccode\u003e.ipynb\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1435\"\u003e#1435\u003c/a\u003e). This is enabled using the traitlet \u003ccode\u003eZMQDisplayPublisher.store_display_history\u003c/code\u003e which defaults to the previous behaviour of False. This is a minor release rather than a patch release due to the addition of the new traitlet.\u003c/p\u003e\n\u003cp\u003eOutput from threads is restored to the pre-6.29 behavior by default (route to latest cell, unless \u003ccode\u003eget_ipython().set_parent()\u003c/code\u003e is called explicitly from the thread. If it is called, output from that thread will continue to be routed to the same cell). This behavior is now opt-in, instead of unconditional (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1451\"\u003e#1451\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eThis release also fixes bugs that were introduced into the 7.x branch relating to Matplotlib plots in separate windows not being displayed correctly (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1458\"\u003e#1458\u003c/a\u003e), kernels launched in new threads failing asserts (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1455\"\u003e#1455\u003c/a\u003e), and \u003ccode\u003eContextVar\u003c/code\u003es persisting between cells (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1462\"\u003e#1462\u003c/a\u003e). There is also a fix for keyboard interrupts on Windows (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1434\"\u003e#1434\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v7.0.1...6f61a6835c217e42c406ee01b359e2fa235baf43\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStore display outputs in history for \u003ccode\u003e%notebook\u003c/code\u003e magic \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1435\"\u003e#1435\u003c/a\u003e (\u003ca href=\"https://github.com/Darshan808\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix ContextVar persistence across cells \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1462\"\u003e#1462\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix matplotlib eventloops \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1458\"\u003e#1458\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefer to kernel launching thread instead of assuming the main thread \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1455\"\u003e#1455\u003c/a\u003e (\u003ca href=\"https://github.com/dfalbel\"\u003e\u003ccode\u003e@​dfalbel\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix routing of background thread output when no parent is set explicitly \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1451\"\u003e#1451\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix KeyboardInterrupt on Windows by manually resetting interrupt event \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1434\"\u003e#1434\u003c/a\u003e (\u003ca href=\"https://github.com/ptosco\"\u003e\u003ccode\u003e@​ptosco\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate pre-commit and related \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1465\"\u003e#1465\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest that matplotlib event loop integration is responsive \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1463\"\u003e#1463\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate tests for 3.14 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1453\"\u003e#1453\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/graphs/contributors?from=2025-10-14\u0026amp;to=2025-10-27\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ACarreau+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ADarshan808+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Adfalbel+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dfalbel\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aianthomas23+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Akrassowski+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Alumberbot-app+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​lumberbot-app\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aminrk+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aptosco+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ptosco\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.0.1\u003c/h2\u003e\n\u003ch2\u003e7.0.1\u003c/h2\u003e\n\u003cp\u003eIPykernel 7.0.1 is a bug fix release to support CPython 3.14.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v7.0.0...6d9a14a21a8e328e384ebac48e4ccbaad85b1d45\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid overriding Thread._context in Python 3.14 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1447\"\u003e#1447\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ipython/ipykernel/blob/main/CHANGELOG.md\"\u003eipykernel's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0\u003c/h2\u003e\n\u003cp\u003eIPykernel 7.1.0 fixes an issue where display outputs such as Matplotlib plots were not included when using \u003ccode\u003e%notebook\u003c/code\u003e magic to save sessions as \u003ccode\u003e.ipynb\u003c/code\u003e files (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1435\"\u003e#1435\u003c/a\u003e). This is enabled using the traitlet \u003ccode\u003eZMQDisplayPublisher.store_display_history\u003c/code\u003e which defaults to the previous behaviour of False. This is a minor release rather than a patch release due to the addition of the new traitlet.\u003c/p\u003e\n\u003cp\u003eOutput from threads is restored to the pre-6.29 behavior by default (route to latest cell, unless \u003ccode\u003eget_ipython().set_parent()\u003c/code\u003e is called explicitly from the thread. If it is called, output from that thread will continue to be routed to the same cell). This behavior is now opt-in, instead of unconditional (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1451\"\u003e#1451\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eThis release also fixes bugs that were introduced into the 7.x branch relating to Matplotlib plots in separate windows not being displayed correctly (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1458\"\u003e#1458\u003c/a\u003e), kernels launched in new threads failing asserts (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1455\"\u003e#1455\u003c/a\u003e), and \u003ccode\u003eContextVar\u003c/code\u003es persisting between cells (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1462\"\u003e#1462\u003c/a\u003e). There is also a fix for keyboard interrupts on Windows (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1434\"\u003e#1434\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v7.0.1...6f61a6835c217e42c406ee01b359e2fa235baf43\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eEnhancements made\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eStore display outputs in history for \u003ccode\u003e%notebook\u003c/code\u003e magic \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1435\"\u003e#1435\u003c/a\u003e (\u003ca href=\"https://github.com/Darshan808\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix ContextVar persistence across cells \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1462\"\u003e#1462\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix matplotlib eventloops \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1458\"\u003e#1458\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefer to kernel launching thread instead of assuming the main thread \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1455\"\u003e#1455\u003c/a\u003e (\u003ca href=\"https://github.com/dfalbel\"\u003e\u003ccode\u003e@​dfalbel\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix routing of background thread output when no parent is set explicitly \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1451\"\u003e#1451\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix KeyboardInterrupt on Windows by manually resetting interrupt event \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1434\"\u003e#1434\u003c/a\u003e (\u003ca href=\"https://github.com/ptosco\"\u003e\u003ccode\u003e@​ptosco\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate pre-commit and related \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1465\"\u003e#1465\u003c/a\u003e (\u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest that matplotlib event loop integration is responsive \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1463\"\u003e#1463\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate tests for 3.14 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1453\"\u003e#1453\u003c/a\u003e (\u003ca href=\"https://github.com/minrk\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors to this release\u003c/h3\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/graphs/contributors?from=2025-10-14\u0026amp;to=2025-10-27\u0026amp;type=c\"\u003eGitHub contributors page for this release\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ACarreau+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3ADarshan808+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​Darshan808\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Adfalbel+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​dfalbel\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aianthomas23+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Akrassowski+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​krassowski\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Alumberbot-app+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​lumberbot-app\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aminrk+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​minrk\u003c/code\u003e\u003c/a\u003e | \u003ca href=\"https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aptosco+updated%3A2025-10-14..2025-10-27\u0026amp;type=Issues\"\u003e\u003ccode\u003e@​ptosco\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e7.0.1\u003c/h2\u003e\n\u003cp\u003eIPykernel 7.0.1 is a bug fix release to support CPython 3.14.\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://github.com/ipython/ipykernel/compare/v7.0.0...6d9a14a21a8e328e384ebac48e4ccbaad85b1d45\"\u003eFull Changelog\u003c/a\u003e)\u003c/p\u003e\n\u003ch3\u003eBugs fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid overriding Thread._context in Python 3.14 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1447\"\u003e#1447\u003c/a\u003e (\u003ca href=\"https://github.com/ianthomas23\"\u003e\u003ccode\u003e@​ianthomas23\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMaintenance and upkeep improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix 7.x license warnings \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1448\"\u003e#1448\u003c/a\u003e (\u003ca href=\"https://github.com/bollwyvl\"\u003e\u003ccode\u003e@​bollwyvl\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eci: Test on PyPy 3.11 instead of 3.10 \u003ca href=\"https://redirect.github.com/ipython/ipykernel/pull/1444\"\u003e#1444\u003c/a\u003e (\u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/39eaf96ab6db0d0ff9ad269831384c53a11e11d8\"\u003e\u003ccode\u003e39eaf96\u003c/code\u003e\u003c/a\u003e Publish 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/6f61a6835c217e42c406ee01b359e2fa235baf43\"\u003e\u003ccode\u003e6f61a68\u003c/code\u003e\u003c/a\u003e test that matplotlib event loop integration is responsive (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1463\"\u003e#1463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/8446e02948c390793e129affeceedfa30ed5080f\"\u003e\u003ccode\u003e8446e02\u003c/code\u003e\u003c/a\u003e Fix KeyboardInterrupt on Windows by manually resetting interrupt event (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1434\"\u003e#1434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/dd1e09484854c8dedcd98436bc01b6b8e1cc9034\"\u003e\u003ccode\u003edd1e094\u003c/code\u003e\u003c/a\u003e update pre-commit and related (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1465\"\u003e#1465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/95f245138589db4f723b8af06107cdfeadc53314\"\u003e\u003ccode\u003e95f2451\u003c/code\u003e\u003c/a\u003e fix ContextVar persistence across cells (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1462\"\u003e#1462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/c56a7aab3cad1fb91f7e7185dc7403d561ecd667\"\u003e\u003ccode\u003ec56a7aa\u003c/code\u003e\u003c/a\u003e Fix matplotlib eventloops (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1458\"\u003e#1458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/c7af34cd19ebcd43f5aafe1919909feb6e898387\"\u003e\u003ccode\u003ec7af34c\u003c/code\u003e\u003c/a\u003e Refer to kernel laucnhing thread instead of assuming the main thread (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1455\"\u003e#1455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/7193d14de447a18470a18d60b81eda5f0048b6aa\"\u003e\u003ccode\u003e7193d14\u003c/code\u003e\u003c/a\u003e Fix routing of background thread output when no parent is set explicitly (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1451\"\u003e#1451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/b8f5dfc3a35a658c66b85213e60f634bd8a44488\"\u003e\u003ccode\u003eb8f5dfc\u003c/code\u003e\u003c/a\u003e Store display outputs in history for \u003ccode\u003e%notebook\u003c/code\u003e magic (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1435\"\u003e#1435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipykernel/commit/93f11dbb02692a7922cb6fdb4ebadffdb8b691c0\"\u003e\u003ccode\u003e93f11db\u003c/code\u003e\u003c/a\u003e update tests for 3.14 (\u003ca href=\"https://redirect.github.com/ipython/ipykernel/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ipython/ipykernel/compare/v6.29.5...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `matplotlib` from 3.10.3 to 3.10.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/matplotlib/matplotlib/releases\"\u003ematplotlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eREL: v3.10.7\u003c/h2\u003e\n\u003cp\u003eThis is the latest bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eThe most important update in this release is that the minimum version\nof \u003ccode\u003epyparsing\u003c/code\u003e has been updated to version 3.0.\u003c/p\u003e\n\u003ch2\u003eREL: v3.10.6\u003c/h2\u003e\n\u003cp\u003eThis is a bugfix release in the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eHighlights from this release include:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Fix regression of hi-dpi support for Qt\n- Fix race condition in TexManager.make_dvi \u0026amp; make_png\n- Various documentation and other bugfixes\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eREL: v3.10.5\u003c/h2\u003e\n\u003cp\u003eThis is the fourth bugfix release of the 3.10.x series.\u003c/p\u003e\n\u003cp\u003eIncluded in this release is distributed wheels for Python 3.14 (including freethreaded) and Windows ARM.\u003c/p\u003e\n\u003cp\u003eThere are also several smaller bugfixes.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/4aeb773422464799998d900198b35cb80e94b3e1\"\u003e\u003ccode\u003e4aeb773\u003c/code\u003e\u003c/a\u003e REL: v3.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/080add32f6b3c82075ccfb1111b21d5ff9e9c075\"\u003e\u003ccode\u003e080add3\u003c/code\u003e\u003c/a\u003e Merge branch 'v3.10.6-doc' into v3.10.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/a604a8beed19bdda1355a29a12ab2904367cf140\"\u003e\u003ccode\u003ea604a8b\u003c/code\u003e\u003c/a\u003e Github Stats v3.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/f550261fadf30702a42bc85f71e3489a3c2f6b99\"\u003e\u003ccode\u003ef550261\u003c/code\u003e\u003c/a\u003e Zenodo v3.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/9a5e3e4253a3deaa5c83451b1208b5d46759ff7c\"\u003e\u003ccode\u003e9a5e3e4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30628\"\u003e#30628\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30626-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/eb8cb0ce31f6965713a5d46fe4fadf2dffb74773\"\u003e\u003ccode\u003eeb8cb0c\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30626\"\u003e#30626\u003c/a\u003e: MNT: Fix new F401 unused imports warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/8fadc71e0e372f05aa0305ef425c5152d70d6f39\"\u003e\u003ccode\u003e8fadc71\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/29745\"\u003e#29745\u003c/a\u003e: Use PEP8 style method and function names from (\u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30589\"\u003e#30589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/098876ee6f695f6c5297d4cf3f974c9d64ff4c79\"\u003e\u003ccode\u003e098876e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30614\"\u003e#30614\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-30612-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/eb42d8637ba5891aa806fa6b0ed73835c16b2741\"\u003e\u003ccode\u003eeb42d86\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30612\"\u003e#30612\u003c/a\u003e: MNT: update black pin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matplotlib/matplotlib/commit/4a9c187a73fce92074b262612b3285dcff2d615e\"\u003e\u003ccode\u003e4a9c187\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/matplotlib/matplotlib/issues/30572\"\u003e#30572\u003c/a\u003e from QuLogic/auto-backport-of-pr-30571-on-v3.10.x\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/matplotlib/matplotlib/compare/v3.10.3...v3.10.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.2.3 to 2.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePandas 2.3.3\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.3.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.3.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.3 supports Python 3.9 and higher, and is the first release to support Python 3.14.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.2\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.2.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.2.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.2 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.1\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.1.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3.1/whatsnew/v2.3.1.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.1 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9c8bc3e55188c8aff37207a74f1dd144980b8874\"\u003e\u003ccode\u003e9c8bc3e\u003c/code\u003e\u003c/a\u003e RLS: 2.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/6aa788a00bda9b0f004302076dad94df3edeafc7\"\u003e\u003ccode\u003e6aa788a\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] DOC: prepare 2.3.3 whatsnew notes for release (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62499\"\u003e#62499\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62508\"\u003e#62508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b64f0df403d11ac733d9f460f89a5e99c8044ed0\"\u003e\u003ccode\u003eb64f0df\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: avoid validation error for ufunc with string[python] ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/058eb2b0edfc408dae9966ef1f03372f2a3ff04c\"\u003e\u003ccode\u003e058eb2b\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: String[pyarrow] comparison with mixed object (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62424\"\u003e#62424\u003c/a\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2ca088daef6a9d9333fea8aedffc7e50d28dfdee\"\u003e\u003ccode\u003e2ca088d\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] DEPR: remove the Period resampling deprecation (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62480\"\u003e#62480\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62\"\u003e#62\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/92bf98f623572ed053d48be5818c8503f1b61888\"\u003e\u003ccode\u003e92bf98f\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: fix .str.isdigit to honor unicode superscript for older...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e57c7d6a2247316188fba0ba2a0db3c11028d75c\"\u003e\u003ccode\u003ee57c7d6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62452\"\u003e#62452\u003c/a\u003e on branch 2.3.x (TST: Adjust tests for numexpr 2.13) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62454\"\u003e#62454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e0fe9a03c90e560c34a3bbbdd1735a8b64f7b281\"\u003e\u003ccode\u003ee0fe9a0\u003c/code\u003e\u003c/a\u003e Backport to 2.3.x: REGR: from_records not initializing subclasses properly (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/23a1085e641c8e3a5b500e319c5973e4160b9236\"\u003e\u003ccode\u003e23a1085\u003c/code\u003e\u003c/a\u003e BUG: improve future warning for boolean operations with missaligned indexes (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/61136969fb18b438b6660bd5d485d0236dbf4a71\"\u003e\u003ccode\u003e6113696\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62396\"\u003e#62396\u003c/a\u003e on branch 2.3.x (PKG/DOC: indicate Python 3.14 support in ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.2.3...v2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `plotly` from 6.1.2 to 6.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/plotly/plotly.py/releases\"\u003eplotly's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.5.0\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.2.0 to version 3.3.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v3.3.0\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5421\"\u003e#5421\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehovertemplate\u003c/code\u003e for \u003ccode\u003ecandlestick\u003c/code\u003e and \u003ccode\u003eohlc\u003c/code\u003e traces [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7619\"\u003e#7619\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where numpy datetime contained in Python list was converted to integer [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5415\"\u003e#5415\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/plotly/plotly.py/compare/v6.4.0...v6.5.0\"\u003ehttps://github.com/plotly/plotly.py/compare/v6.4.0...v6.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.4.0\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.1.1 to version 3.2.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5388\"\u003e#5357\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehovertemplatefallback\u003c/code\u003e and \u003ccode\u003etexttemplatefallback\u003c/code\u003e attributes [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7577\"\u003e#7577\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd \u0026quot;SI extended\u0026quot; formatting rule for tick exponents on axis labels, allowing values to be displayed with extended SI prefixes (e.g., femto, pico, atto) [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7249\"\u003e#7249\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate \u003ccode\u003ecreate_hexbin_mapbox\u003c/code\u003e in favor of \u003ccode\u003ecreate_hexbin_map\u003c/code\u003e, update related function calls [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5358\"\u003e5358\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/ajlien\"\u003e\u003ccode\u003e@​ajlien\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.3.1\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate Plotly.js from version 3.1.0 to version 3.1.1. See the Plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5357\"\u003e#5357\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eFix issue preventing Scattergl plots with text elements from rendering [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7563\"\u003eplotly.js#7563\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUse native legends when converting from matplotlib [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5312\"\u003e#5312\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/robertoffmoura\"\u003e\u003ccode\u003e@​robertoffmoura\u003c/code\u003e\u003c/a\u003e to the contribution!\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eshared_yaxes\u003c/code\u003e to work with secondary axes [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5180\"\u003e#5180\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/gmjw\"\u003e\u003ccode\u003e@​gmjw\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue where width/height in plot layout were not respected during Kaleido image export [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5325\"\u003e#5325\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix typo in default argument to \u003ccode\u003e_ternary_contour.py\u003c/code\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5315\"\u003e#5315\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Lexachoc\"\u003e\u003ccode\u003e@​Lexachoc\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix incorrect \u003ccode\u003efig.show()\u003c/code\u003e behavior when \u003ccode\u003eipython\u003c/code\u003e is installed [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5258\"\u003e#5258\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/plotly/plotly.py/compare/v6.3.0...v6.3.1\"\u003ehttps://github.com/plotly/plotly.py/compare/v6.3.0...v6.3.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev6.3.0\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Plotly.js from version 3.0.1 to version 3.1.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5318\"\u003e#5318\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExposed \u003ccode\u003eplotly.io.get_chrome()\u003c/code\u003e as a function which can be called from within a Python script. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5282\"\u003e#5282\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolved issue causing extraneous engine deprecation warnings [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5287\"\u003e#5287\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/jdbeel\"\u003e\u003ccode\u003e@​jdbeel\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.2.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd SRI (Subresource Integrity) hash support for CDN script tags when using \u003ccode\u003einclude_plotlyjs='cdn'\u003c/code\u003e. This enhances security by ensuring browser verification of CDN-served plotly.js files [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5165\"\u003e#5165\u003c/a\u003e] (with thanks to \u003ca href=\"https://github.com/ddworken\"\u003e\u003ccode\u003e@​ddworken\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting Plotly.js path via \u003ccode\u003epio.defaults\u003c/code\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5207\"\u003e#5207\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md\"\u003eplotly's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[6.5.0] - 2025-11-17\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.2.0 to version 3.3.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v3.3.0\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5421\"\u003e#5421\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehovertemplate\u003c/code\u003e for \u003ccode\u003ecandlestick\u003c/code\u003e and \u003ccode\u003eohlc\u003c/code\u003e traces [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7619\"\u003e#7619\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where numpy datetime contained in Python list was converted to integer [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5415\"\u003e#5415\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[6.4.0] - 2025-11-02\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.1.1 to version 3.2.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5388\"\u003e#5357\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ehovertemplatefallback\u003c/code\u003e and \u003ccode\u003etexttemplatefallback\u003c/code\u003e attributes [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7577\"\u003e#7577\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd \u0026quot;SI extended\u0026quot; formatting rule for tick exponents on axis labels, allowing values to be displayed with extended SI prefixes (e.g., femto, pico, atto) [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7249\"\u003e#7249\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate \u003ccode\u003ecreate_hexbin_mapbox\u003c/code\u003e in favor of \u003ccode\u003ecreate_hexbin_map\u003c/code\u003e, update related function calls [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5358\"\u003e5358\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/ajlien\"\u003e\u003ccode\u003e@​ajlien\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[6.3.1] - 2025-10-02\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate Plotly.js from version 3.1.0 to version 3.1.1. See the Plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5357\"\u003e#5357\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eFix issue preventing Scattergl plots with text elements from rendering [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7563\"\u003eplotly.js#7563\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUse native legends when converting from matplotlib [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5312\"\u003e#5312\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/robertoffmoura\"\u003e\u003ccode\u003e@​robertoffmoura\u003c/code\u003e\u003c/a\u003e to the contribution!\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eshared_yaxes\u003c/code\u003e to work with secondary axes [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5180\"\u003e#5180\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/gmjw\"\u003e\u003ccode\u003e@​gmjw\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue where width/height in plot layout were not respected during Kaleido image export [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5325\"\u003e#5325\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix typo in default argument to \u003ccode\u003e_ternary_contour.py\u003c/code\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5315\"\u003e#5315\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/Lexachoc\"\u003e\u003ccode\u003e@​Lexachoc\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix incorrect \u003ccode\u003efig.show()\u003c/code\u003e behavior when \u003ccode\u003eipython\u003c/code\u003e is installed [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5258\"\u003e#5258\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[6.3.0] - 2025-08-12\u003c/h2\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Plotly.js from version 3.0.1 to version 3.1.0. See the Plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5318\"\u003e#5318\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExposed \u003ccode\u003eplotly.io.get_chrome()\u003c/code\u003e as a function which can be called from within a Python script. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5282\"\u003e#5282\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eResolved issue causing extraneous engine deprecation warnings [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5287\"\u003e#5287\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/jdbeel\"\u003e\u003ccode\u003e@​jdbeel\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[6.2.0] - 2025-06-26\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd SRI (Subresource Integrity) hash support for CDN script tags when using \u003ccode\u003einclude_plotlyjs='cdn'\u003c/code\u003e. This enhances security by ensuring browser verification of CDN-served plotly.js files [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5165\"\u003e#5165\u003c/a\u003e] (with thanks to \u003ca href=\"https://github.com/ddworken\"\u003e\u003ccode\u003e@​ddworken\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow setting Plotly.js path via \u003ccode\u003epio.defaults\u003c/code\u003e [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5207\"\u003e#5207\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/b19f8e54350e753b3e82cdc078293e826009a640\"\u003e\u003ccode\u003eb19f8e5\u003c/code\u003e\u003c/a\u003e changelog formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/1ec9a16b3700a3399f7bf6d802a42510fe60c215\"\u003e\u003ccode\u003e1ec9a16\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/83a2b0b4594dd330ff23ccdb77770773ac7ef1bc\"\u003e\u003ccode\u003e83a2b0b\u003c/code\u003e\u003c/a\u003e version changes for v6.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/a49f495aee7fbee5ac0a18dab4f563e7a68ce3e7\"\u003e\u003ccode\u003ea49f495\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5421\"\u003e#5421\u003c/a\u003e from plotly/update-plotlyjs-3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/f68752659ebbe499cd50cb4ca961d882aedfa84a\"\u003e\u003ccode\u003ef687526\u003c/code\u003e\u003c/a\u003e update plotly/labextension with files from ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/83ab425007895dabe5f682400bd45671be1a6386\"\u003e\u003ccode\u003e83ab425\u003c/code\u003e\u003c/a\u003e update package-lock with new plotly.js\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/a3480f0237e76074fc3d9c47363689ae2b8a8ac7\"\u003e\u003ccode\u003ea3480f0\u003c/code\u003e\u003c/a\u003e package-lock indentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/e519d5a46e44c90b24e678a93a2548a7cb0ae567\"\u003e\u003ccode\u003ee519d5a\u003c/code\u003e\u003c/a\u003e update plotly.js to v3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/22b0ac0ee686b1fc06ecb35c1b9b7f8e5261acba\"\u003e\u003ccode\u003e22b0ac0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5415\"\u003e#5415\u003c/a\u003e from plotly/fix-np-date-handling-issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/aa30be57c36d0ca602c0683d2232e7724f2b9dcf\"\u003e\u003ccode\u003eaa30be5\u003c/code\u003e\u003c/a\u003e Update _plotly_utils/basevalidators.py\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/plotly/plotly.py/compare/v6.1.2...v6.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypsa` from 0.34.1 to 1.0.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyPSA/PyPSA/releases\"\u003epypsa's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.5\u003c/h2\u003e\n\u003cp\u003eRevised release notes are available in the \u003ca href=\"https://docs.pypsa.org/latest/release-notes/\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: free up disk space by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1447\"\u003ePyPSA/PyPSA#1447\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd user Serentica by \u003ca href=\"https://github.com/gincrement\"\u003e\u003ccode\u003e@​gincrement\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1453\"\u003ePyPSA/PyPSA#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1455\"\u003ePyPSA/PyPSA#1455\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: CVaR optimization fails if components have no marginal costs by \u003ca href=\"https://github.com/Irieo\"\u003e\u003ccode\u003e@​Irieo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1457\"\u003ePyPSA/PyPSA#1457\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix markdown syntax for pip install command by \u003ca href=\"https://github.com/flxlchr\"\u003e\u003ccode\u003e@​flxlchr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1460\"\u003ePyPSA/PyPSA#1460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: run model runs only with src changes by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1462\"\u003ePyPSA/PyPSA#1462\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: using inactive generators in global carrier constraint by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1450\"\u003ePyPSA/PyPSA#1450\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix typo and improve description by \u003ca href=\"https://github.com/flxlchr\"\u003e\u003ccode\u003e@​flxlchr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1461\"\u003ePyPSA/PyPSA#1461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate users.md by \u003ca href=\"https://github.com/gincrement\"\u003e\u003ccode\u003e@​gincrement\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1458\"\u003ePyPSA/PyPSA#1458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix description in stochastic optimization documentation by \u003ca href=\"https://github.com/energyLS\"\u003e\u003ccode\u003e@​energyLS\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1452\"\u003ePyPSA/PyPSA#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate users.md / Meridian Economics by \u003ca href=\"https://github.com/gincrement\"\u003e\u003ccode\u003e@​gincrement\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1463\"\u003ePyPSA/PyPSA#1463\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broadcasting bug for rolling horizon with linearised UC case by \u003ca href=\"https://github.com/Irieo\"\u003e\u003ccode\u003e@​Irieo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1464\"\u003ePyPSA/PyPSA#1464\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: expressions returning zero for non-extendable generators by \u003ca href=\"https://github.com/FabianHofmann\"\u003e\u003ccode\u003e@​FabianHofmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1451\"\u003ePyPSA/PyPSA#1451\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flxlchr\"\u003e\u003ccode\u003e@​flxlchr\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1460\"\u003ePyPSA/PyPSA#1460\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyPSA/PyPSA/compare/v1.0.4...v1.0.5\"\u003ehttps://github.com/PyPSA/PyPSA/compare/v1.0.4...v1.0.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.0.4\u003c/h2\u003e\n\u003cp\u003eRevised release notes are available in the \u003ca href=\"https://PyPSA.readthedocs.io/en/latest/release-notes.html\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd example notebook on negative prices in unit commitment model by \u003ca href=\"https://github.com/Irieo\"\u003e\u003ccode\u003e@​Irieo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1434\"\u003ePyPSA/PyPSA#1434\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd pypsa-asean by \u003ca href=\"https://github.com/fneum\"\u003e\u003ccode\u003e@​fneum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1435\"\u003ePyPSA/PyPSA#1435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix link in stochastic optimization example by \u003ca href=\"https://github.com/euronion\"\u003e\u003ccode\u003e@​euronion\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1436\"\u003ePyPSA/PyPSA#1436\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: snapshot selection for operational in multi period optimization by \u003ca href=\"https://github.com/FabianHofmann\"\u003e\u003ccode\u003e@​FabianHofmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1437\"\u003ePyPSA/PyPSA#1437\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: masking of nan constraints in kvl by \u003ca href=\"https://github.com/FabianHofmann\"\u003e\u003ccode\u003e@​FabianHofmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1438\"\u003ePyPSA/PyPSA#1438\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of inactive storage components in constraints/variables by \u003ca href=\"https://github.com/Irieo\"\u003e\u003ccode\u003e@​Irieo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1442\"\u003ePyPSA/PyPSA#1442\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: busmap clustering for multilinks by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1441\"\u003ePyPSA/PyPSA#1441\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: follow up on \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1441\"\u003e#1441\u003c/a\u003e by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1445\"\u003ePyPSA/PyPSA#1445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnpin shapely upper bound by \u003ca href=\"https://github.com/brynpickering\"\u003e\u003ccode\u003e@​brynpickering\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1444\"\u003ePyPSA/PyPSA#1444\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: use pixi for model tests by \u003ca href=\"https://github.com/lkstrp\"\u003e\u003ccode\u003e@​lkstrp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1443\"\u003ePyPSA/PyPSA#1443\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/brynpickering\"\u003e\u003ccode\u003e@​brynpickering\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/pull/1444\"\u003ePyPSA/PyPSA#1444\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyPSA/PyPSA/compare/v1.0.3...v1.0.4\"\u003ehttps://github.com/PyPSA/PyPSA/compare/v1.0.3...v1.0.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.0.3\u003c/h2\u003e\n\u003cp\u003eRevised release notes are available in the \u003ca href=\"https://PyPSA.readthedocs.io/en/latest/release-notes.html\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyPSA/PyPSA/blob/master/docs/release-notes.md\"\u003epypsa's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.5\"\u003e\u003cstrong\u003ev1.0.5\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e4th December 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.5\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix curtailment, capacity, and capex expressions returning zero for non-extendable generators. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix using inactive generators in global carrier constraint. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix CVaR optimization to handle networks with zero operational costs. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix xarray broadcasting for rolling-horizon with linearized unit commitment optimization. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.4\"\u003e\u003cstrong\u003ev1.0.4\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e21st November 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.4\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix busmap clustering to correctly remap all bus ports in multi-port links. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of inactive \u003ccode\u003eStorageUnit\u003c/code\u003e or \u003ccode\u003eStore\u003c/code\u003e components (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003cli\u003eFix snapshot selection in operational limit global constraint with investment period. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded new example notebook demonstrating negative electricity prices in linearized unit commitment problem. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.3\"\u003e\u003cstrong\u003ev1.0.3\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e6th November 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.3\u0026quot; }\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix ramp_limit_up/down constraints: correctly detect components with ramp limits, handle rolling-horizon windows by using previous-window dispatch, and add unit tests for Link ramp limits and ramping constraints in rolling horizon mode. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.2\"\u003e\u003cstrong\u003ev1.0.2\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e24th October 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.2\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite recursion error when pickling networks. (\u003c!-- raw HTML omitted --\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.1\"\u003e\u003cstrong\u003ev1.0.1\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e20th October 2025\u003c!-- raw HTML omitted --\u003e { id=\u0026quot;v1.0.1\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix [\u003ccode\u003en.set_snapshots\u003c/code\u003e][pypsa.Network.set_snapshots] to synchronize investment period weightings when snapshots with new periods are set. (\u003c!-- raw HTML omitted --\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix scenario extraction methods ([pypsa.Network.get_scenario][] and [\u003ccode\u003en['scenario']\u003c/code\u003e][pypsa.Network.\u003cstrong\u003egetitem\u003c/strong\u003e]) to properly handle empty components (\u003c!-- raw HTML omitted --\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bus validation when adding global constraints via [pypsa.Network.add][], eliminating false warnings for GlobalConstraints. (\u003c!-- raw HTML omitted --\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix dimension name consistency when adding investment period weightings. (\u003c!-- raw HTML omitted --\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/releases/tag/v1.0.0\"\u003e\u003cstrong\u003ev1.0.0\u003c/strong\u003e\u003c/a\u003e \u003c!-- raw HTML omitted --\u003e14th October 2025\u003c!-- raw HTML omitted --\u003e 🎉 { id=\u0026quot;v1.0.0\u0026quot; }\u003c/h2\u003e\n\u003ch3\u003e\u003cstrong\u003ePyPSA 1.0\u003c/strong\u003e is here!\u003c/h3\u003e\n\u003cp\u003eCheck out \u003ca href=\"https://github.com/PyPSA/PyPSA/blob/master/docs/v1-guide.md\"\u003eWhat's new in PyPSA v1.0\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/470e3de1c8086f8805deca9d4c834d11e2f49c57\"\u003e\u003ccode\u003e470e3de\u003c/code\u003e\u003c/a\u003e [github-actions.ci] prepare release v1.0.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/56e9645a158e7ea8ae7df5bd2fd8b3cde7cbfe05\"\u003e\u003ccode\u003e56e9645\u003c/code\u003e\u003c/a\u003e prepare release \u003ccode\u003ev1.0.5\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/6c46fdd0f68be1543af9f17aac8af978f2030dfc\"\u003e\u003ccode\u003e6c46fdd\u003c/code\u003e\u003c/a\u003e fix: expressions returning zero for non-extendable generators (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1451\"\u003e#1451\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/325e6620340d350b3977049eb0a078542c3003d6\"\u003e\u003ccode\u003e325e662\u003c/code\u003e\u003c/a\u003e Fix broadcasting bug for rolling horizon with linearised UC case (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1464\"\u003e#1464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/a4b5416e8346b4e696c6b95d25d1aed28dfd6723\"\u003e\u003ccode\u003ea4b5416\u003c/code\u003e\u003c/a\u003e Update users.md / Meridian Economics (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1463\"\u003e#1463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/4c7037dbd8b241f29494ff6473ba97e36364ee87\"\u003e\u003ccode\u003e4c7037d\u003c/code\u003e\u003c/a\u003e Update example of stochastic optimization documentation (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/53324de38945dd273185d018002649186f9f514b\"\u003e\u003ccode\u003e53324de\u003c/code\u003e\u003c/a\u003e Update users.md (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1458\"\u003e#1458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/2532a8a251cfc58d7c49669dc3693d780bac7f16\"\u003e\u003ccode\u003e2532a8a\u003c/code\u003e\u003c/a\u003e docs: fix typo and improve description (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/7460437c63887d542c1b90d65f103e4e4ff1ca56\"\u003e\u003ccode\u003e7460437\u003c/code\u003e\u003c/a\u003e fix: using inactive generators in global carrier constraint (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyPSA/PyPSA/commit/681b9ac3fd5f6edeb9d23bf9ca288107f67b3965\"\u003e\u003ccode\u003e681b9ac\u003c/code\u003e\u003c/a\u003e ci: run model runs only with src changes (\u003ca href=\"https://redirect.github.com/PyPSA/PyPSA/issues/1462\"\u003e#1462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyPSA/PyPSA/compare/v0.34.1...v1.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asttokens` from 3.0.0 to 3.0.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/bdbf396fc0e006912ba82f1137dfd6b2d5aa9af2\"\u003e\u003ccode\u003ebdbf396\u003c/code\u003e\u003c/a\u003e Update mypy; add 3.14 to the CI; drop python 3.8 support (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/167\"\u003e#167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/f859c055e8453650e1987c5aefaaec36582d3a07\"\u003e\u003ccode\u003ef859c05\u003c/code\u003e\u003c/a\u003e Add tests for astroid v2, v3, and v4 to the CI (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/166\"\u003e#166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/84ef059ba28d08816d3d881e363b9ed42bbeae3a\"\u003e\u003ccode\u003e84ef059\u003c/code\u003e\u003c/a\u003e Adapt asttokens for astroid 4.x (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/165\"\u003e#165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9db9335648659520c7c8453bc39550fa4f95d539\"\u003e\u003ccode\u003e9db9335\u003c/code\u003e\u003c/a\u003e Various links improvements (\u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/163\"\u003e#163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3371ebf7f48f6a731d409fffd6ba235e6a95d85b\"\u003e\u003ccode\u003e3371ebf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/161\"\u003e#161\u003c/a\u003e from gristlabs/dependabot/pip/docs/requests-2.32.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3a60115d3efdb01efc8a6442b59fdd0071518e70\"\u003e\u003ccode\u003e3a60115\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.2 to 2.32.4 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/584b51c6c084455ad4597886657783d1b661ddfa\"\u003e\u003ccode\u003e584b51c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/160\"\u003e#160\u003c/a\u003e from gristlabs/dependabot/pip/docs/urllib3-2.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/3e9d703323ce94987bf9e030bd010eae13fa15b4\"\u003e\u003ccode\u003e3e9d703\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.2.2 to 2.5.0 in /docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/64d3f7c3637775fef832a9a9cdb78ec02da494e6\"\u003e\u003ccode\u003e64d3f7c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gristlabs/asttokens/issues/158\"\u003e#158\u003c/a\u003e from gristlabs/dependabot/pip/docs/jinja2-3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gristlabs/asttokens/commit/9b5fb1abfb171cfb1f01c2d996cbd31e9d1f0660\"\u003e\u003ccode\u003e9b5fb1a\u003c/code\u003e\u003c/a\u003e Bump jinja2 from 3.1.4 to 3.1.6 in /docs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gristlabs/asttokens/compare/v3.0.0...v3.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `attrs` from 25.3.0 to 25.4.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/hynek/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bottleneck` from 1.5.0 to 1.6.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydata/bottleneck/blob/master/RELEASE.rst\"\u003ebottleneck's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eBottleneck 1.6.0\u003c/h1\u003e\n\u003cp\u003e\u003cem\u003eRelease date 2025-09-05\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eMaintenance\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e- Add Python 3.14 support, drop Python 3.9 \n- Add free-threading trove classifier\n- Bump upper bound on numpy to account for numpy 2.3.x\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/3e5e705762b866e401eb9c0de9ce16b4cabc6348\"\u003e\u003ccode\u003e3e5e705\u003c/code\u003e\u003c/a\u003e MAINT: fix warning about \u003ccode\u003epp_*\u003c/code\u003e skip selector for PyPy wheels not being neede...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/e3978ab0b742fc1d826193dbdf81f8c0f96b9bcf\"\u003e\u003ccode\u003ee3978ab\u003c/code\u003e\u003c/a\u003e MNT: Prepare changelog for 1.6.0  (\u003ca href=\"https://redirect.github.com/pydata/bottleneck/issues/482\"\u003e#482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/aff8796c9ccb5e4fe5baa7b0dff0076eacdfcae3\"\u003e\u003ccode\u003eaff8796\u003c/code\u003e\u003c/a\u003e CI: windows-2019 runner was retired, move to windows-2022\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/f5f011f1e165f7ad8ce64d306aaff0a3f4d335a8\"\u003e\u003ccode\u003ef5f011f\u003c/code\u003e\u003c/a\u003e MAINT: add Python 3.14 support, drop Python 3.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/f3944e9b02b1fa48322624e2efd1468f33a05f79\"\u003e\u003ccode\u003ef3944e9\u003c/code\u003e\u003c/a\u003e MAINT: add free-threading trove classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydata/bottleneck/commit/148684f2bfd1af29e791fa6a7773641a7e025754\"\u003e\u003ccode\u003e148684f\u003c/code\u003e\u003c/a\u003e BLD: bump upper bound on numpy to account for numpy 2.3.x\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydata/bottleneck/compare/v1.5.0...v1.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cdsapi` from 0.7.6 to 0.7.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ecmwf/cdsapi/releases\"\u003ecdsapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.7.7\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ecmwf/cdsapi/compare/0.7.6...0.7.7\"\u003ehttps://github.com/ecmwf/cdsapi/compare/0.7.6...0.7.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ecmwf/cdsapi/commit/e1be102bce7b7dafb27e9831c42863fdeada557b\"\u003e\u003ccode\u003ee1be102\u003c/code\u003e\u003c/a\u003e Update setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ecmwf/cdsapi/commit/72d7cec0b611c2f71c1a69da4668368df5118cdb\"\u003e\u003ccode\u003e72d7cec\u003c/code\u003e\u003c/a\u003e back to development version\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ecmwf/cdsapi/compare/0.7.6...0.7.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.4.26 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37ea150bee10958559f804f128de2fdd48e1ed45\"\u003e\u003ccode\u003e37ea150\u003c/code\u003e\u003c/a\u003e 2025.11.12 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2fa50bb698145e2401e17b23f6969d3952a6f7c1\"\u003e\u003ccode\u003e2fa50bb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.2 to 5.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6cadb5304715523e57ea425f833aa3495a4e01e4\"\u003e\u003ccode\u003e6cadb53\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fb14ac49a976b1695d84b1ac1307276a20b3aac9\"\u003e\u003ccode\u003efb14ac4\u003c/code\u003e\u003c/a\u003e 2025.10.05 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2c7c7ee6b76a118191b685a4cc028d4241f22eb7\"\u003e\u003ccode\u003e2c7c7ee\u003c/code\u003e\u003c/a\u003e Add Python 3.14 classifier in setup.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1a5cb7b3771bba256755f88b3dcf3ac13f064622\"\u003e\u003ccode\u003e1a5cb7b\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/dea59605ef2b266c2e0e67938e8c8535a04b1211\"\u003e\u003ccode\u003edea5960\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/83566b7c993eef772facdaff59c7bba105675329\"\u003e\u003ccode\u003e83566b7\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ca2e121bdb304fd01f802d3b1ee6a65684f569f2\"\u003e\u003ccode\u003eca2e121\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.3.0 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.04.26...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cffi` from 1.17.1 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-cffi/cffi/releases\"\u003ecffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only) - huge thanks to the folks at Quansight Labs for all the work to get this one sorted!\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.0b1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support.\u003c/li\u003e\n\u003cli\u003eAdd CPython free-threaded support (3.14t+ only).\u003c/li\u003e\n\u003cli\u003eDrop Python \u0026lt;= 3.8 support.\u003c/li\u003e\n\u003cli\u003eFix order dependency affecting nested type size calculation (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/148\"\u003e#148\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\"\u003ehttps://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0b1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/6366c01d84e9a78e7e85f12ebe9760ba5d19b6d3\"\u003e\u003ccode\u003e6366c01\u003c/code\u003e\u003c/a\u003e release 2.0.0 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/95c847663aec401e4003927a274e4de9b8595f4f\"\u003e\u003ccode\u003e95c8476\u003c/code\u003e\u003c/a\u003e 2.0.0 post beta backports (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/195\"\u003e#195\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/195cbda66b6be9297ef6d584644e50cfdcca4e8a\"\u003e\u003ccode\u003e195cbda\u003c/code\u003e\u003c/a\u003e Release 2.0.0b1 (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/183\"\u003e#183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/b4bbe7940d3f76027534db1aecbae9b61c35221a\"\u003e\u003ccode\u003eb4bbe79\u003c/code\u003e\u003c/a\u003e fix version test to support beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/7ed073de66e713cf791b6fdfa23685c81fdfd6ad\"\u003e\u003ccode\u003e7ed073d\u003c/code\u003e\u003c/a\u003e Add support for the free-threaded build (\u003ca href=\"https://redirect.github.com/python-cffi/cffi/issues/178\"\u003e#178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-cffi/cffi/commit/67a170dc7972dc9361743690b38da3d963b200ef\"\u003e\u003ccode\u003e67a170d\u003c/code\u003e\u003c/a\u003e Change the license from MIT to MIT-no-attribution, which is the same without ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://githu...\n\n_Description has been truncated_","html_url":"https://github.com/ryanjenkinson/data-centre-modelling/pull/34","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanjenkinson%2Fdata-centre-modelling/issues/34","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/34/packages"}},{"old_version":"\u003c3.7.0","new_version":"\u003c3.8.0","update_type":"minor","path":null,"pr_created_at":"2025-11-24T04:50:40.000Z","version_change":"\u003c3.7.0 → \u003c3.8.0","issue":{"uuid":"3657076561","node_id":"PR_kwDOQbupqc61GrKj","number":22,"state":"open","title":"Update pyproj requirement from \u003c3.7.0 to \u003c3.8.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-24T04:50:40.000Z","updated_at":"2025-11-24T04:50:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"pyproj","old_version":"\u003c3.7.0","new_version":"\u003c3.8.0","repository_url":"https://github.com/pyproj4/pyproj"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [pyproj](https://github.com/pyproj4/pyproj) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.22 to 2.23 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/pyproj4/pyproj/pull/1479\"\u003epyproj4/pyproj#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Only import time.perf_counter by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1480\"\u003epyproj4/pyproj#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1481\"\u003epyproj4/pyproj#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Python 3.11+ by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1483\"\u003epyproj4/pyproj#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.1 to 0.6.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/pyproj4/pyproj/pull/1488\"\u003epyproj4/pyproj#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: update doc geometry_area_perimeter by \u003ca href=\"https://github.com/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Remove 'noqa: E501' from docstrings by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epyproj.crs: add imports to \u003cstrong\u003eall\u003c/strong\u003e by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1494\"\u003epyproj4/pyproj#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: replace black and isort with ruff format and lint by \u003ca href=\"https://github.com/mwtoews\"\u003e\u003ccode\u003e@​mwtoews\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1496\"\u003epyproj4/pyproj#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUILD/CI: Add win_arm64 wheel build by \u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.23 to 3.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/pyproj4/pyproj/pull/1502\"\u003epyproj4/pyproj#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 3.0.0 to 3.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/pyproj4/pyproj/pull/1505\"\u003epyproj4/pyproj#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBLD: Enable free-threading compatibility by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1512\"\u003epyproj4/pyproj#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add 3.13 free-threading wheels by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1514\"\u003epyproj4/pyproj#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-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/pyproj4/pyproj/pull/1520\"\u003epyproj4/pyproj#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1519\"\u003epyproj4/pyproj#1519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout 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/pyproj4/pyproj/pull/1521\"\u003epyproj4/pyproj#1521\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/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.11 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Add CRS imports to \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add win_arm64 wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.13 free-threading wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.14 and 3.14 free-threading wheels\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Add wheels for musllinux (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1477\"\u003e#1477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1446\"\u003e#1446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff \u0026amp; lint fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1455\"\u003e#1455\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1456\"\u003e#1456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.4.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1423\"\u003e#1423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.10 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1357\"\u003e#1357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.2 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add :meth:\u003ccode\u003eCRS.is_deprecated\u003c/code\u003e and :meth:\u003ccode\u003eCRS.get_non_deprecated\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1383\"\u003e#1383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePERF: thread local context (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add runtime \u0026amp; compiled PROJ versions (discussion \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1420\"\u003e#1420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Handle changes to HotineObliqueMercatorBConversion (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1429\"\u003e#1429\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.3.0 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Remove pkg_resources from setup.py (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Cython 3 compatibility fixes (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1321\"\u003e#1321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.9 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1111\"\u003e#1111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.2.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1291\"\u003e#1291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added allow_superseded kwargs to :class:\u003ccode\u003epyproj.transformer.TransformerGroup\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1269\"\u003e#1269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added :meth:\u003ccode\u003eCRS.to_2d\u003c/code\u003e to demote 3D CRS to 2D (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1266\"\u003e#1266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added parameter \u003ccode\u003eoutput_axis_rule\u003c/code\u003e to :meth:\u003ccode\u003eCRS.to_wkt\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1287\"\u003e#1287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: fix Geod.npts NaN handling (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1282\"\u003e#1282\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.0 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1223\"\u003e#1223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: PROJ 9.2 in wheels (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1243\"\u003e#1243\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/pyproj4/pyproj/commit/f16037d2c45c3274ef28b828998267c3390393c8\"\u003e\u003ccode\u003ef16037d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/878615decadbde676f9acc82bce9763d62fbacbe\"\u003e\u003ccode\u003e878615d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4813b2db7c0fb92f598748bb1aca85288765a354\"\u003e\u003ccode\u003e4813b2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1521\"\u003e#1521\u003c/a\u003e from pyproj4/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/66b8e0b2fb2f93a83be484cd3ae741c140123930\"\u003e\u003ccode\u003e66b8e0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/ff97ab97b5bfd02a714bf84ebd847ec366da48f8\"\u003e\u003ccode\u003eff97ab9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1519\"\u003e#1519\u003c/a\u003e from djhoese/remove-old-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3692f8aa7fc9373927178fa1774ae69811387cfb\"\u003e\u003ccode\u003e3692f8a\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1520\"\u003e#1520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f3815db4169e399271d87ce9970175edb4b4170b\"\u003e\u003ccode\u003ef3815db\u003c/code\u003e\u003c/a\u003e MNT: Update history with test removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e5ee13f82067e9c577a1bb5e2484ed91c5f96c22\"\u003e\u003ccode\u003ee5ee13f\u003c/code\u003e\u003c/a\u003e TST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26b3cdb7d68e677ebfec62549288eea02bc38ed9\"\u003e\u003ccode\u003e26b3cdb\u003c/code\u003e\u003c/a\u003e MNT: 3.7.2rc0 and update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0cd586a0fb7094b4f8fb43fe34dd2e249aec0da0\"\u003e\u003ccode\u003e0cd586a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1514\"\u003e#1514\u003c/a\u003e from djhoese/ci-313-ft\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/v2.0.2...3.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/kharadi-saqib/geospace/pull/22","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kharadi-saqib%2Fgeospace/issues/22","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/22/packages"}},{"old_version":"3.7.0","new_version":"3.7.2","update_type":"patch","path":null,"pr_created_at":"2025-11-01T06:01:50.000Z","version_change":"3.7.0 → 3.7.2","issue":{"uuid":"3577336442","node_id":"PR_kwDOBObiS86w9NkB","number":5886,"state":"closed","title":"Bump pyproj from 3.7.0 to 3.7.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-03T11:05:29.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-01T06:01:50.000Z","updated_at":"2025-11-03T11:05:38.000Z","time_to_close":191019,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pyproj","old_version":"3.7.0","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pyproj](https://github.com/pyproj4/pyproj) from 3.7.0 to 3.7.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.22 to 2.23 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/pyproj4/pyproj/pull/1479\"\u003epyproj4/pyproj#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Only import time.perf_counter by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1480\"\u003epyproj4/pyproj#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1481\"\u003epyproj4/pyproj#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Python 3.11+ by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1483\"\u003epyproj4/pyproj#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.1 to 0.6.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/pyproj4/pyproj/pull/1488\"\u003epyproj4/pyproj#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: update doc geometry_area_perimeter by \u003ca href=\"https://github.com/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Remove 'noqa: E501' from docstrings by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epyproj.crs: add imports to \u003cstrong\u003eall\u003c/strong\u003e by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1494\"\u003epyproj4/pyproj#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: replace black and isort with ruff format and lint by \u003ca href=\"https://github.com/mwtoews\"\u003e\u003ccode\u003e@​mwtoews\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1496\"\u003epyproj4/pyproj#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUILD/CI: Add win_arm64 wheel build by \u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.23 to 3.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/pyproj4/pyproj/pull/1502\"\u003epyproj4/pyproj#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 3.0.0 to 3.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/pyproj4/pyproj/pull/1505\"\u003epyproj4/pyproj#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBLD: Enable free-threading compatibility by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1512\"\u003epyproj4/pyproj#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add 3.13 free-threading wheels by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1514\"\u003epyproj4/pyproj#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-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/pyproj4/pyproj/pull/1520\"\u003epyproj4/pyproj#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1519\"\u003epyproj4/pyproj#1519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout 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/pyproj4/pyproj/pull/1521\"\u003epyproj4/pyproj#1521\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/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.2rc1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.2rc0\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.1 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1477\"\u003epyproj4/pyproj#1477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in  \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1475\"\u003epyproj4/pyproj#1475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: Add wheels for musllinux by \u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead. by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1450\"\u003epyproj4/pyproj#1450\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1452\"\u003epyproj4/pyproj#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 by \u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1455\"\u003epyproj4/pyproj#1455\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Disallow type error without code by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1456\"\u003epyproj4/pyproj#1456\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/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\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/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.11 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Add CRS imports to \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add win_arm64 wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.13 free-threading wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.14 and 3.14 free-threading wheels\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Add wheels for musllinux (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1477\"\u003e#1477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1446\"\u003e#1446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff \u0026amp; lint fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1455\"\u003e#1455\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1456\"\u003e#1456\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/pyproj4/pyproj/commit/f16037d2c45c3274ef28b828998267c3390393c8\"\u003e\u003ccode\u003ef16037d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/878615decadbde676f9acc82bce9763d62fbacbe\"\u003e\u003ccode\u003e878615d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4813b2db7c0fb92f598748bb1aca85288765a354\"\u003e\u003ccode\u003e4813b2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1521\"\u003e#1521\u003c/a\u003e from pyproj4/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/66b8e0b2fb2f93a83be484cd3ae741c140123930\"\u003e\u003ccode\u003e66b8e0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/ff97ab97b5bfd02a714bf84ebd847ec366da48f8\"\u003e\u003ccode\u003eff97ab9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1519\"\u003e#1519\u003c/a\u003e from djhoese/remove-old-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3692f8aa7fc9373927178fa1774ae69811387cfb\"\u003e\u003ccode\u003e3692f8a\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1520\"\u003e#1520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f3815db4169e399271d87ce9970175edb4b4170b\"\u003e\u003ccode\u003ef3815db\u003c/code\u003e\u003c/a\u003e MNT: Update history with test removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e5ee13f82067e9c577a1bb5e2484ed91c5f96c22\"\u003e\u003ccode\u003ee5ee13f\u003c/code\u003e\u003c/a\u003e TST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26b3cdb7d68e677ebfec62549288eea02bc38ed9\"\u003e\u003ccode\u003e26b3cdb\u003c/code\u003e\u003c/a\u003e MNT: 3.7.2rc0 and update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0cd586a0fb7094b4f8fb43fe34dd2e249aec0da0\"\u003e\u003ccode\u003e0cd586a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1514\"\u003e#1514\u003c/a\u003e from djhoese/ci-313-ft\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.0...3.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyproj\u0026package-manager=pip\u0026previous-version=3.7.0\u0026new-version=3.7.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/skyportal/skyportal/pull/5886","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/skyportal%2Fskyportal/issues/5886","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5886/packages"}},{"old_version":"3.6.1","new_version":"3.7.2","update_type":"minor","path":null,"pr_created_at":"2025-10-10T18:31:15.000Z","version_change":"3.6.1 → 3.7.2","issue":{"uuid":"3504080464","node_id":"PR_kwDOIoSAbM6tJ6DK","number":291,"state":"open","title":"Bump the pip-updates group across 1 directory with 26 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-10-10T18:31:15.000Z","updated_at":"2025-11-13T20:00:37.104Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-updates","update_count":26,"packages":[{"name":"beautifulsoup4","old_version":"4.11.1","new_version":"4.14.2"},{"name":"black","old_version":"25.1.0","new_version":"25.9.0","repository_url":"https://github.com/psf/black"},{"name":"blinker","old_version":"1.7.0","new_version":"1.9.0","repository_url":"https://github.com/pallets-eco/blinker"},{"name":"fido2","old_version":"1.2.0","new_version":"2.0.0","repository_url":"https://github.com/Yubico/python-fido2"},{"name":"flake8","old_version":"7.0.0","new_version":"7.3.0","repository_url":"https://github.com/pycqa/flake8"},{"name":"flake8-bugbear","old_version":"22.10.27","new_version":"24.12.12","repository_url":"https://github.com/PyCQA/flake8-bugbear"},{"name":"flask","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/flask"},{"name":"flask-wtf","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/pallets-eco/flask-wtf"},{"name":"freezegun","old_version":"1.2.2","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"govuk-bank-holidays","old_version":"0.15","new_version":"0.17","repository_url":"https://github.com/ministryofjustice/govuk-bank-holidays"},{"name":"govuk-frontend-jinja","old_version":"3.3.0","new_version":"3.8.0","repository_url":"https://github.com/LandRegistry/govuk-frontend-jinja"},{"name":"humanize","old_version":"4.4.0","new_version":"4.13.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"isort","old_version":"5.12.0","new_version":"6.1.0","repository_url":"https://github.com/PyCQA/isort"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"2.1.5","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"moto","old_version":"5.1.3","new_version":"5.1.14","repository_url":"https://github.com/getmoto/moto"},{"name":"notifications-python-client","old_version":"8.0.0","new_version":"10.0.1","repository_url":"https://github.com/alphagov/notifications-python-client"},{"name":"pyproj","old_version":"3.6.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-env","old_version":"1.1.5","new_version":"1.2.0","repository_url":"https://github.com/pytest-dev/pytest-env"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-xdist","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"pytz","old_version":"2022.6","new_version":"2025.2","repository_url":"https://github.com/stub42/pytz"},{"name":"requests-mock","old_version":"1.10.0","new_version":"1.12.1","repository_url":"https://github.com/jamielennox/requests-mock"},{"name":"shapely","old_version":"2.1.1","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"wtforms","old_version":"3.1.2","new_version":"3.2.1","repository_url":"https://github.com/pallets-eco/wtforms"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-updates group with 26 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.11.1` | `4.14.2` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.9.0` |\n| [blinker](https://github.com/pallets-eco/blinker) | `1.7.0` | `1.9.0` |\n| [fido2](https://github.com/Yubico/python-fido2) | `1.2.0` | `2.0.0` |\n| [flake8](https://github.com/pycqa/flake8) | `7.0.0` | `7.3.0` |\n| [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear) | `22.10.27` | `24.12.12` |\n| [flask](https://github.com/pallets/flask) | `3.0.2` | `3.0.3` |\n| [flask-wtf](https://github.com/pallets-eco/flask-wtf) | `1.2.1` | `1.2.2` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.2.2` | `1.5.5` |\n| [govuk-bank-holidays](https://github.com/ministryofjustice/govuk-bank-holidays) | `0.15` | `0.17` |\n| [govuk-frontend-jinja](https://github.com/LandRegistry/govuk-frontend-jinja) | `3.3.0` | `3.8.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.4.0` | `4.13.0` |\n| [isort](https://github.com/PyCQA/isort) | `5.12.0` | `6.1.0` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `2.1.5` | `3.0.3` |\n| [moto](https://github.com/getmoto/moto) | `5.1.3` | `5.1.14` |\n| [notifications-python-client](https://github.com/alphagov/notifications-python-client) | `8.0.0` | `10.0.1` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.6.1` | `3.7.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-env](https://github.com/pytest-dev/pytest-env) | `1.1.5` | `1.2.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.6.1` | `3.8.0` |\n| [pytz](https://github.com/stub42/pytz) | `2022.6` | `2025.2` |\n| [requests-mock](https://github.com/jamielennox/requests-mock) | `1.10.0` | `1.12.1` |\n| [shapely](https://github.com/shapely/shapely) | `2.1.1` | `2.1.2` |\n| [wtforms](https://github.com/pallets-eco/wtforms) | `3.1.2` | `3.2.1` |\n\n\nUpdates `beautifulsoup4` from 4.11.1 to 4.14.2\n\nUpdates `black` from 25.1.0 to 25.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.9.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for pre-python 3.7 \u003ccode\u003eawait/async\u003c/code\u003e as soft keywords/variable names\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash while formatting a long \u003ccode\u003edel\u003c/code\u003e statement containing tuples (\u003ca href=\"https://redirect.github.com/psf/black/issues/4628\"\u003e#4628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash while formatting expressions using the walrus operator in complex \u003ccode\u003ewith\u003c/code\u003e\nstatements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4630\"\u003e#4630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003e# fmt: skip\u003c/code\u003e followed by a comment at the end of file (\u003ca href=\"https://redirect.github.com/psf/black/issues/4635\"\u003e#4635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when a tuple appears in the \u003ccode\u003eas\u003c/code\u003e clause of a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4634\"\u003e#4634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when tuple is used as a context manager inside a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4646\"\u003e#4646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when formatting a \u003ccode\u003e\\\u003c/code\u003e followed by a \u003ccode\u003e\\r\u003c/code\u003e followed by a comment (\u003ca href=\"https://redirect.github.com/psf/black/issues/4663\"\u003e#4663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on a \u003ccode\u003e\\\\r\\n\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4673\"\u003e#4673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on \u003ccode\u003eawait ...\u003c/code\u003e (where \u003ccode\u003e...\u003c/code\u003e is a literal \u003ccode\u003eEllipsis\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on parenthesized expression inside a type parameter bound (\u003ca href=\"https://redirect.github.com/psf/black/issues/4684\"\u003e#4684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when using line ranges excluding indented single line decorated items\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a bug where one-liner functions/conditionals marked with \u003ccode\u003e# fmt: skip\u003c/code\u003e would still\nbe formatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4552\"\u003e#4552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003emultiline_string_handling\u003c/code\u003e with ternaries and dictionaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug where \u003ccode\u003estring_processing\u003c/code\u003e would not split f-strings directly after\nexpressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4680\"\u003e#4680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap the \u003ccode\u003ein\u003c/code\u003e clause of comprehensions across lines if necessary (\u003ca href=\"https://redirect.github.com/psf/black/issues/4699\"\u003e#4699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove parentheses around multiple exception types in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without\n\u003ccode\u003eas\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to normalize file newlines both from\nand to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eParser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRewrite tokenizer to improve performance and compliance (\u003ca href=\"https://redirect.github.com/psf/black/issues/4536\"\u003e#4536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\nparameter bounds and defaults. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4602\"\u003e#4602\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using an extra process when running with only one worker (\u003ca href=\"https://redirect.github.com/psf/black/issues/4734\"\u003e#4734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix the version check in the vim file to reject Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4567\"\u003e#4567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to read Black version from an additional section in\npyproject.toml: \u003ccode\u003e[project.dependency-groups]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4606\"\u003e#4606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild gallery docker image with python3-slim and reduce image size (\u003ca href=\"https://redirect.github.com/psf/black/issues/4686\"\u003e#4686\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.9.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for pre-python 3.7 \u003ccode\u003eawait/async\u003c/code\u003e as soft keywords/variable names\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash while formatting a long \u003ccode\u003edel\u003c/code\u003e statement containing tuples (\u003ca href=\"https://redirect.github.com/psf/black/issues/4628\"\u003e#4628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash while formatting expressions using the walrus operator in complex \u003ccode\u003ewith\u003c/code\u003e\nstatements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4630\"\u003e#4630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003e# fmt: skip\u003c/code\u003e followed by a comment at the end of file (\u003ca href=\"https://redirect.github.com/psf/black/issues/4635\"\u003e#4635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when a tuple appears in the \u003ccode\u003eas\u003c/code\u003e clause of a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4634\"\u003e#4634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when tuple is used as a context manager inside a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4646\"\u003e#4646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when formatting a \u003ccode\u003e\\\u003c/code\u003e followed by a \u003ccode\u003e\\r\u003c/code\u003e followed by a comment (\u003ca href=\"https://redirect.github.com/psf/black/issues/4663\"\u003e#4663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on a \u003ccode\u003e\\\\r\\n\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4673\"\u003e#4673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on \u003ccode\u003eawait ...\u003c/code\u003e (where \u003ccode\u003e...\u003c/code\u003e is a literal \u003ccode\u003eEllipsis\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on parenthesized expression inside a type parameter bound (\u003ca href=\"https://redirect.github.com/psf/black/issues/4684\"\u003e#4684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when using line ranges excluding indented single line decorated items\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a bug where one-liner functions/conditionals marked with \u003ccode\u003e# fmt: skip\u003c/code\u003e would still\nbe formatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4552\"\u003e#4552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003emultiline_string_handling\u003c/code\u003e with ternaries and dictionaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug where \u003ccode\u003estring_processing\u003c/code\u003e would not split f-strings directly after\nexpressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4680\"\u003e#4680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap the \u003ccode\u003ein\u003c/code\u003e clause of comprehensions across lines if necessary (\u003ca href=\"https://redirect.github.com/psf/black/issues/4699\"\u003e#4699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove parentheses around multiple exception types in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without\n\u003ccode\u003eas\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to normalize file newlines both from\nand to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eParser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRewrite tokenizer to improve performance and compliance (\u003ca href=\"https://redirect.github.com/psf/black/issues/4536\"\u003e#4536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\nparameter bounds and defaults. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4602\"\u003e#4602\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using an extra process when running with only one worker (\u003ca href=\"https://redirect.github.com/psf/black/issues/4734\"\u003e#4734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix the version check in the vim file to reject Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4567\"\u003e#4567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to read Black version from an additional section in\npyproject.toml: \u003ccode\u003e[project.dependency-groups]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4606\"\u003e#4606\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/af0ba72a73598c76189d6dd1b21d8532255d5942\"\u003e\u003ccode\u003eaf0ba72\u003c/code\u003e\u003c/a\u003e Prepare docs for release 25.9.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4751\"\u003e#4751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ffc01a027580d99401abb3197e83d50dc4f4c746\"\u003e\u003ccode\u003effc01a0\u003c/code\u003e\u003c/a\u003e Fix schema generation error caused by new click version (\u003ca href=\"https://redirect.github.com/psf/black/issues/4750\"\u003e#4750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/626b32fe2b5387656be6694da9a4b7a3148fb892\"\u003e\u003ccode\u003e626b32f\u003c/code\u003e\u003c/a\u003e Add normalizing for \u003ccode\u003e\\r\u003c/code\u003e style newlines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/57a461258f324e33bca189b2eb49d7f7a944ffe7\"\u003e\u003ccode\u003e57a4612\u003c/code\u003e\u003c/a\u003e Fix mypy type issue (\u003ca href=\"https://redirect.github.com/psf/black/issues/4745\"\u003e#4745\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4f6ad7cf8c3092e0fb4d82f54fe77ccde134468a\"\u003e\u003ccode\u003e4f6ad7c\u003c/code\u003e\u003c/a\u003e Wrap the \u003ccode\u003ein\u003c/code\u003e clause of comprehensions across lines if necessary (\u003ca href=\"https://redirect.github.com/psf/black/issues/4699\"\u003e#4699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/24f516961720c5578069dee30415b776359b7be5\"\u003e\u003ccode\u003e24f5169\u003c/code\u003e\u003c/a\u003e ci: Run diff-shades on unstable instead of preview (\u003ca href=\"https://redirect.github.com/psf/black/issues/4741\"\u003e#4741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4d55e6017993ee3f0927524e8bc19ead8de9e8ed\"\u003e\u003ccode\u003e4d55e60\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4744\"\u003e#4744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0cf39efdbc3aaea455f95d31e5b42efb6bd61478\"\u003e\u003ccode\u003e0cf39ef\u003c/code\u003e\u003c/a\u003e Improve the performance of get_string_prefix (\u003ca href=\"https://redirect.github.com/psf/black/issues/4742\"\u003e#4742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1f779dec013db37475fa56a5c9939a09eab7e7d6\"\u003e\u003ccode\u003e1f779de\u003c/code\u003e\u003c/a\u003e Fix line ranges decorator edge case (\u003ca href=\"https://redirect.github.com/psf/black/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/203fd6b5cdad975178b8174394a7f7fb13d14f02\"\u003e\u003ccode\u003e203fd6b\u003c/code\u003e\u003c/a\u003e Optimize Line string method (\u003ca href=\"https://redirect.github.com/psf/black/issues/4739\"\u003e#4739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...25.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `blinker` from 1.7.0 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/blinker/releases\"\u003eblinker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.9.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.9.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.9.0/\"\u003ehttps://pypi.org/project/blinker/1.9.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/stable/#version-1-9-0\"\u003ehttps://blinker.readthedocs.io/en/stable/#version-1-9-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/blinker/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/blinker/milestone/1?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e, \u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/173\"\u003e#173\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.2\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.2/\"\u003ehttps://pypi.org/project/blinker/1.8.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-2\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-2\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify type for \u003ccode\u003e_async_wrapper\u003c/code\u003e and \u003ccode\u003e_sync_wrapper\u003c/code\u003e arguments. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/156\"\u003e#156\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.1\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.1/\"\u003ehttps://pypi.org/project/blinker/1.8.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-1\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore identity handling for \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eint\u003c/code\u003e senders. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/148\"\u003e#148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.WeakNamespace\u003c/code\u003e import. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/149\"\u003e#149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.receiver_connected import\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/153\"\u003e#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse types from \u003ccode\u003ecollections.abc\u003c/code\u003e instead of \u003ccode\u003etyping\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/150\"\u003e#150\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully specify exported types as reported by pyright. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/152\"\u003e#152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.0 feature release, which may include new features, remove previously deprecated code, or add new deprecations. The 1.8.x line is now the supported fix branch, support has ended for the 1.7.x line. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.0/\"\u003ehttps://pypi.org/project/blinker/1.8.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-0\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-0\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;blinker\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/128\"\u003e#128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify that the deprecated \u003ccode\u003etemporarily_connected_to\u003c/code\u003e will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated global \u003ccode\u003ereceiver_connected\u003c/code\u003e signal and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated \u003ccode\u003eWeakNamespace\u003c/code\u003e and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eGreatly simplify how the library uses weakrefs. This is a significant change internally but should not affect any public API. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/144\"\u003e#144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose the namespace used by \u003ccode\u003esignal()\u003c/code\u003e as \u003ccode\u003edefault_namespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/145\"\u003e#145\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-eco/blinker/blob/main/CHANGES.rst\"\u003eblinker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e175\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e,\n\u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. :pr:\u003ccode\u003e172\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down.\n:issue:\u003ccode\u003e173\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.2\u003c/h2\u003e\n\u003cp\u003eReleased 2024-05-06\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify type for \u003ccode\u003e_async_wrapper\u003c/code\u003e and \u003ccode\u003e_sync_wrapper\u003c/code\u003e arguments.\n:pr:\u003ccode\u003e156\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.1\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-28\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore identity handling for \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eint\u003c/code\u003e senders. :pr:\u003ccode\u003e148\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.WeakNamespace\u003c/code\u003e import. :pr:\u003ccode\u003e149\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.receiver_connected import\u003c/code\u003e. :pr:\u003ccode\u003e153\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse types from \u003ccode\u003ecollections.abc\u003c/code\u003e instead of \u003ccode\u003etyping\u003c/code\u003e. :pr:\u003ccode\u003e150\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFully specify exported types as reported by pyright. :pr:\u003ccode\u003e152\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;blinker\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e128\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSpecify that the deprecated \u003ccode\u003etemporarily_connected_to\u003c/code\u003e will be removed in\nthe next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated global \u003ccode\u003ereceiver_connected\u003c/code\u003e\nsignal and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated \u003ccode\u003eWeakNamespace\u003c/code\u003e and specify\nthat it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eGreatly simplify how the library uses weakrefs. This is a significant change\ninternally but should not affect any public API. :pr:\u003ccode\u003e144\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eExpose the namespace used by \u003ccode\u003esignal()\u003c/code\u003e as \u003ccode\u003edefault_namespace\u003c/code\u003e.\n:pr:\u003ccode\u003e145\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-eco/blinker/commit/669f3a027828d19786e708b511277fabcd6b9532\"\u003e\u003ccode\u003e669f3a0\u003c/code\u003e\u003c/a\u003e release version 1.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/cfe116fa7912d8dcb0deee4907aa63d1efaadf5b\"\u003e\u003ccode\u003ecfe116f\u003c/code\u003e\u003c/a\u003e try disabling attestions on test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/16e4bd70a19353d9d7cf47e4df7de54936296377\"\u003e\u003ccode\u003e16e4bd7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/174\"\u003e#174\u003c/a\u003e from projectgus/bugfix/weakref_disconnect_shutdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/42561fdf065032f5c39aea04d8c3fb4db93f73f3\"\u003e\u003ccode\u003e42561fd\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;Exception ignored\u0026quot; in weakref callback during interpreter shutdown.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/dcce3e97743494433025e0b68f742f3582b6ba6a\"\u003e\u003ccode\u003edcce3e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e from pallets-eco/drop-python3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/efa95eaa080b0d4a8dcfc46ad1f387ea1ddebd97\"\u003e\u003ccode\u003eefa95ea\u003c/code\u003e\u003c/a\u003e drop support for python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/82305185358d8ce21619ec0f324688a14a89c23b\"\u003e\u003ccode\u003e8230518\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/94f1202f08c6d00a9fe1ecf5c8cba9da84e4b22f\"\u003e\u003ccode\u003e94f1202\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/8c983ecd764e1d113d24522838c2a7312460b7eb\"\u003e\u003ccode\u003e8c983ec\u003c/code\u003e\u003c/a\u003e remove previously deprecated code (\u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/f5915f3bfcd9f9da0caf6cd4858bf68068c52963\"\u003e\u003ccode\u003ef5915f3\u003c/code\u003e\u003c/a\u003e set up pre-commit lite workflow\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/blinker/compare/1.7.0...1.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fido2` from 1.2.0 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Yubico/python-fido2/releases\"\u003efido2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epython-fido2 2.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.0.0 (released 2025-05-20)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSee also the migration guide: doc/Migration_1-2.adoc.\u003c/li\u003e\n\u003cli\u003ePython 3.10 or later is now required.\u003c/li\u003e\n\u003cli\u003eWebAuthn dataclasses have been updated to align with the WebAuthn Level 3\nWorking Draft. Constructors now require keyword arguments (\u003ccode\u003ekwargs_only=True\u003c/code\u003e),\nand serialization to/from dictionaries is compatible with standardized JSON\nformats.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003efeatures.webauthn_json_mapping\u003c/code\u003e flag has been removed, as its\nbehavior (standardized JSON mapping) is now default.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFido2Client\u003c/code\u003e and \u003ccode\u003eWindowsClient\u003c/code\u003e constructors now accept a\n\u003ccode\u003eClientDataCollector\u003c/code\u003e instance instead of \u003ccode\u003eorigin\u003c/code\u003e and \u003ccode\u003everify\u003c/code\u003e parameters.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWindowsClient\u003c/code\u003e has been relocated to \u003ccode\u003efido2.client.windows\u003c/code\u003e. Importing this\nclass on non-Windows platforms will now raise an \u003ccode\u003eImportError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFido2Client\u003c/code\u003e methods now return \u003ccode\u003eRegistrationResponse\u003c/code\u003e and\n\u003ccode\u003eAuthenticationResponse\u003c/code\u003e objects, instead of raw attestation/assertion data.\u003c/li\u003e\n\u003cli\u003eCTAP2/WebAuthn extension handling has been redesigned. \u003ccode\u003eFido2Client\u003c/code\u003e now\nexpects a list of \u003ccode\u003eCtap2Extension\u003c/code\u003e instances. Default behavior includes\nextensions commonly supported by browsers.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003efido2.cbor\u003c/code\u003e module's \u003ccode\u003eload_x\u003c/code\u003e and \u003ccode\u003edump_x\u003c/code\u003e functions have been made\nprivate (renamed with a leading underscore) and should not be used directly.\u003c/li\u003e\n\u003cli\u003ePreviously deprecated functions and APIs have been removed.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003e__version__\u003c/code\u003e attribute in \u003ccode\u003efido2/__init__.py\u003c/code\u003e has been removed. Use\n\u003ccode\u003eimportlib.metadata.version('fido2')\u003c/code\u003e to get the package version.\u003c/li\u003e\n\u003cli\u003eAdd support for Persistent PinUvAuthToken and encIdentifier.\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ehmac-secret-mc\u003c/code\u003e and \u003ccode\u003ethirdPartyPayments\u003c/code\u003e exensions.\u003c/li\u003e\n\u003cli\u003eAdd new GetInfo fields based on CTAP 2.2\u003c/li\u003e\n\u003cli\u003eUpdate COSE algorithnm types.\u003c/li\u003e\n\u003cli\u003eBuilding the library now requires Poetry version 2.0 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epython-fido2 2.0.0-beta.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.0.0-beta.1 (released 2025-02-26) Preview release\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePreview release: The API may undergo changes prior to the final 2.0.0 release!\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Python \u0026gt;= 3.10\u003c/li\u003e\n\u003cli\u003eBuilding requires Poetry \u0026gt;= 2.0\u003c/li\u003e\n\u003cli\u003eWebAuthn dataclasses have been updated to reflect the current state of the spec\n(level 3 working draft), constructors require arguments to be passed by name\n(kwargs_only), and serialization to/from dict is compatible with the standardized\nJSON formats.\u003c/li\u003e\n\u003cli\u003efeatures.webauthn_json_mapping has been removed, as this behavior is now the\nstandard.\u003c/li\u003e\n\u003cli\u003eWindowsClient has been moved to fido2.client.windows. This class can no longer be\nimported on non-windows platforms (throws ImportError).\u003c/li\u003e\n\u003cli\u003eUse RegistrationResponse and AuthenticationResponse classes as return values in\nFido2Client.\u003c/li\u003e\n\u003cli\u003eCTAP2/WebAuthn extension handling has been rewritten, Fido2Client now takes a list\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/Yubico/python-fido2/blob/main/NEWS\"\u003efido2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cul\u003e\n\u003cli\u003eVersion 2.0.0 (released 2025-05-20)\n** See also the migration guide: doc/Migration_1-2.adoc.\n** Python 3.10 or later is now required.\n** WebAuthn dataclasses have been updated to align with the WebAuthn Level 3\nWorking Draft. Constructors now require keyword arguments (\u003ccode\u003ekwargs_only=True\u003c/code\u003e),\nand serialization to/from dictionaries is compatible with standardized JSON\nformats.\n** The \u003ccode\u003efeatures.webauthn_json_mapping\u003c/code\u003e flag has been removed, as its\nbehavior (standardized JSON mapping) is now default.\n** \u003ccode\u003eFido2Client\u003c/code\u003e and \u003ccode\u003eWindowsClient\u003c/code\u003e constructors now accept a\n\u003ccode\u003eClientDataCollector\u003c/code\u003e instance instead of \u003ccode\u003eorigin\u003c/code\u003e and \u003ccode\u003everify\u003c/code\u003e parameters.\n** \u003ccode\u003eWindowsClient\u003c/code\u003e has been relocated to \u003ccode\u003efido2.client.windows\u003c/code\u003e. Importing this\nclass on non-Windows platforms will now raise an \u003ccode\u003eImportError\u003c/code\u003e.\n** \u003ccode\u003eFido2Client\u003c/code\u003e methods now return \u003ccode\u003eRegistrationResponse\u003c/code\u003e and\n\u003ccode\u003eAuthenticationResponse\u003c/code\u003e objects, instead of raw attestation/assertion data.\n** CTAP2/WebAuthn extension handling has been redesigned. \u003ccode\u003eFido2Client\u003c/code\u003e now\nexpects a list of \u003ccode\u003eCtap2Extension\u003c/code\u003e instances. Default behavior includes\nextensions commonly supported by browsers.\n** The \u003ccode\u003efido2.cbor\u003c/code\u003e module's \u003ccode\u003eload_x\u003c/code\u003e and \u003ccode\u003edump_x\u003c/code\u003e functions have been made\nprivate (renamed with a leading underscore) and should not be used directly.\n** Previously deprecated functions and APIs have been removed.\n** The \u003ccode\u003e__version__\u003c/code\u003e attribute in \u003ccode\u003efido2/__init__.py\u003c/code\u003e has been removed. Use\n\u003ccode\u003eimportlib.metadata.version('fido2')\u003c/code\u003e to get the package version.\n** Add new GetInfo fields based on CTAP 2.2.\n** Add support for Persistent PinUvAuthToken and encIdentifier.\n** Add support for hmac-secret-mc and thirdPartyPayments exensions.\n** Update COSE algorithm types.\n** Building the library now requires Poetry version 2.0 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/18cdb62fce476c3f3b864dee924c21e314aadc6a\"\u003e\u003ccode\u003e18cdb62\u003c/code\u003e\u003c/a\u003e Update dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/3b28eee9f148ece775b02ebab1b5989d4c032c08\"\u003e\u003ccode\u003e3b28eee\u003c/code\u003e\u003c/a\u003e Update NEWS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/e484c54b5f114976691e0049638f2fa7f7cc11bf\"\u003e\u003ccode\u003ee484c54\u003c/code\u003e\u003c/a\u003e Add comment for clarification\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/3c21f0c9b769f8e672e7d42bca5ca1f9354e5f3d\"\u003e\u003ccode\u003e3c21f0c\u003c/code\u003e\u003c/a\u003e Bump version, update NEWS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/2c392512c52028ecb7aba4f10c3d201771e6ab55\"\u003e\u003ccode\u003e2c39251\u003c/code\u003e\u003c/a\u003e Use TYPE_CHECKING\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/57e970e17fef820197121c40516518333ac16dab\"\u003e\u003ccode\u003e57e970e\u003c/code\u003e\u003c/a\u003e Set sdist timestamps to commit date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/acd5616826d02b53201e8f5e538166589c8250bb\"\u003e\u003ccode\u003eacd5616\u003c/code\u003e\u003c/a\u003e Merge PR \u003ca href=\"https://redirect.github.com/Yubico/python-fido2/issues/254\"\u003e#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/3f258aa27a59e6edc840f4abd1a343735139c434\"\u003e\u003ccode\u003e3f258aa\u003c/code\u003e\u003c/a\u003e Update docstrings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/2d685d2088694cd816e84f0a0ede872f461cc42d\"\u003e\u003ccode\u003e2d685d2\u003c/code\u003e\u003c/a\u003e Organize imports with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/b7d6a01bb2d88cc4a8759c1bc8a1aa6300ee0972\"\u003e\u003ccode\u003eb7d6a01\u003c/code\u003e\u003c/a\u003e Replace black and flake8 with ruff\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Yubico/python-fido2/compare/1.2.0...2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8` from 7.0.0 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/c48217e1fc006c2dddd14df54e83b67da15de5cd\"\u003e\u003ccode\u003ec48217e\u003c/code\u003e\u003c/a\u003e Release 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/f9e0f33281d5bb892cae2c674ac398439d99c732\"\u003e\u003ccode\u003ef9e0f33\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1986\"\u003e#1986\u003c/a\u003e from PyCQA/document-f542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6bcdb628597fa2d03494965089ff87a492ffc1e9\"\u003e\u003ccode\u003e6bcdb62\u003c/code\u003e\u003c/a\u003e document F542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/70a15b8890d5bdf8c449ebb1b5259bd0140cc16b\"\u003e\u003ccode\u003e70a15b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1985\"\u003e#1985\u003c/a\u003e from PyCQA/upgrade-deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/4941a3e32e54488698ecbc23993bfeb2a60c0fc5\"\u003e\u003ccode\u003e4941a3e\u003c/code\u003e\u003c/a\u003e upgrade pyflakes / pycodestyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/23e4005c5501999c29e1e3774de7ed18d1e4e22d\"\u003e\u003ccode\u003e23e4005\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1983\"\u003e#1983\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/019424b80d3d7d5d8a2a1638f5877080546e3f46\"\u003e\u003ccode\u003e019424b\u003c/code\u003e\u003c/a\u003e add support for t-strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6b6f3d5fefecc994a06f425c18c3cddc9b71e4a4\"\u003e\u003ccode\u003e6b6f3d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1980\"\u003e#1980\u003c/a\u003e from PyCQA/asottile-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/8dfa6695b4fb1e1401b357367a0a71037d29f6aa\"\u003e\u003ccode\u003e8dfa669\u003c/code\u003e\u003c/a\u003e add rtd sphinx config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/ce3411118382d9332feb2749c8f417d10bfa2584\"\u003e\u003ccode\u003ece34111\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1976\"\u003e#1976\u003c/a\u003e from PyCQA/document-f824\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pycqa/flake8/compare/7.0.0...7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8-bugbear` from 22.10.27 to 24.12.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/releases\"\u003eflake8-bugbear's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e24.12.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB012 and B025 now also handle try/except* (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip B028 if warnings.warn is called with \u003ccode\u003e*args\u003c/code\u003e or \u003ccode\u003e**kwargs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd B911: itertools.batched without strict= (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReadme has anchors per check (they do not seem to render on GitHub tho)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.10.31\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB041: New dictionary same key AND value check (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/496\"\u003e#496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB037: Fix typo in error message\u003c/li\u003e\n\u003cli\u003eB024: No longer treats assigned class variables as abstract (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/471\"\u003e#471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump required attrs version to 22.2.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.8.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB910: implement to suggest using Counter() instead of defaultdict(int) (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/489\"\u003e#489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB901: Do not trigger with explicit Generator return type (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/481\"\u003e#481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB008: add some comments, rename b008_extend_immutable_calls (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB040: exception with note added not reraised or used (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB039, Add \u003ccode\u003eContextVar\u003c/code\u003e with mutable literal or function call as default\u003c/li\u003e\n\u003cli\u003eB040: Add Exception with added note not reraised. (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRun tests in Python 3.13\u003c/li\u003e\n\u003cli\u003eType annotated code (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/481\"\u003e#481\u003c/a\u003e + \u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/483\"\u003e#483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace hash with unsafe_hash (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.4.26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB909: Fix false positive affecting containers of mutables (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/469\"\u003e#469\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.4.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB950: Add pragma comment to line length ignores (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/463\"\u003e#463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB909: Add more cases to detect + more container mutating functions (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB902: Remove decorators named validator and root_validator from B902 checks (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/459\"\u003e#459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB038: Change B038 to B909 and make it optional (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/456\"\u003e#456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB038: Restrict rule to mutation functions only (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/453\"\u003e#453\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB036: Fix crash on \u003ccode\u003eraise\u003c/code\u003e statements raising something other than\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB038: Add check for mutations of loop iterator (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/446\"\u003e#446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB037: Add check for yielding or returning values in \u003cstrong\u003einit\u003c/strong\u003e() (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB017: make B017 also apply to BaseException (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/439\"\u003e#439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB036: Add check for except BaseException without re-raising (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/438\"\u003e#438\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e23.12.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB018: to detect useless-statements at all levels (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB018: Add classname to b018 useless-expression output (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB018: Include tuples in b018 useless-statement check (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/432\"\u003e#432\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/PyCQA/flake8-bugbear/commit/3a140377c8f1f585013a1566f2c8bb3ead9c329c\"\u003e\u003ccode\u003e3a14037\u003c/code\u003e\u003c/a\u003e Update CHANGES + move to version 24.12.12 to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/761dbe20148c4cdf18401789812b4a2e50257519\"\u003e\u003ccode\u003e761dbe2\u003c/code\u003e\u003c/a\u003e Make rstcheck pass again sadly ignoring anchor links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/7ee19764bf20abcf999898f5268f65b3ee1caf09\"\u003e\u003ccode\u003e7ee1976\u003c/code\u003e\u003c/a\u003e README: Add anchors for rules and config options (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/491\"\u003e#491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/b96027296277c210bbd412c78842f6f731366d0d\"\u003e\u003ccode\u003eb960272\u003c/code\u003e\u003c/a\u003e add except* support to B012\u0026amp;B025 (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/4fed293390eff2db0e3ab0658d69828ac82dfb3e\"\u003e\u003ccode\u003e4fed293\u003c/code\u003e\u003c/a\u003e Skip \u003ccode\u003eB028\u003c/code\u003e if \u003ccode\u003ewarnings.warn\u003c/code\u003e is called with \u003ccode\u003e*args\u003c/code\u003e or \u003ccode\u003e**kwargs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/994f3dd578005ec6eafff3f8fa11c25e44f5e087\"\u003e\u003ccode\u003e994f3dd\u003c/code\u003e\u003c/a\u003e Add B911: itertools.batched without strict= (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/108bba413ec71eada5c6848114614d61352557de\"\u003e\u003ccode\u003e108bba4\u003c/code\u003e\u003c/a\u003e Fix README format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/72f6116f895af3270707d3795227be63f67641af\"\u003e\u003ccode\u003e72f6116\u003c/code\u003e\u003c/a\u003e Update CHANGES + move to version 24.10.31 to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/07a5676b2181ecaf3be8fceec63b4350b445aa07\"\u003e\u003ccode\u003e07a5676\u003c/code\u003e\u003c/a\u003e Add scentence really explaining B041\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/95f87911a787a05ac22106d50c29a57fd8651e6f\"\u003e\u003ccode\u003e95f8791\u003c/code\u003e\u003c/a\u003e Add B041: Duplicate key-value pairs in dictionary literals (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/496\"\u003e#496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/compare/22.10.27...24.12.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` 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/flask/releases\"\u003eflask'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 a fix release for the 3.0.x feature branch.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.0.3/\"\u003ehttps://pypi.org/project/Flask/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/3.0.x/changes/#version-3-0-3\"\u003ehttps://flask.palletsprojects.com/en/3.0.x/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/35?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/35?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5448\"\u003e#5448\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't initialize the \u003ccode\u003ecli\u003c/code\u003e attribute in the sansio scaffold, but rather in the \u003ccode\u003eFlask\u003c/code\u003e concrete class. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5270\"\u003e#5270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-07\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e5448\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't initialize the \u003ccode\u003ecli\u003c/code\u003e attribute in the sansio scaffold, but rather in\nthe \u003ccode\u003eFlask\u003c/code\u003e concrete class. :pr:\u003ccode\u003e5270\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c12a5d874c5a014495eb2db8a73f40037bc813ac\"\u003e\u003ccode\u003ec12a5d8\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/5e22cc9eec0d1da2da706ccf724fde702b30d5f2\"\u003e\u003ccode\u003e5e22cc9\u003c/code\u003e\u003c/a\u003e Don't set the cli attribute in the sansio scaffold (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/5fdce4c331ac530280cc941179d364a07f4a1088\"\u003e\u003ccode\u003e5fdce4c\u003c/code\u003e\u003c/a\u003e Don't set the cli attribute in the sansio scaffold\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/adb7dd99c295a28726c8d818fba54c7b3f958ecc\"\u003e\u003ccode\u003eadb7dd9\u003c/code\u003e\u003c/a\u003e don't access app.logger when configuring app.logger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/b73939095564ec5c088c53e7595b00d174a018f5\"\u003e\u003ccode\u003eb739390\u003c/code\u003e\u003c/a\u003e support FIPS builds without SHA-1 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5460\"\u003e#5460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/db461112c70d5f2bf93c7a6ac27eeb665c232dd0\"\u003e\u003ccode\u003edb46111\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/7320e311a0a3f190351173f8be90cab31dadbf73\"\u003e\u003ccode\u003e7320e31\u003c/code\u003e\u003c/a\u003e start version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/87d5f5b9a9697434e6d972b021201105eabb54e6\"\u003e\u003ccode\u003e87d5f5b\u003c/code\u003e\u003c/a\u003e update project files (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5457\"\u003e#5457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/d5e321b792cd6f3cd7b072d175f47eacbd5ee14f\"\u003e\u003ccode\u003ed5e321b\u003c/code\u003e\u003c/a\u003e release version 3.0.2 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5403\"\u003e#5403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pallets/flask/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 `flask-wtf` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-wtf/releases\"\u003eflask-wtf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove the project to the pallets-eco organization. \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/602\"\u003e#602\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.8. Start support for Python 3.13. \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/603\"\u003e#603\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-eco/flask-wtf/blob/main/docs/changes.rst\"\u003eflask-wtf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2024-10-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMove the project to the pallets-eco organization. :pr:\u003ccode\u003e602\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.8. Start support for Python 3.13. :pr:\u003ccode\u003e603\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-eco/flask-wtf/commit/2e142951788d8209815fd4797c93f6f3c275ed71\"\u003e\u003ccode\u003e2e14295\u003c/code\u003e\u003c/a\u003e chore: pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/552b7a763235abbd69efc732147ec1e2c4c61ac8\"\u003e\u003ccode\u003e552b7a7\u003c/code\u003e\u003c/a\u003e chore: bump to 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/32f12767656e0f4304221e62c027fe99b67ea037\"\u003e\u003ccode\u003e32f1276\u003c/code\u003e\u003c/a\u003e chore: install 'build' dependency for the release GHA workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/f712367414346196e7fc436ad771533ed2c98898\"\u003e\u003ccode\u003ef712367\u003c/code\u003e\u003c/a\u003e chore: dependencies update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/b929162626b813b7ee2a8edb58fce861cd2e34af\"\u003e\u003ccode\u003eb929162\u003c/code\u003e\u003c/a\u003e chore: use Flask inspired GHA workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/07049e3b87aec17c693dd8cd6993e09bce679705\"\u003e\u003ccode\u003e07049e3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/604\"\u003e#604\u003c/a\u003e from azmeuk/flask-pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/49a13806e95b87735f7c196663ef5155a752dfec\"\u003e\u003ccode\u003e49a1380\u003c/code\u003e\u003c/a\u003e chore: pre-commit configuration insipred from Flask\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/f2bbd1b67a982131278488cc18ba1f65b3caafac\"\u003e\u003ccode\u003ef2bbd1b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/603\"\u003e#603\u003c/a\u003e from azmeuk/py313\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/d3cd8bf1e0d4dbd15daf1cbbf521da41e2c30d50\"\u003e\u003ccode\u003ed3cd8bf\u003c/code\u003e\u003c/a\u003e chore: stop support for python 3.8; start support for python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/0b2e5e413efb614b47f5deb8416847555e2ea07a\"\u003e\u003ccode\u003e0b2e5e4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/602\"\u003e#602\u003c/a\u003e from azmeuk/pallets-eco\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-wtf/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.2.2 to 1.5.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spulec/freezegun/blob/master/CHANGELOG\"\u003efreezegun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow parametrized arguments called 'func' (Broken in 1.5.4)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Ability to yield fixtures (broken in 1.5.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility with pytest 8.4.0 when using fixtures\u003c/li\u003e\n\u003cli\u003eAdd (back) class-decorator overload to guarantee Pytype understands it\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.7\u003c/li\u003e\n\u003cli\u003eExplicitly marks support for Python 3.13\u003c/li\u003e\n\u003cli\u003eImproved project documentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the typing of the \u003ccode\u003etick()\u003c/code\u003e method, and improve it's behaviour.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe default ignore list now contains the \u003ccode\u003equeue\u003c/code\u003e-package\u003c/li\u003e\n\u003cli\u003eAdded a missing \u003ccode\u003emove_to\u003c/code\u003e-function when calling \u003ccode\u003efreeze_time(tick=True)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixes a rounding error in \u003ccode\u003etime.time_ns()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed a bug where the default ignore list could not be empty (\u003ccode\u003econfigure(default_ignore_list=[])\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAll \u003ccode\u003etick()\u003c/code\u003e methods now return the new datetime (instead of None)\u003c/li\u003e\n\u003cli\u003eType improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e-support from 1.3.x introduced quite a few  bugs, so that functionality is now hidden behind a flag:\n\u003ccode\u003ewith freeze_time('1970-01-02', real_asyncio=True):\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded documentation for the \u003ccode\u003ereal_asyncio\u003c/code\u003e parameter in the \u003ccode\u003eREADME.rst\u003c/code\u003e file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the release number in the build\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003easyncio\u003c/code\u003e support to avoid \u003ccode\u003eawait asyncio.sleep(1)\u003c/code\u003e hanging forever.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.12\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/spulec/freezegun/commit/c9bf52c5aa12ea1b5b8647a136a92504ea071f2f\"\u003e\u003ccode\u003ec9bf52c\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0f2bd7ed8b420da73372f4cbb0207b777caa66e9\"\u003e\u003ccode\u003e0f2bd7e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/582\"\u003e#582\u003c/a\u003e from spulec/fixture-called-func\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/a6080557cbcbe4891843934c1334430bb1c5ead7\"\u003e\u003ccode\u003ea608055\u003c/code\u003e\u003c/a\u003e Allow parametrized arguments with name 'func'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/2bb47113a5f9f290d26630c92732e58f49557179\"\u003e\u003ccode\u003e2bb4711\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/7599eeea16b8f206e881892dc104128a5b36de82\"\u003e\u003ccode\u003e7599eee\u003c/code\u003e\u003c/a\u003e Add 1.5.4 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0d00e7ddd9ad33fc63fbed29af17853b18bc3c61\"\u003e\u003ccode\u003e0d00e7d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/579\"\u003e#579\u003c/a\u003e from zsh8/decorate_generator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/10c93f2d6c98f82e54470b05144cd0f17d3e1b46\"\u003e\u003ccode\u003e10c93f2\u003c/code\u003e\u003c/a\u003e fix: preserve functionality in pytest yield fixtures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/d2e0a00addb0653b0cf3be65f8fa7137c7e3bda1\"\u003e\u003ccode\u003ed2e0a00\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/6229e27d27ec61c4c55d7006db7ede6f16d7280a\"\u003e\u003ccode\u003e6229e27\u003c/code\u003e\u003c/a\u003e Add 1.5.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/3111775d6e484f55a85030c626180b592adef569\"\u003e\u003ccode\u003e3111775\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/576\"\u003e#576\u003c/a\u003e from spulec/support-fixtures-pytest-840\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spulec/freezegun/compare/1.2.2...1.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-bank-holidays` from 0.15 to 0.17\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/releases\"\u003egovuk-bank-holidays's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.17\u003c/h2\u003e\n\u003cp\u003eAdded timeout for source downloads (default being GOV.UK) before falling back to cache. With thanks to \u003ca href=\"https://github.com/ibrechin\"\u003e\u003ccode\u003e@​ibrechin\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.16...0.17\"\u003eChanges\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.16\u003c/h2\u003e\n\u003cp\u003eRemoved support for python versions older than 3.9 since they have reached end-of-life and are not available for testing in Github Actions.\nAdded python 3.13 to testing matrix.\nUpdated cached bank holidays file to include latest holidays published by GOV.UK.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.15...0.16\"\u003eChanges\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/ministryofjustice/govuk-bank-holidays/commit/a15061da364cb2927c441289a9defb767fa95551\"\u003e\u003ccode\u003ea15061d\u003c/code\u003e\u003c/a\u003e Bump to 0.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/7ccd9106a893cb6a470734e4c4e8a84439b7b24e\"\u003e\u003ccode\u003e7ccd910\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/govuk-bank-holidays/issues/25\"\u003e#25\u003c/a\u003e from ibrechin/add-request-timeout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/11dd549d0fd663e510a40772f9ebb5ec87f72fca\"\u003e\u003ccode\u003e11dd549\u003c/code\u003e\u003c/a\u003e Add configurable timeout for downloading live holiday data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/11ddc9c2e3bba5e140a5d17d54e7dd38aaa7fb56\"\u003e\u003ccode\u003e11ddc9c\u003c/code\u003e\u003c/a\u003e Bump to 0.16\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/5ad9b7b086865aa779e9a087555f841df80a858d\"\u003e\u003ccode\u003e5ad9b7b\u003c/code\u003e\u003c/a\u003e Remove (official) support and testing on python \u0026lt; 3.9 (though it should conti...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/86fd881acc6825876d46298b51f3a23aec2ea5a1\"\u003e\u003ccode\u003e86fd881\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/govuk-bank-holidays/issues/24\"\u003e#24\u003c/a\u003e from ibrechin/update-cached\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/f4ecaf843e48cb1f417ceb288080d7cd906575e2\"\u003e\u003ccode\u003ef4ecaf8\u003c/code\u003e\u003c/a\u003e Update cached bank holidays\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.15...0.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-frontend-jinja` from 3.3.0 to 3.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases\"\u003egovuk-frontend-jinja's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.8.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.12.0\"\u003eGOV.UK Frontend v5.12.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.9 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/82\"\u003e#82\u003c/a\u003e - Templates use lower filter on values where it should not\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/tim-s-ccs\"\u003e\u003ccode\u003e@​tim-s-ccs\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/samuelhwilliams\"\u003e\u003ccode\u003e@​samuelhwilliams\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.11.1\"\u003eGOV.UK Frontend v5.11.1\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.10.0\"\u003eGOV.UK Frontend v5.10.0\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIntroduced rebranding logic in \u003ccode\u003eheader\u003c/code\u003e, \u003ccode\u003efooter\u003c/code\u003e, and \u003ccode\u003eservice-navigation\u003c/code\u003e components.\u003c/li\u003e\n\u003cli\u003eAdded a new \u003ccode\u003elogo.html\u003c/code\u003e macro for enhanced branding capabilities.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003etemplate.html\u003c/code\u003e to handle rebranding dynamically through variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgraded dependencies in \u003ccode\u003erequirements-test-*.txt\u003c/code\u003e files to the latest minor/patch versions:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eclick\u003c/code\u003e → v8.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflake8\u003c/code\u003e → v7.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ejinja2\u003c/code\u003e → v3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epycodestyle\u003c/code\u003e → v2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epyflakes\u003c/code\u003e → v3.3.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eREADME.md\u003c/code\u003e badges to reflect the latest project state.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecated legacy crown logos in favour of the Tudor Crown.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved attribute handling in \u003ccode\u003eservice-navigation\u003c/code\u003e and other components.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.9.0\"\u003eGOV.UK Frontend v5.9.0\u003c/a\u003e support\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/LandRegistry/govuk-frontend-jinja/blob/main/CHANGELOG.md\"\u003egovuk-frontend-jinja's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.8.0\"\u003e3.8.0\u003c/a\u003e - 06/10/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.12.0\"\u003eGOV.UK Frontend v5.12.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.9 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/82\"\u003e#82\u003c/a\u003e - Templates use lower filter on values where it should not\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/tim-s-ccs\"\u003eTim South\u003c/a\u003e and \u003ca href=\"https://github.com/samuelhwilliams\"\u003eSamuel Williams\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.7.0\"\u003e3.7.0\u003c/a\u003e - 14/08/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.11.1\"\u003eGOV.UK Frontend v5.11.1\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.6.0\"\u003e3.6.0\u003c/a\u003e - 14/05/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.10.0\"\u003eGOV.UK Frontend v5.10.0\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIntroduced rebranding logic in \u003ccode\u003eheader\u003c/code\u003e, \u003ccode\u003efooter\u003c/code\u003e, and \u003ccode\u003eservice-navigation\u003c/code\u003e components.\u003c/li\u003e\n\u003cli\u003eAdded a new \u003ccode\u003elogo.html\u003c/code\u003e macro for enhanced branding capabilities.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003etemplate.html\u003c/code\u003e to handle rebranding dynamically through variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgraded dependencies in \u003ccode\u003erequirements-test-*.txt\u003c/code\u003e files to the latest minor/patch versions:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eclick\u003c/code\u003e → v8.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflake8\u003c/code\u003e → v7.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ejinja2\u003c/code\u003e → v3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epycodestyle\u003c/code\u003e → v2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epyflakes\u003c/code\u003e → v3.3.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eREADME.md\u003c/code\u003e badges to reflect the latest project state.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecated legacy crown logos in favor of the Tudor Crown.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved attribute handling in \u003ccode\u003eservice-navigation\u003c/code\u003e and other components.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.5.0\"\u003e3.5.0\u003c/a\u003e - 05/03/2025\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/LandRegistry/govuk-frontend-jinja/commit/b9a6fd3f452c1c61dfbd06a71c875d0bba917018\"\u003e\u003ccode\u003eb9a6fd3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/101\"\u003e#101\u003c/a\u003e from LandRegistry/govuk-frontend-512\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/be989e3c402ebb622eb895b6e5d9a9b6d72fed0d\"\u003e\u003ccode\u003ebe989e3\u003c/code\u003e\u003c/a\u003e refine fixed issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/e28b6095d4909d21e1e3e6c2dfbf44c43b993b6a\"\u003e\u003ccode\u003ee28b609\u003c/code\u003e\u003c/a\u003e identical requirements since 3.9 removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/2738e28a5b77a3e93c2427eec1c57e42ce2e9d81\"\u003e\u003ccode\u003e2738e28\u003c/code\u003e\u003c/a\u003e upgrade test dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/9b9de9b8d38dcffe96c6c169cf69c24e6fd3c7bd\"\u003e\u003ccode\u003e9b9de9b\u003c/code\u003e\u003c/a\u003e Templates use lower filter on values where it should not\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/cdf76723a0476900916454aea731747a80306ad4\"\u003e\u003ccode\u003ecdf7672\u003c/code\u003e\u003c/a\u003e only lowercase bools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/31a0b0a7274fb41d22b628031b33da66b01ab691\"\u003e\u003ccode\u003e31a0b0a\u003c/code\u003e\u003c/a\u003e minor version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/4d2deb03d13f8bebb74984a1978b25835d09d565\"\u003e\u003ccode\u003e4d2deb0\u003c/code\u003e\u003c/a\u003e drop python 3.9 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/c125a6501a14edf3febd16c76d755058f5ca739d\"\u003e\u003ccode\u003ec125a65\u003c/code\u003e\u003c/a\u003e test 5.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/0fb146b1d9a5595f0a0a99aaed94fbfd7bddd637\"\u003e\u003ccode\u003e0fb146b\u003c/code\u003e\u003c/a\u003e bump versions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/compare/3.3.0...3.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `humanize` from 4.4.0 to 4.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-humanize/humanize/releases\"\u003ehumanize's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.13.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimise \u003ccode\u003enaturalsize\u003c/code\u003e algorithm by using \u003ccode\u003emath.log\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/253\"\u003e#253\u003c/a\u003e) \u003ca href=\"https://github.com/Zaczero\"\u003e\u003ccode\u003e@​Zaczero\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprecisedelta\u003c/code\u003e rounding (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/254\"\u003e#254\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.3\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003enaturalsize\u003c/code\u003e for \u003ccode\u003efloat\u003c/code\u003e and \u003ccode\u003estr\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/250\"\u003e#250\u003c/a\u003e) \u003ca href=\"https://github.com/loicleyendecker\"\u003e\u003ccode\u003e@​loicleyendecker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprovements for French translation (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/248\"\u003e#248\u003c/a\u003e) \u003ca href=\"https://github.com/merwok\"\u003e\u003ccode\u003e@​merwok\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.2\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate license file reference from \u003ccode\u003eLICENSE\u003c/code\u003e to \u003ccode\u003eLICENCE\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/243\"\u003e#243\u003c/a\u003e) \u003ca href=\"https://github.com/williamjamir\"\u003e\u003ccode\u003e@​williamjamir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate docstring in naturaldelta (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/242\"\u003e#242\u003c/a\u003e) \u003ca href=\"https://github.com/teobucci\"\u003e\u003ccode\u003e@​teobucci\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore \u003ccode\u003esys.monitoring\u003c/code\u003e warning for Python 3.11 and earlier in coverage.py config (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/244\"\u003e#244\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003enaturalsize\u003c/code\u003e for float (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/240\"\u003e#240\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and test PyPy3.11 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/235\"\u003e#235\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle en_GB and en_US locale (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/230\"\u003e#230\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease to PyPI using Trusted Publishing (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/213\"\u003e#213\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefer imports for faster overall import time: 19 ms -\u0026gt; 3 ms (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/234\"\u003e#234\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/238\"\u003e#238\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace deprecated classifier with licence expression (PEP 639) (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/236\"\u003e#236\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLint and test with tox-uv (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/212\"\u003e#212\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix overflow issue in \u003ccode\u003enaturalsize\u003c/code\u003e with \u003ccode\u003enp.int32\u003c/code\u003e input (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/218\"\u003e#218\u003c/a\u003e) \u003ca href=\"https://github.com/Toprak2\"\u003e\u003ccode\u003e@​Toprak2\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pt_BR locale (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/216\"\u003e#216\u003c/a\u003e) \u003ca href=\"https://github.com/cuducos\"\u003e\u003ccode\u003e@​cuducos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGenerate translation binaries during release (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/232\"\u003e#232\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003enatural_list\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/110\"\u003e#110\u003c/a\u003e) \u003ca href=\"https://github.com/akshaybabloo\"\u003e\u003ccode\u003e@​akshaybabloo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/0e027051034b7dcb4eb65aded290cf56a89d8aa9\"\u003e\u003ccode\u003e0e02705\u003c/code\u003e\u003c/a\u003e Update config (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/288a7a7c1dbfd1c977add3c54a7c9283039a6c71\"\u003e\u003ccode\u003e288a7a7\u003c/code\u003e\u003c/a\u003e Test free-threaded Python 3.13t and 3.14t (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/0f5d2948d674a88a611f8e341c0df520767b1b80\"\u003e\u003ccode\u003e0f5d294\u003c/code\u003e\u003c/a\u003e Precisedelta rounding (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/254\"\u003e#254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/58d10b43175a22eb9ece2c6f3dcff6b6b681e2df\"\u003e\u003ccode\u003e58d10b4\u003c/code\u003e\u003c/a\u003e Update docs/requirements.txt (\u003ca href=\"http...\n\n_Description has been truncated_","html_url":"https://github.com/alphagov/emergency-alerts-admin/pull/291","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphagov%2Femergency-alerts-admin/issues/291","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/291/packages"}},{"old_version":"3.7.1","new_version":"3.7.2","update_type":"patch","path":"/requirements","pr_created_at":"2025-10-06T20:05:14.000Z","version_change":"3.7.1 → 3.7.2","issue":{"uuid":"2891687480","node_id":"PR_kwDOFgUJx86sW6Y4","number":3016,"state":"closed","title":"Bump pyproj from 3.7.1 to 3.7.2 in /requirements","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-10-06T20:36:05.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-06T20:05:14.000Z","updated_at":"2025-10-06T20:36:06.000Z","time_to_close":1851,"merged_at":"2025-10-06T20:36:05.000Z","merged_by":"adamjstewart","closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pyproj","old_version":"3.7.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"}],"path":"/requirements","ecosystem":"pip"},"body":"Bumps [pyproj](https://github.com/pyproj4/pyproj) from 3.7.1 to 3.7.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.22 to 2.23 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/pyproj4/pyproj/pull/1479\"\u003epyproj4/pyproj#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Only import time.perf_counter by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1480\"\u003epyproj4/pyproj#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1481\"\u003epyproj4/pyproj#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Python 3.11+ by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1483\"\u003epyproj4/pyproj#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.1 to 0.6.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/pyproj4/pyproj/pull/1488\"\u003epyproj4/pyproj#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: update doc geometry_area_perimeter by \u003ca href=\"https://github.com/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Remove 'noqa: E501' from docstrings by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epyproj.crs: add imports to \u003cstrong\u003eall\u003c/strong\u003e by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1494\"\u003epyproj4/pyproj#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: replace black and isort with ruff format and lint by \u003ca href=\"https://github.com/mwtoews\"\u003e\u003ccode\u003e@​mwtoews\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1496\"\u003epyproj4/pyproj#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUILD/CI: Add win_arm64 wheel build by \u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.23 to 3.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/pyproj4/pyproj/pull/1502\"\u003epyproj4/pyproj#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 3.0.0 to 3.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/pyproj4/pyproj/pull/1505\"\u003epyproj4/pyproj#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBLD: Enable free-threading compatibility by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1512\"\u003epyproj4/pyproj#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add 3.13 free-threading wheels by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1514\"\u003epyproj4/pyproj#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-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/pyproj4/pyproj/pull/1520\"\u003epyproj4/pyproj#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1519\"\u003epyproj4/pyproj#1519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout 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/pyproj4/pyproj/pull/1521\"\u003epyproj4/pyproj#1521\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/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.2rc1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.2rc0\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\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/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.11 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Add CRS imports to \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add win_arm64 wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.13 free-threading wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.14 and 3.14 free-threading wheels\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f16037d2c45c3274ef28b828998267c3390393c8\"\u003e\u003ccode\u003ef16037d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/878615decadbde676f9acc82bce9763d62fbacbe\"\u003e\u003ccode\u003e878615d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4813b2db7c0fb92f598748bb1aca85288765a354\"\u003e\u003ccode\u003e4813b2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1521\"\u003e#1521\u003c/a\u003e from pyproj4/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/66b8e0b2fb2f93a83be484cd3ae741c140123930\"\u003e\u003ccode\u003e66b8e0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/ff97ab97b5bfd02a714bf84ebd847ec366da48f8\"\u003e\u003ccode\u003eff97ab9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1519\"\u003e#1519\u003c/a\u003e from djhoese/remove-old-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3692f8aa7fc9373927178fa1774ae69811387cfb\"\u003e\u003ccode\u003e3692f8a\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1520\"\u003e#1520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f3815db4169e399271d87ce9970175edb4b4170b\"\u003e\u003ccode\u003ef3815db\u003c/code\u003e\u003c/a\u003e MNT: Update history with test removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e5ee13f82067e9c577a1bb5e2484ed91c5f96c22\"\u003e\u003ccode\u003ee5ee13f\u003c/code\u003e\u003c/a\u003e TST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26b3cdb7d68e677ebfec62549288eea02bc38ed9\"\u003e\u003ccode\u003e26b3cdb\u003c/code\u003e\u003c/a\u003e MNT: 3.7.2rc0 and update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0cd586a0fb7094b4f8fb43fe34dd2e249aec0da0\"\u003e\u003ccode\u003e0cd586a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1514\"\u003e#1514\u003c/a\u003e from djhoese/ci-313-ft\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyproj\u0026package-manager=pip\u0026previous-version=3.7.1\u0026new-version=3.7.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/torchgeo/torchgeo/pull/3016","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/torchgeo%2Ftorchgeo/issues/3016","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3016/packages"}},{"old_version":"3.6.1","new_version":"3.7.2","update_type":"minor","path":null,"pr_created_at":"2025-10-06T18:13:53.000Z","version_change":"3.6.1 → 3.7.2","issue":{"uuid":"2891323259","node_id":"PR_kwDOKrpNGs6sVhd7","number":2109,"state":"open","title":"Bump pyproj from 3.6.1 to 3.7.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-06T18:13:53.000Z","updated_at":"2025-10-06T18:13:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pyproj","old_version":"3.6.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pyproj](https://github.com/pyproj4/pyproj) from 3.6.1 to 3.7.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.22 to 2.23 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/pyproj4/pyproj/pull/1479\"\u003epyproj4/pyproj#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Only import time.perf_counter by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1480\"\u003epyproj4/pyproj#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1481\"\u003epyproj4/pyproj#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Python 3.11+ by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1483\"\u003epyproj4/pyproj#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.1 to 0.6.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/pyproj4/pyproj/pull/1488\"\u003epyproj4/pyproj#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: update doc geometry_area_perimeter by \u003ca href=\"https://github.com/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Remove 'noqa: E501' from docstrings by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epyproj.crs: add imports to \u003cstrong\u003eall\u003c/strong\u003e by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1494\"\u003epyproj4/pyproj#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: replace black and isort with ruff format and lint by \u003ca href=\"https://github.com/mwtoews\"\u003e\u003ccode\u003e@​mwtoews\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1496\"\u003epyproj4/pyproj#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUILD/CI: Add win_arm64 wheel build by \u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.23 to 3.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/pyproj4/pyproj/pull/1502\"\u003epyproj4/pyproj#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 3.0.0 to 3.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/pyproj4/pyproj/pull/1505\"\u003epyproj4/pyproj#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBLD: Enable free-threading compatibility by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1512\"\u003epyproj4/pyproj#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add 3.13 free-threading wheels by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1514\"\u003epyproj4/pyproj#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-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/pyproj4/pyproj/pull/1520\"\u003epyproj4/pyproj#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1519\"\u003epyproj4/pyproj#1519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout 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/pyproj4/pyproj/pull/1521\"\u003epyproj4/pyproj#1521\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/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.2rc1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.2rc0\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.1 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1477\"\u003epyproj4/pyproj#1477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in  \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1475\"\u003epyproj4/pyproj#1475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: Add wheels for musllinux by \u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead. by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1450\"\u003epyproj4/pyproj#1450\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1452\"\u003epyproj4/pyproj#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 by \u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1455\"\u003epyproj4/pyproj#1455\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Disallow type error without code by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1456\"\u003epyproj4/pyproj#1456\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/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\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/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.11 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Add CRS imports to \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add win_arm64 wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.13 free-threading wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.14 and 3.14 free-threading wheels\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Add wheels for musllinux (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1477\"\u003e#1477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1446\"\u003e#1446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff \u0026amp; lint fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1455\"\u003e#1455\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1456\"\u003e#1456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.4.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1423\"\u003e#1423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.10 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1357\"\u003e#1357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.2 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add :meth:\u003ccode\u003eCRS.is_deprecated\u003c/code\u003e and :meth:\u003ccode\u003eCRS.get_non_deprecated\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1383\"\u003e#1383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePERF: thread local context (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add runtime \u0026amp; compiled PROJ versions (discussion \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1420\"\u003e#1420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Handle changes to HotineObliqueMercatorBConversion (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1429\"\u003e#1429\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/pyproj4/pyproj/commit/f16037d2c45c3274ef28b828998267c3390393c8\"\u003e\u003ccode\u003ef16037d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/878615decadbde676f9acc82bce9763d62fbacbe\"\u003e\u003ccode\u003e878615d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4813b2db7c0fb92f598748bb1aca85288765a354\"\u003e\u003ccode\u003e4813b2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1521\"\u003e#1521\u003c/a\u003e from pyproj4/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/66b8e0b2fb2f93a83be484cd3ae741c140123930\"\u003e\u003ccode\u003e66b8e0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/ff97ab97b5bfd02a714bf84ebd847ec366da48f8\"\u003e\u003ccode\u003eff97ab9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1519\"\u003e#1519\u003c/a\u003e from djhoese/remove-old-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3692f8aa7fc9373927178fa1774ae69811387cfb\"\u003e\u003ccode\u003e3692f8a\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1520\"\u003e#1520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f3815db4169e399271d87ce9970175edb4b4170b\"\u003e\u003ccode\u003ef3815db\u003c/code\u003e\u003c/a\u003e MNT: Update history with test removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e5ee13f82067e9c577a1bb5e2484ed91c5f96c22\"\u003e\u003ccode\u003ee5ee13f\u003c/code\u003e\u003c/a\u003e TST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26b3cdb7d68e677ebfec62549288eea02bc38ed9\"\u003e\u003ccode\u003e26b3cdb\u003c/code\u003e\u003c/a\u003e MNT: 3.7.2rc0 and update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0cd586a0fb7094b4f8fb43fe34dd2e249aec0da0\"\u003e\u003ccode\u003e0cd586a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1514\"\u003e#1514\u003c/a\u003e from djhoese/ci-313-ft\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.6.1...3.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyproj\u0026package-manager=pip\u0026previous-version=3.6.1\u0026new-version=3.7.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/shilu10/MANN-Meta-Learning/pull/2109","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shilu10%2FMANN-Meta-Learning/issues/2109","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2109/packages"}},{"old_version":"3.7.1","new_version":"3.7.2","update_type":"patch","path":null,"pr_created_at":"2025-10-06T17:23:34.000Z","version_change":"3.7.1 → 3.7.2","issue":{"uuid":"2891168596","node_id":"PR_kwDOOXISWM6sU7tU","number":101,"state":"open","title":"Bump pyproj from 3.7.1 to 3.7.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-06T17:23:34.000Z","updated_at":"2025-10-06T17:23:35.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pyproj","old_version":"3.7.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pyproj](https://github.com/pyproj4/pyproj) from 3.7.1 to 3.7.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.22 to 2.23 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/pyproj4/pyproj/pull/1479\"\u003epyproj4/pyproj#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Only import time.perf_counter by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1480\"\u003epyproj4/pyproj#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1481\"\u003epyproj4/pyproj#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Python 3.11+ by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1483\"\u003epyproj4/pyproj#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.1 to 0.6.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/pyproj4/pyproj/pull/1488\"\u003epyproj4/pyproj#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: update doc geometry_area_perimeter by \u003ca href=\"https://github.com/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Remove 'noqa: E501' from docstrings by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epyproj.crs: add imports to \u003cstrong\u003eall\u003c/strong\u003e by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1494\"\u003epyproj4/pyproj#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: replace black and isort with ruff format and lint by \u003ca href=\"https://github.com/mwtoews\"\u003e\u003ccode\u003e@​mwtoews\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1496\"\u003epyproj4/pyproj#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUILD/CI: Add win_arm64 wheel build by \u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.23 to 3.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/pyproj4/pyproj/pull/1502\"\u003epyproj4/pyproj#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 3.0.0 to 3.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/pyproj4/pyproj/pull/1505\"\u003epyproj4/pyproj#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBLD: Enable free-threading compatibility by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1512\"\u003epyproj4/pyproj#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add 3.13 free-threading wheels by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1514\"\u003epyproj4/pyproj#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-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/pyproj4/pyproj/pull/1520\"\u003epyproj4/pyproj#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1519\"\u003epyproj4/pyproj#1519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout 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/pyproj4/pyproj/pull/1521\"\u003epyproj4/pyproj#1521\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/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.2rc1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.2rc0\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\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/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.11 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Add CRS imports to \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add win_arm64 wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.13 free-threading wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.14 and 3.14 free-threading wheels\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f16037d2c45c3274ef28b828998267c3390393c8\"\u003e\u003ccode\u003ef16037d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/878615decadbde676f9acc82bce9763d62fbacbe\"\u003e\u003ccode\u003e878615d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4813b2db7c0fb92f598748bb1aca85288765a354\"\u003e\u003ccode\u003e4813b2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1521\"\u003e#1521\u003c/a\u003e from pyproj4/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/66b8e0b2fb2f93a83be484cd3ae741c140123930\"\u003e\u003ccode\u003e66b8e0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/ff97ab97b5bfd02a714bf84ebd847ec366da48f8\"\u003e\u003ccode\u003eff97ab9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1519\"\u003e#1519\u003c/a\u003e from djhoese/remove-old-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3692f8aa7fc9373927178fa1774ae69811387cfb\"\u003e\u003ccode\u003e3692f8a\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1520\"\u003e#1520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f3815db4169e399271d87ce9970175edb4b4170b\"\u003e\u003ccode\u003ef3815db\u003c/code\u003e\u003c/a\u003e MNT: Update history with test removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e5ee13f82067e9c577a1bb5e2484ed91c5f96c22\"\u003e\u003ccode\u003ee5ee13f\u003c/code\u003e\u003c/a\u003e TST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26b3cdb7d68e677ebfec62549288eea02bc38ed9\"\u003e\u003ccode\u003e26b3cdb\u003c/code\u003e\u003c/a\u003e MNT: 3.7.2rc0 and update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0cd586a0fb7094b4f8fb43fe34dd2e249aec0da0\"\u003e\u003ccode\u003e0cd586a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1514\"\u003e#1514\u003c/a\u003e from djhoese/ci-313-ft\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyproj\u0026package-manager=pip\u0026previous-version=3.7.1\u0026new-version=3.7.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/makinacorpus/osm-paths/pull/101","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/makinacorpus%2Fosm-paths/issues/101","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/101/packages"}},{"old_version":"3.6.1","new_version":"3.7.2","update_type":"minor","path":null,"pr_created_at":"2025-10-01T14:08:23.000Z","version_change":"3.6.1 → 3.7.2","issue":{"uuid":"3473747938","node_id":"PR_kwDOIoSAbM6rkRNJ","number":283,"state":"open","title":"Bump the pip-updates group with 24 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-01T14:08:23.000Z","updated_at":"2025-10-03T19:12:02.962Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-updates","update_count":24,"packages":[{"name":"beautifulsoup4","old_version":"4.11.1","new_version":"4.14.2"},{"name":"black","old_version":"25.1.0","new_version":"25.9.0","repository_url":"https://github.com/psf/black"},{"name":"blinker","old_version":"1.7.0","new_version":"1.9.0","repository_url":"https://github.com/pallets-eco/blinker"},{"name":"fido2","old_version":"1.2.0","new_version":"2.0.0","repository_url":"https://github.com/Yubico/python-fido2"},{"name":"flake8","old_version":"7.0.0","new_version":"7.3.0","repository_url":"https://github.com/pycqa/flake8"},{"name":"flake8-bugbear","old_version":"22.10.27","new_version":"24.12.12","repository_url":"https://github.com/PyCQA/flake8-bugbear"},{"name":"flask","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/pallets/flask"},{"name":"flask-wtf","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/pallets-eco/flask-wtf"},{"name":"freezegun","old_version":"1.2.2","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"govuk-bank-holidays","old_version":"0.15","new_version":"0.17","repository_url":"https://github.com/ministryofjustice/govuk-bank-holidays"},{"name":"govuk-frontend-jinja","old_version":"3.3.0","new_version":"3.7.0","repository_url":"https://github.com/LandRegistry/govuk-frontend-jinja"},{"name":"humanize","old_version":"4.4.0","new_version":"4.13.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"isort","old_version":"5.12.0","new_version":"6.0.1","repository_url":"https://github.com/PyCQA/isort"},{"name":"itsdangerous","old_version":"2.1.2","new_version":"2.2.0","repository_url":"https://github.com/pallets/itsdangerous"},{"name":"markupsafe","old_version":"2.1.5","new_version":"3.0.3","repository_url":"https://github.com/pallets/markupsafe"},{"name":"moto","old_version":"5.1.3","new_version":"5.1.13","repository_url":"https://github.com/getmoto/moto"},{"name":"notifications-python-client","old_version":"8.0.0","new_version":"10.0.1","repository_url":"https://github.com/alphagov/notifications-python-client"},{"name":"pyproj","old_version":"3.6.1","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-xdist","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"pytz","old_version":"2022.6","new_version":"2025.2","repository_url":"https://github.com/stub42/pytz"},{"name":"requests-mock","old_version":"1.10.0","new_version":"1.12.1","repository_url":"https://github.com/jamielennox/requests-mock"},{"name":"wtforms","old_version":"3.1.2","new_version":"3.2.1","repository_url":"https://github.com/pallets-eco/wtforms"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-updates group with 24 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.11.1` | `4.14.2` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.9.0` |\n| [blinker](https://github.com/pallets-eco/blinker) | `1.7.0` | `1.9.0` |\n| [fido2](https://github.com/Yubico/python-fido2) | `1.2.0` | `2.0.0` |\n| [flake8](https://github.com/pycqa/flake8) | `7.0.0` | `7.3.0` |\n| [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear) | `22.10.27` | `24.12.12` |\n| [flask](https://github.com/pallets/flask) | `3.0.2` | `3.0.3` |\n| [flask-wtf](https://github.com/pallets-eco/flask-wtf) | `1.2.1` | `1.2.2` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.2.2` | `1.5.5` |\n| [govuk-bank-holidays](https://github.com/ministryofjustice/govuk-bank-holidays) | `0.15` | `0.17` |\n| [govuk-frontend-jinja](https://github.com/LandRegistry/govuk-frontend-jinja) | `3.3.0` | `3.7.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.4.0` | `4.13.0` |\n| [isort](https://github.com/PyCQA/isort) | `5.12.0` | `6.0.1` |\n| [itsdangerous](https://github.com/pallets/itsdangerous) | `2.1.2` | `2.2.0` |\n| [markupsafe](https://github.com/pallets/markupsafe) | `2.1.5` | `3.0.3` |\n| [moto](https://github.com/getmoto/moto) | `5.1.3` | `5.1.13` |\n| [notifications-python-client](https://github.com/alphagov/notifications-python-client) | `8.0.0` | `10.0.1` |\n| [pyproj](https://github.com/pyproj4/pyproj) | `3.6.1` | `3.7.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.6.1` | `3.8.0` |\n| [pytz](https://github.com/stub42/pytz) | `2022.6` | `2025.2` |\n| [requests-mock](https://github.com/jamielennox/requests-mock) | `1.10.0` | `1.12.1` |\n| [wtforms](https://github.com/pallets-eco/wtforms) | `3.1.2` | `3.2.1` |\n\nUpdates `beautifulsoup4` from 4.11.1 to 4.14.2\n\nUpdates `black` from 25.1.0 to 25.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.9.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for pre-python 3.7 \u003ccode\u003eawait/async\u003c/code\u003e as soft keywords/variable names\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash while formatting a long \u003ccode\u003edel\u003c/code\u003e statement containing tuples (\u003ca href=\"https://redirect.github.com/psf/black/issues/4628\"\u003e#4628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash while formatting expressions using the walrus operator in complex \u003ccode\u003ewith\u003c/code\u003e\nstatements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4630\"\u003e#4630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003e# fmt: skip\u003c/code\u003e followed by a comment at the end of file (\u003ca href=\"https://redirect.github.com/psf/black/issues/4635\"\u003e#4635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when a tuple appears in the \u003ccode\u003eas\u003c/code\u003e clause of a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4634\"\u003e#4634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when tuple is used as a context manager inside a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4646\"\u003e#4646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when formatting a \u003ccode\u003e\\\u003c/code\u003e followed by a \u003ccode\u003e\\r\u003c/code\u003e followed by a comment (\u003ca href=\"https://redirect.github.com/psf/black/issues/4663\"\u003e#4663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on a \u003ccode\u003e\\\\r\\n\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4673\"\u003e#4673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on \u003ccode\u003eawait ...\u003c/code\u003e (where \u003ccode\u003e...\u003c/code\u003e is a literal \u003ccode\u003eEllipsis\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on parenthesized expression inside a type parameter bound (\u003ca href=\"https://redirect.github.com/psf/black/issues/4684\"\u003e#4684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when using line ranges excluding indented single line decorated items\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a bug where one-liner functions/conditionals marked with \u003ccode\u003e# fmt: skip\u003c/code\u003e would still\nbe formatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4552\"\u003e#4552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003emultiline_string_handling\u003c/code\u003e with ternaries and dictionaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug where \u003ccode\u003estring_processing\u003c/code\u003e would not split f-strings directly after\nexpressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4680\"\u003e#4680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap the \u003ccode\u003ein\u003c/code\u003e clause of comprehensions across lines if necessary (\u003ca href=\"https://redirect.github.com/psf/black/issues/4699\"\u003e#4699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove parentheses around multiple exception types in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without\n\u003ccode\u003eas\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to normalize file newlines both from\nand to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eParser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRewrite tokenizer to improve performance and compliance (\u003ca href=\"https://redirect.github.com/psf/black/issues/4536\"\u003e#4536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\nparameter bounds and defaults. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4602\"\u003e#4602\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using an extra process when running with only one worker (\u003ca href=\"https://redirect.github.com/psf/black/issues/4734\"\u003e#4734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix the version check in the vim file to reject Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4567\"\u003e#4567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to read Black version from an additional section in\npyproject.toml: \u003ccode\u003e[project.dependency-groups]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4606\"\u003e#4606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild gallery docker image with python3-slim and reduce image size (\u003ca href=\"https://redirect.github.com/psf/black/issues/4686\"\u003e#4686\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.9.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for pre-python 3.7 \u003ccode\u003eawait/async\u003c/code\u003e as soft keywords/variable names\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash while formatting a long \u003ccode\u003edel\u003c/code\u003e statement containing tuples (\u003ca href=\"https://redirect.github.com/psf/black/issues/4628\"\u003e#4628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash while formatting expressions using the walrus operator in complex \u003ccode\u003ewith\u003c/code\u003e\nstatements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4630\"\u003e#4630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle \u003ccode\u003e# fmt: skip\u003c/code\u003e followed by a comment at the end of file (\u003ca href=\"https://redirect.github.com/psf/black/issues/4635\"\u003e#4635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when a tuple appears in the \u003ccode\u003eas\u003c/code\u003e clause of a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4634\"\u003e#4634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when tuple is used as a context manager inside a \u003ccode\u003ewith\u003c/code\u003e statement (\u003ca href=\"https://redirect.github.com/psf/black/issues/4646\"\u003e#4646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when formatting a \u003ccode\u003e\\\u003c/code\u003e followed by a \u003ccode\u003e\\r\u003c/code\u003e followed by a comment (\u003ca href=\"https://redirect.github.com/psf/black/issues/4663\"\u003e#4663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on a \u003ccode\u003e\\\\r\\n\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4673\"\u003e#4673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on \u003ccode\u003eawait ...\u003c/code\u003e (where \u003ccode\u003e...\u003c/code\u003e is a literal \u003ccode\u003eEllipsis\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4676\"\u003e#4676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on parenthesized expression inside a type parameter bound (\u003ca href=\"https://redirect.github.com/psf/black/issues/4684\"\u003e#4684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when using line ranges excluding indented single line decorated items\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a bug where one-liner functions/conditionals marked with \u003ccode\u003e# fmt: skip\u003c/code\u003e would still\nbe formatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4552\"\u003e#4552\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove \u003ccode\u003emultiline_string_handling\u003c/code\u003e with ternaries and dictionaries (\u003ca href=\"https://redirect.github.com/psf/black/issues/4657\"\u003e#4657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug where \u003ccode\u003estring_processing\u003c/code\u003e would not split f-strings directly after\nexpressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4680\"\u003e#4680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWrap the \u003ccode\u003ein\u003c/code\u003e clause of comprehensions across lines if necessary (\u003ca href=\"https://redirect.github.com/psf/black/issues/4699\"\u003e#4699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove parentheses around multiple exception types in \u003ccode\u003eexcept\u003c/code\u003e and \u003ccode\u003eexcept*\u003c/code\u003e without\n\u003ccode\u003eas\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4720\"\u003e#4720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e\\r\u003c/code\u003e style newlines to the potential newlines to normalize file newlines both from\nand to (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eParser\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRewrite tokenizer to improve performance and compliance (\u003ca href=\"https://redirect.github.com/psf/black/issues/4536\"\u003e#4536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where certain unusual expressions (e.g., lambdas) were not accepted in type\nparameter bounds and defaults. (\u003ca href=\"https://redirect.github.com/psf/black/issues/4602\"\u003e#4602\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using an extra process when running with only one worker (\u003ca href=\"https://redirect.github.com/psf/black/issues/4734\"\u003e#4734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix the version check in the vim file to reject Python 3.8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4567\"\u003e#4567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnhance GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to read Black version from an additional section in\npyproject.toml: \u003ccode\u003e[project.dependency-groups]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4606\"\u003e#4606\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/af0ba72a73598c76189d6dd1b21d8532255d5942\"\u003e\u003ccode\u003eaf0ba72\u003c/code\u003e\u003c/a\u003e Prepare docs for release 25.9.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4751\"\u003e#4751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/ffc01a027580d99401abb3197e83d50dc4f4c746\"\u003e\u003ccode\u003effc01a0\u003c/code\u003e\u003c/a\u003e Fix schema generation error caused by new click version (\u003ca href=\"https://redirect.github.com/psf/black/issues/4750\"\u003e#4750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/626b32fe2b5387656be6694da9a4b7a3148fb892\"\u003e\u003ccode\u003e626b32f\u003c/code\u003e\u003c/a\u003e Add normalizing for \u003ccode\u003e\\r\u003c/code\u003e style newlines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4710\"\u003e#4710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/57a461258f324e33bca189b2eb49d7f7a944ffe7\"\u003e\u003ccode\u003e57a4612\u003c/code\u003e\u003c/a\u003e Fix mypy type issue (\u003ca href=\"https://redirect.github.com/psf/black/issues/4745\"\u003e#4745\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4f6ad7cf8c3092e0fb4d82f54fe77ccde134468a\"\u003e\u003ccode\u003e4f6ad7c\u003c/code\u003e\u003c/a\u003e Wrap the \u003ccode\u003ein\u003c/code\u003e clause of comprehensions across lines if necessary (\u003ca href=\"https://redirect.github.com/psf/black/issues/4699\"\u003e#4699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/24f516961720c5578069dee30415b776359b7be5\"\u003e\u003ccode\u003e24f5169\u003c/code\u003e\u003c/a\u003e ci: Run diff-shades on unstable instead of preview (\u003ca href=\"https://redirect.github.com/psf/black/issues/4741\"\u003e#4741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4d55e6017993ee3f0927524e8bc19ead8de9e8ed\"\u003e\u003ccode\u003e4d55e60\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4744\"\u003e#4744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0cf39efdbc3aaea455f95d31e5b42efb6bd61478\"\u003e\u003ccode\u003e0cf39ef\u003c/code\u003e\u003c/a\u003e Improve the performance of get_string_prefix (\u003ca href=\"https://redirect.github.com/psf/black/issues/4742\"\u003e#4742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1f779dec013db37475fa56a5c9939a09eab7e7d6\"\u003e\u003ccode\u003e1f779de\u003c/code\u003e\u003c/a\u003e Fix line ranges decorator edge case (\u003ca href=\"https://redirect.github.com/psf/black/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/203fd6b5cdad975178b8174394a7f7fb13d14f02\"\u003e\u003ccode\u003e203fd6b\u003c/code\u003e\u003c/a\u003e Optimize Line string method (\u003ca href=\"https://redirect.github.com/psf/black/issues/4739\"\u003e#4739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...25.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `blinker` from 1.7.0 to 1.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/blinker/releases\"\u003eblinker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.9.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.9.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.9.0/\"\u003ehttps://pypi.org/project/blinker/1.9.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/stable/#version-1-9-0\"\u003ehttps://blinker.readthedocs.io/en/stable/#version-1-9-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/blinker/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/blinker/milestone/1?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e, \u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/173\"\u003e#173\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.2\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.2/\"\u003ehttps://pypi.org/project/blinker/1.8.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-2\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-2\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify type for \u003ccode\u003e_async_wrapper\u003c/code\u003e and \u003ccode\u003e_sync_wrapper\u003c/code\u003e arguments. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/156\"\u003e#156\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.1\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.1/\"\u003ehttps://pypi.org/project/blinker/1.8.1/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-1\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore identity handling for \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eint\u003c/code\u003e senders. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/148\"\u003e#148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.WeakNamespace\u003c/code\u003e import. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/149\"\u003e#149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.receiver_connected import\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/153\"\u003e#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse types from \u003ccode\u003ecollections.abc\u003c/code\u003e instead of \u003ccode\u003etyping\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/150\"\u003e#150\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFully specify exported types as reported by pyright. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/152\"\u003e#152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0\u003c/h2\u003e\n\u003cp\u003eThis is the Blinker 1.8.0 feature release, which may include new features, remove previously deprecated code, or add new deprecations. The 1.8.x line is now the supported fix branch, support has ended for the 1.7.x line. We encourage everyone to upgrade, and to use a tool such as \u003ca href=\"https://pypi.org/project/pip-tools/\"\u003epip-tools\u003c/a\u003e to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/blinker/1.8.0/\"\u003ehttps://pypi.org/project/blinker/1.8.0/\u003c/a\u003e\nChanges: \u003ca href=\"https://blinker.readthedocs.io/en/latest/#version-1-8-0\"\u003ehttps://blinker.readthedocs.io/en/latest/#version-1-8-0\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or \u003ccode\u003eimportlib.metadata.version(\u0026quot;blinker\u0026quot;)\u003c/code\u003e, instead. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/128\"\u003e#128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify that the deprecated \u003ccode\u003etemporarily_connected_to\u003c/code\u003e will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated global \u003ccode\u003ereceiver_connected\u003c/code\u003e signal and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated \u003ccode\u003eWeakNamespace\u003c/code\u003e and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eGreatly simplify how the library uses weakrefs. This is a significant change internally but should not affect any public API. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/144\"\u003e#144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose the namespace used by \u003ccode\u003esignal()\u003c/code\u003e as \u003ccode\u003edefault_namespace\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/145\"\u003e#145\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-eco/blinker/blob/main/CHANGES.rst\"\u003eblinker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.9.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-11-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8. :pr:\u003ccode\u003e175\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove previously deprecated \u003ccode\u003e__version__\u003c/code\u003e, \u003ccode\u003ereceiver_connected\u003c/code\u003e,\n\u003ccode\u003eSignal.temporarily_connected_to\u003c/code\u003e and \u003ccode\u003eWeakNamespace\u003c/code\u003e. :pr:\u003ccode\u003e172\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSkip weakref signal cleanup if the interpreter is shutting down.\n:issue:\u003ccode\u003e173\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.2\u003c/h2\u003e\n\u003cp\u003eReleased 2024-05-06\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify type for \u003ccode\u003e_async_wrapper\u003c/code\u003e and \u003ccode\u003e_sync_wrapper\u003c/code\u003e arguments.\n:pr:\u003ccode\u003e156\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.1\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-28\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRestore identity handling for \u003ccode\u003estr\u003c/code\u003e and \u003ccode\u003eint\u003c/code\u003e senders. :pr:\u003ccode\u003e148\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.WeakNamespace\u003c/code\u003e import. :pr:\u003ccode\u003e149\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix deprecated \u003ccode\u003eblinker.base.receiver_connected import\u003c/code\u003e. :pr:\u003ccode\u003e153\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse types from \u003ccode\u003ecollections.abc\u003c/code\u003e instead of \u003ccode\u003etyping\u003c/code\u003e. :pr:\u003ccode\u003e150\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFully specify exported types as reported by pyright. :pr:\u003ccode\u003e152\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.8.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-27\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection, or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;blinker\u0026quot;)\u003c/code\u003e, instead. :issue:\u003ccode\u003e128\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSpecify that the deprecated \u003ccode\u003etemporarily_connected_to\u003c/code\u003e will be removed in\nthe next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated global \u003ccode\u003ereceiver_connected\u003c/code\u003e\nsignal and specify that it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eShow a deprecation warning for the deprecated \u003ccode\u003eWeakNamespace\u003c/code\u003e and specify\nthat it will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eGreatly simplify how the library uses weakrefs. This is a significant change\ninternally but should not affect any public API. :pr:\u003ccode\u003e144\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eExpose the namespace used by \u003ccode\u003esignal()\u003c/code\u003e as \u003ccode\u003edefault_namespace\u003c/code\u003e.\n:pr:\u003ccode\u003e145\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-eco/blinker/commit/669f3a027828d19786e708b511277fabcd6b9532\"\u003e\u003ccode\u003e669f3a0\u003c/code\u003e\u003c/a\u003e release version 1.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/cfe116fa7912d8dcb0deee4907aa63d1efaadf5b\"\u003e\u003ccode\u003ecfe116f\u003c/code\u003e\u003c/a\u003e try disabling attestions on test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/16e4bd70a19353d9d7cf47e4df7de54936296377\"\u003e\u003ccode\u003e16e4bd7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/174\"\u003e#174\u003c/a\u003e from projectgus/bugfix/weakref_disconnect_shutdown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/42561fdf065032f5c39aea04d8c3fb4db93f73f3\"\u003e\u003ccode\u003e42561fd\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;Exception ignored\u0026quot; in weakref callback during interpreter shutdown.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/dcce3e97743494433025e0b68f742f3582b6ba6a\"\u003e\u003ccode\u003edcce3e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/175\"\u003e#175\u003c/a\u003e from pallets-eco/drop-python3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/efa95eaa080b0d4a8dcfc46ad1f387ea1ddebd97\"\u003e\u003ccode\u003eefa95ea\u003c/code\u003e\u003c/a\u003e drop support for python 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/82305185358d8ce21619ec0f324688a14a89c23b\"\u003e\u003ccode\u003e8230518\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/94f1202f08c6d00a9fe1ecf5c8cba9da84e4b22f\"\u003e\u003ccode\u003e94f1202\u003c/code\u003e\u003c/a\u003e update dev dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/8c983ecd764e1d113d24522838c2a7312460b7eb\"\u003e\u003ccode\u003e8c983ec\u003c/code\u003e\u003c/a\u003e remove previously deprecated code (\u003ca href=\"https://redirect.github.com/pallets-eco/blinker/issues/172\"\u003e#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/blinker/commit/f5915f3bfcd9f9da0caf6cd4858bf68068c52963\"\u003e\u003ccode\u003ef5915f3\u003c/code\u003e\u003c/a\u003e set up pre-commit lite workflow\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/blinker/compare/1.7.0...1.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fido2` from 1.2.0 to 2.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Yubico/python-fido2/releases\"\u003efido2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epython-fido2 2.0.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.0.0 (released 2025-05-20)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSee also the migration guide: doc/Migration_1-2.adoc.\u003c/li\u003e\n\u003cli\u003ePython 3.10 or later is now required.\u003c/li\u003e\n\u003cli\u003eWebAuthn dataclasses have been updated to align with the WebAuthn Level 3\nWorking Draft. Constructors now require keyword arguments (\u003ccode\u003ekwargs_only=True\u003c/code\u003e),\nand serialization to/from dictionaries is compatible with standardized JSON\nformats.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003efeatures.webauthn_json_mapping\u003c/code\u003e flag has been removed, as its\nbehavior (standardized JSON mapping) is now default.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFido2Client\u003c/code\u003e and \u003ccode\u003eWindowsClient\u003c/code\u003e constructors now accept a\n\u003ccode\u003eClientDataCollector\u003c/code\u003e instance instead of \u003ccode\u003eorigin\u003c/code\u003e and \u003ccode\u003everify\u003c/code\u003e parameters.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWindowsClient\u003c/code\u003e has been relocated to \u003ccode\u003efido2.client.windows\u003c/code\u003e. Importing this\nclass on non-Windows platforms will now raise an \u003ccode\u003eImportError\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eFido2Client\u003c/code\u003e methods now return \u003ccode\u003eRegistrationResponse\u003c/code\u003e and\n\u003ccode\u003eAuthenticationResponse\u003c/code\u003e objects, instead of raw attestation/assertion data.\u003c/li\u003e\n\u003cli\u003eCTAP2/WebAuthn extension handling has been redesigned. \u003ccode\u003eFido2Client\u003c/code\u003e now\nexpects a list of \u003ccode\u003eCtap2Extension\u003c/code\u003e instances. Default behavior includes\nextensions commonly supported by browsers.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003efido2.cbor\u003c/code\u003e module's \u003ccode\u003eload_x\u003c/code\u003e and \u003ccode\u003edump_x\u003c/code\u003e functions have been made\nprivate (renamed with a leading underscore) and should not be used directly.\u003c/li\u003e\n\u003cli\u003ePreviously deprecated functions and APIs have been removed.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003e__version__\u003c/code\u003e attribute in \u003ccode\u003efido2/__init__.py\u003c/code\u003e has been removed. Use\n\u003ccode\u003eimportlib.metadata.version('fido2')\u003c/code\u003e to get the package version.\u003c/li\u003e\n\u003cli\u003eAdd support for Persistent PinUvAuthToken and encIdentifier.\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003ehmac-secret-mc\u003c/code\u003e and \u003ccode\u003ethirdPartyPayments\u003c/code\u003e exensions.\u003c/li\u003e\n\u003cli\u003eAdd new GetInfo fields based on CTAP 2.2\u003c/li\u003e\n\u003cli\u003eUpdate COSE algorithnm types.\u003c/li\u003e\n\u003cli\u003eBuilding the library now requires Poetry version 2.0 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epython-fido2 2.0.0-beta.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eVersion 2.0.0-beta.1 (released 2025-02-26) Preview release\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePreview release: The API may undergo changes prior to the final 2.0.0 release!\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Python \u0026gt;= 3.10\u003c/li\u003e\n\u003cli\u003eBuilding requires Poetry \u0026gt;= 2.0\u003c/li\u003e\n\u003cli\u003eWebAuthn dataclasses have been updated to reflect the current state of the spec\n(level 3 working draft), constructors require arguments to be passed by name\n(kwargs_only), and serialization to/from dict is compatible with the standardized\nJSON formats.\u003c/li\u003e\n\u003cli\u003efeatures.webauthn_json_mapping has been removed, as this behavior is now the\nstandard.\u003c/li\u003e\n\u003cli\u003eWindowsClient has been moved to fido2.client.windows. This class can no longer be\nimported on non-windows platforms (throws ImportError).\u003c/li\u003e\n\u003cli\u003eUse RegistrationResponse and AuthenticationResponse classes as return values in\nFido2Client.\u003c/li\u003e\n\u003cli\u003eCTAP2/WebAuthn extension handling has been rewritten, Fido2Client now takes a list\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/Yubico/python-fido2/blob/main/NEWS\"\u003efido2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cul\u003e\n\u003cli\u003eVersion 2.0.0 (released 2025-05-20)\n** See also the migration guide: doc/Migration_1-2.adoc.\n** Python 3.10 or later is now required.\n** WebAuthn dataclasses have been updated to align with the WebAuthn Level 3\nWorking Draft. Constructors now require keyword arguments (\u003ccode\u003ekwargs_only=True\u003c/code\u003e),\nand serialization to/from dictionaries is compatible with standardized JSON\nformats.\n** The \u003ccode\u003efeatures.webauthn_json_mapping\u003c/code\u003e flag has been removed, as its\nbehavior (standardized JSON mapping) is now default.\n** \u003ccode\u003eFido2Client\u003c/code\u003e and \u003ccode\u003eWindowsClient\u003c/code\u003e constructors now accept a\n\u003ccode\u003eClientDataCollector\u003c/code\u003e instance instead of \u003ccode\u003eorigin\u003c/code\u003e and \u003ccode\u003everify\u003c/code\u003e parameters.\n** \u003ccode\u003eWindowsClient\u003c/code\u003e has been relocated to \u003ccode\u003efido2.client.windows\u003c/code\u003e. Importing this\nclass on non-Windows platforms will now raise an \u003ccode\u003eImportError\u003c/code\u003e.\n** \u003ccode\u003eFido2Client\u003c/code\u003e methods now return \u003ccode\u003eRegistrationResponse\u003c/code\u003e and\n\u003ccode\u003eAuthenticationResponse\u003c/code\u003e objects, instead of raw attestation/assertion data.\n** CTAP2/WebAuthn extension handling has been redesigned. \u003ccode\u003eFido2Client\u003c/code\u003e now\nexpects a list of \u003ccode\u003eCtap2Extension\u003c/code\u003e instances. Default behavior includes\nextensions commonly supported by browsers.\n** The \u003ccode\u003efido2.cbor\u003c/code\u003e module's \u003ccode\u003eload_x\u003c/code\u003e and \u003ccode\u003edump_x\u003c/code\u003e functions have been made\nprivate (renamed with a leading underscore) and should not be used directly.\n** Previously deprecated functions and APIs have been removed.\n** The \u003ccode\u003e__version__\u003c/code\u003e attribute in \u003ccode\u003efido2/__init__.py\u003c/code\u003e has been removed. Use\n\u003ccode\u003eimportlib.metadata.version('fido2')\u003c/code\u003e to get the package version.\n** Add new GetInfo fields based on CTAP 2.2.\n** Add support for Persistent PinUvAuthToken and encIdentifier.\n** Add support for hmac-secret-mc and thirdPartyPayments exensions.\n** Update COSE algorithm types.\n** Building the library now requires Poetry version 2.0 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/18cdb62fce476c3f3b864dee924c21e314aadc6a\"\u003e\u003ccode\u003e18cdb62\u003c/code\u003e\u003c/a\u003e Update dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/3b28eee9f148ece775b02ebab1b5989d4c032c08\"\u003e\u003ccode\u003e3b28eee\u003c/code\u003e\u003c/a\u003e Update NEWS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/e484c54b5f114976691e0049638f2fa7f7cc11bf\"\u003e\u003ccode\u003ee484c54\u003c/code\u003e\u003c/a\u003e Add comment for clarification\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/3c21f0c9b769f8e672e7d42bca5ca1f9354e5f3d\"\u003e\u003ccode\u003e3c21f0c\u003c/code\u003e\u003c/a\u003e Bump version, update NEWS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/2c392512c52028ecb7aba4f10c3d201771e6ab55\"\u003e\u003ccode\u003e2c39251\u003c/code\u003e\u003c/a\u003e Use TYPE_CHECKING\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/57e970e17fef820197121c40516518333ac16dab\"\u003e\u003ccode\u003e57e970e\u003c/code\u003e\u003c/a\u003e Set sdist timestamps to commit date\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/acd5616826d02b53201e8f5e538166589c8250bb\"\u003e\u003ccode\u003eacd5616\u003c/code\u003e\u003c/a\u003e Merge PR \u003ca href=\"https://redirect.github.com/Yubico/python-fido2/issues/254\"\u003e#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/3f258aa27a59e6edc840f4abd1a343735139c434\"\u003e\u003ccode\u003e3f258aa\u003c/code\u003e\u003c/a\u003e Update docstrings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/2d685d2088694cd816e84f0a0ede872f461cc42d\"\u003e\u003ccode\u003e2d685d2\u003c/code\u003e\u003c/a\u003e Organize imports with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Yubico/python-fido2/commit/b7d6a01bb2d88cc4a8759c1bc8a1aa6300ee0972\"\u003e\u003ccode\u003eb7d6a01\u003c/code\u003e\u003c/a\u003e Replace black and flake8 with ruff\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Yubico/python-fido2/compare/1.2.0...2.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8` from 7.0.0 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/c48217e1fc006c2dddd14df54e83b67da15de5cd\"\u003e\u003ccode\u003ec48217e\u003c/code\u003e\u003c/a\u003e Release 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/f9e0f33281d5bb892cae2c674ac398439d99c732\"\u003e\u003ccode\u003ef9e0f33\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1986\"\u003e#1986\u003c/a\u003e from PyCQA/document-f542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6bcdb628597fa2d03494965089ff87a492ffc1e9\"\u003e\u003ccode\u003e6bcdb62\u003c/code\u003e\u003c/a\u003e document F542\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/70a15b8890d5bdf8c449ebb1b5259bd0140cc16b\"\u003e\u003ccode\u003e70a15b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1985\"\u003e#1985\u003c/a\u003e from PyCQA/upgrade-deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/4941a3e32e54488698ecbc23993bfeb2a60c0fc5\"\u003e\u003ccode\u003e4941a3e\u003c/code\u003e\u003c/a\u003e upgrade pyflakes / pycodestyle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/23e4005c5501999c29e1e3774de7ed18d1e4e22d\"\u003e\u003ccode\u003e23e4005\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1983\"\u003e#1983\u003c/a\u003e from PyCQA/py314\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/019424b80d3d7d5d8a2a1638f5877080546e3f46\"\u003e\u003ccode\u003e019424b\u003c/code\u003e\u003c/a\u003e add support for t-strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/6b6f3d5fefecc994a06f425c18c3cddc9b71e4a4\"\u003e\u003ccode\u003e6b6f3d5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1980\"\u003e#1980\u003c/a\u003e from PyCQA/asottile-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/8dfa6695b4fb1e1401b357367a0a71037d29f6aa\"\u003e\u003ccode\u003e8dfa669\u003c/code\u003e\u003c/a\u003e add rtd sphinx config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8/commit/ce3411118382d9332feb2749c8f417d10bfa2584\"\u003e\u003ccode\u003ece34111\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pycqa/flake8/issues/1976\"\u003e#1976\u003c/a\u003e from PyCQA/document-f824\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pycqa/flake8/compare/7.0.0...7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8-bugbear` from 22.10.27 to 24.12.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/releases\"\u003eflake8-bugbear's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e24.12.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB012 and B025 now also handle try/except* (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip B028 if warnings.warn is called with \u003ccode\u003e*args\u003c/code\u003e or \u003ccode\u003e**kwargs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd B911: itertools.batched without strict= (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReadme has anchors per check (they do not seem to render on GitHub tho)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.10.31\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB041: New dictionary same key AND value check (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/496\"\u003e#496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB037: Fix typo in error message\u003c/li\u003e\n\u003cli\u003eB024: No longer treats assigned class variables as abstract (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/471\"\u003e#471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump required attrs version to 22.2.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.8.19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB910: implement to suggest using Counter() instead of defaultdict(int) (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/489\"\u003e#489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB901: Do not trigger with explicit Generator return type (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/481\"\u003e#481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB008: add some comments, rename b008_extend_immutable_calls (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB040: exception with note added not reraised or used (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB039, Add \u003ccode\u003eContextVar\u003c/code\u003e with mutable literal or function call as default\u003c/li\u003e\n\u003cli\u003eB040: Add Exception with added note not reraised. (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRun tests in Python 3.13\u003c/li\u003e\n\u003cli\u003eType annotated code (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/481\"\u003e#481\u003c/a\u003e + \u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/483\"\u003e#483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace hash with unsafe_hash (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/486\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.4.26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB909: Fix false positive affecting containers of mutables (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/469\"\u003e#469\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.4.21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB950: Add pragma comment to line length ignores (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/463\"\u003e#463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB909: Add more cases to detect + more container mutating functions (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/460\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB902: Remove decorators named validator and root_validator from B902 checks (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/459\"\u003e#459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB038: Change B038 to B909 and make it optional (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/456\"\u003e#456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB038: Restrict rule to mutation functions only (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/453\"\u003e#453\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB036: Fix crash on \u003ccode\u003eraise\u003c/code\u003e statements raising something other than\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e24.1.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB038: Add check for mutations of loop iterator (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/446\"\u003e#446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB037: Add check for yielding or returning values in \u003cstrong\u003einit\u003c/strong\u003e() (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/442\"\u003e#442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB017: make B017 also apply to BaseException (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/439\"\u003e#439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB036: Add check for except BaseException without re-raising (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/438\"\u003e#438\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e23.12.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eB018: to detect useless-statements at all levels (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB018: Add classname to b018 useless-expression output (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eB018: Include tuples in b018 useless-statement check (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/432\"\u003e#432\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/PyCQA/flake8-bugbear/commit/3a140377c8f1f585013a1566f2c8bb3ead9c329c\"\u003e\u003ccode\u003e3a14037\u003c/code\u003e\u003c/a\u003e Update CHANGES + move to version 24.12.12 to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/761dbe20148c4cdf18401789812b4a2e50257519\"\u003e\u003ccode\u003e761dbe2\u003c/code\u003e\u003c/a\u003e Make rstcheck pass again sadly ignoring anchor links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/7ee19764bf20abcf999898f5268f65b3ee1caf09\"\u003e\u003ccode\u003e7ee1976\u003c/code\u003e\u003c/a\u003e README: Add anchors for rules and config options (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/491\"\u003e#491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/b96027296277c210bbd412c78842f6f731366d0d\"\u003e\u003ccode\u003eb960272\u003c/code\u003e\u003c/a\u003e add except* support to B012\u0026amp;B025 (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/500\"\u003e#500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/4fed293390eff2db0e3ab0658d69828ac82dfb3e\"\u003e\u003ccode\u003e4fed293\u003c/code\u003e\u003c/a\u003e Skip \u003ccode\u003eB028\u003c/code\u003e if \u003ccode\u003ewarnings.warn\u003c/code\u003e is called with \u003ccode\u003e*args\u003c/code\u003e or \u003ccode\u003e**kwargs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/501\"\u003e#501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/994f3dd578005ec6eafff3f8fa11c25e44f5e087\"\u003e\u003ccode\u003e994f3dd\u003c/code\u003e\u003c/a\u003e Add B911: itertools.batched without strict= (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/502\"\u003e#502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/108bba413ec71eada5c6848114614d61352557de\"\u003e\u003ccode\u003e108bba4\u003c/code\u003e\u003c/a\u003e Fix README format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/72f6116f895af3270707d3795227be63f67641af\"\u003e\u003ccode\u003e72f6116\u003c/code\u003e\u003c/a\u003e Update CHANGES + move to version 24.10.31 to release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/07a5676b2181ecaf3be8fceec63b4350b445aa07\"\u003e\u003ccode\u003e07a5676\u003c/code\u003e\u003c/a\u003e Add scentence really explaining B041\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyCQA/flake8-bugbear/commit/95f87911a787a05ac22106d50c29a57fd8651e6f\"\u003e\u003ccode\u003e95f8791\u003c/code\u003e\u003c/a\u003e Add B041: Duplicate key-value pairs in dictionary literals (\u003ca href=\"https://redirect.github.com/PyCQA/flake8-bugbear/issues/496\"\u003e#496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyCQA/flake8-bugbear/compare/22.10.27...24.12.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` 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/flask/releases\"\u003eflask'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 a fix release for the 3.0.x feature branch.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.0.3/\"\u003ehttps://pypi.org/project/Flask/3.0.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/en/3.0.x/changes/#version-3-0-3\"\u003ehttps://flask.palletsprojects.com/en/3.0.x/changes/#version-3-0-3\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/35?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/35?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't access it at import time so the developer has time to change the default. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5448\"\u003e#5448\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't initialize the \u003ccode\u003ecli\u003c/code\u003e attribute in the sansio scaffold, but rather in the \u003ccode\u003eFlask\u003c/code\u003e concrete class. \u003ca href=\"https://redirect.github.com/pallets/flask/issues/5270\"\u003e#5270\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.0.3\u003c/h2\u003e\n\u003cp\u003eReleased 2024-04-07\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe default \u003ccode\u003ehashlib.sha1\u003c/code\u003e may not be available in FIPS builds. Don't\naccess it at import time so the developer has time to change the default.\n:issue:\u003ccode\u003e5448\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't initialize the \u003ccode\u003ecli\u003c/code\u003e attribute in the sansio scaffold, but rather in\nthe \u003ccode\u003eFlask\u003c/code\u003e concrete class. :pr:\u003ccode\u003e5270\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c12a5d874c5a014495eb2db8a73f40037bc813ac\"\u003e\u003ccode\u003ec12a5d8\u003c/code\u003e\u003c/a\u003e release version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/5e22cc9eec0d1da2da706ccf724fde702b30d5f2\"\u003e\u003ccode\u003e5e22cc9\u003c/code\u003e\u003c/a\u003e Don't set the cli attribute in the sansio scaffold (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5270\"\u003e#5270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/5fdce4c331ac530280cc941179d364a07f4a1088\"\u003e\u003ccode\u003e5fdce4c\u003c/code\u003e\u003c/a\u003e Don't set the cli attribute in the sansio scaffold\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/adb7dd99c295a28726c8d818fba54c7b3f958ecc\"\u003e\u003ccode\u003eadb7dd9\u003c/code\u003e\u003c/a\u003e don't access app.logger when configuring app.logger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/b73939095564ec5c088c53e7595b00d174a018f5\"\u003e\u003ccode\u003eb739390\u003c/code\u003e\u003c/a\u003e support FIPS builds without SHA-1 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5460\"\u003e#5460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/db461112c70d5f2bf93c7a6ac27eeb665c232dd0\"\u003e\u003ccode\u003edb46111\u003c/code\u003e\u003c/a\u003e access sha1 lazily\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/7320e311a0a3f190351173f8be90cab31dadbf73\"\u003e\u003ccode\u003e7320e31\u003c/code\u003e\u003c/a\u003e start version 3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/87d5f5b9a9697434e6d972b021201105eabb54e6\"\u003e\u003ccode\u003e87d5f5b\u003c/code\u003e\u003c/a\u003e update project files (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5457\"\u003e#5457\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/d5e321b792cd6f3cd7b072d175f47eacbd5ee14f\"\u003e\u003ccode\u003ed5e321b\u003c/code\u003e\u003c/a\u003e release version 3.0.2 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5403\"\u003e#5403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pallets/flask/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 `flask-wtf` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-wtf/releases\"\u003eflask-wtf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove the project to the pallets-eco organization. \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/602\"\u003e#602\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.8. Start support for Python 3.13. \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/603\"\u003e#603\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-eco/flask-wtf/blob/main/docs/changes.rst\"\u003eflask-wtf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2024-10-20\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMove the project to the pallets-eco organization. :pr:\u003ccode\u003e602\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.8. Start support for Python 3.13. :pr:\u003ccode\u003e603\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-eco/flask-wtf/commit/2e142951788d8209815fd4797c93f6f3c275ed71\"\u003e\u003ccode\u003e2e14295\u003c/code\u003e\u003c/a\u003e chore: pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/552b7a763235abbd69efc732147ec1e2c4c61ac8\"\u003e\u003ccode\u003e552b7a7\u003c/code\u003e\u003c/a\u003e chore: bump to 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/32f12767656e0f4304221e62c027fe99b67ea037\"\u003e\u003ccode\u003e32f1276\u003c/code\u003e\u003c/a\u003e chore: install 'build' dependency for the release GHA workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/f712367414346196e7fc436ad771533ed2c98898\"\u003e\u003ccode\u003ef712367\u003c/code\u003e\u003c/a\u003e chore: dependencies update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/b929162626b813b7ee2a8edb58fce861cd2e34af\"\u003e\u003ccode\u003eb929162\u003c/code\u003e\u003c/a\u003e chore: use Flask inspired GHA workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/07049e3b87aec17c693dd8cd6993e09bce679705\"\u003e\u003ccode\u003e07049e3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/604\"\u003e#604\u003c/a\u003e from azmeuk/flask-pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/49a13806e95b87735f7c196663ef5155a752dfec\"\u003e\u003ccode\u003e49a1380\u003c/code\u003e\u003c/a\u003e chore: pre-commit configuration insipred from Flask\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/f2bbd1b67a982131278488cc18ba1f65b3caafac\"\u003e\u003ccode\u003ef2bbd1b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/603\"\u003e#603\u003c/a\u003e from azmeuk/py313\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/d3cd8bf1e0d4dbd15daf1cbbf521da41e2c30d50\"\u003e\u003ccode\u003ed3cd8bf\u003c/code\u003e\u003c/a\u003e chore: stop support for python 3.8; start support for python 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-wtf/commit/0b2e5e413efb614b47f5deb8416847555e2ea07a\"\u003e\u003ccode\u003e0b2e5e4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-wtf/issues/602\"\u003e#602\u003c/a\u003e from azmeuk/pallets-eco\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-wtf/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.2.2 to 1.5.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spulec/freezegun/blob/master/CHANGELOG\"\u003efreezegun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow parametrized arguments called 'func' (Broken in 1.5.4)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Ability to yield fixtures (broken in 1.5.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix compatibility with pytest 8.4.0 when using fixtures\u003c/li\u003e\n\u003cli\u003eAdd (back) class-decorator overload to guarantee Pytype understands it\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.7\u003c/li\u003e\n\u003cli\u003eExplicitly marks support for Python 3.13\u003c/li\u003e\n\u003cli\u003eImproved project documentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the typing of the \u003ccode\u003etick()\u003c/code\u003e method, and improve it's behaviour.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe default ignore list now contains the \u003ccode\u003equeue\u003c/code\u003e-package\u003c/li\u003e\n\u003cli\u003eAdded a missing \u003ccode\u003emove_to\u003c/code\u003e-function when calling \u003ccode\u003efreeze_time(tick=True)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixes a rounding error in \u003ccode\u003etime.time_ns()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed a bug where the default ignore list could not be empty (\u003ccode\u003econfigure(default_ignore_list=[])\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAll \u003ccode\u003etick()\u003c/code\u003e methods now return the new datetime (instead of None)\u003c/li\u003e\n\u003cli\u003eType improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003easyncio\u003c/code\u003e-support from 1.3.x introduced quite a few  bugs, so that functionality is now hidden behind a flag:\n\u003ccode\u003ewith freeze_time('1970-01-02', real_asyncio=True):\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded documentation for the \u003ccode\u003ereal_asyncio\u003c/code\u003e parameter in the \u003ccode\u003eREADME.rst\u003c/code\u003e file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the release number in the build\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed \u003ccode\u003easyncio\u003c/code\u003e support to avoid \u003ccode\u003eawait asyncio.sleep(1)\u003c/code\u003e hanging forever.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.12\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/spulec/freezegun/commit/c9bf52c5aa12ea1b5b8647a136a92504ea071f2f\"\u003e\u003ccode\u003ec9bf52c\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0f2bd7ed8b420da73372f4cbb0207b777caa66e9\"\u003e\u003ccode\u003e0f2bd7e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/582\"\u003e#582\u003c/a\u003e from spulec/fixture-called-func\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/a6080557cbcbe4891843934c1334430bb1c5ead7\"\u003e\u003ccode\u003ea608055\u003c/code\u003e\u003c/a\u003e Allow parametrized arguments with name 'func'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/2bb47113a5f9f290d26630c92732e58f49557179\"\u003e\u003ccode\u003e2bb4711\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/7599eeea16b8f206e881892dc104128a5b36de82\"\u003e\u003ccode\u003e7599eee\u003c/code\u003e\u003c/a\u003e Add 1.5.4 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0d00e7ddd9ad33fc63fbed29af17853b18bc3c61\"\u003e\u003ccode\u003e0d00e7d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/579\"\u003e#579\u003c/a\u003e from zsh8/decorate_generator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/10c93f2d6c98f82e54470b05144cd0f17d3e1b46\"\u003e\u003ccode\u003e10c93f2\u003c/code\u003e\u003c/a\u003e fix: preserve functionality in pytest yield fixtures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/d2e0a00addb0653b0cf3be65f8fa7137c7e3bda1\"\u003e\u003ccode\u003ed2e0a00\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/6229e27d27ec61c4c55d7006db7ede6f16d7280a\"\u003e\u003ccode\u003e6229e27\u003c/code\u003e\u003c/a\u003e Add 1.5.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/3111775d6e484f55a85030c626180b592adef569\"\u003e\u003ccode\u003e3111775\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/576\"\u003e#576\u003c/a\u003e from spulec/support-fixtures-pytest-840\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spulec/freezegun/compare/1.2.2...1.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-bank-holidays` from 0.15 to 0.17\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/releases\"\u003egovuk-bank-holidays's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.17\u003c/h2\u003e\n\u003cp\u003eAdded timeout for source downloads (default being GOV.UK) before falling back to cache. With thanks to \u003ca href=\"https://github.com/ibrechin\"\u003e\u003ccode\u003e@​ibrechin\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.16...0.17\"\u003eChanges\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.16\u003c/h2\u003e\n\u003cp\u003eRemoved support for python versions older than 3.9 since they have reached end-of-life and are not available for testing in Github Actions.\nAdded python 3.13 to testing matrix.\nUpdated cached bank holidays file to include latest holidays published by GOV.UK.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.15...0.16\"\u003eChanges\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/ministryofjustice/govuk-bank-holidays/commit/a15061da364cb2927c441289a9defb767fa95551\"\u003e\u003ccode\u003ea15061d\u003c/code\u003e\u003c/a\u003e Bump to 0.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/7ccd9106a893cb6a470734e4c4e8a84439b7b24e\"\u003e\u003ccode\u003e7ccd910\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/govuk-bank-holidays/issues/25\"\u003e#25\u003c/a\u003e from ibrechin/add-request-timeout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/11dd549d0fd663e510a40772f9ebb5ec87f72fca\"\u003e\u003ccode\u003e11dd549\u003c/code\u003e\u003c/a\u003e Add configurable timeout for downloading live holiday data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/11ddc9c2e3bba5e140a5d17d54e7dd38aaa7fb56\"\u003e\u003ccode\u003e11ddc9c\u003c/code\u003e\u003c/a\u003e Bump to 0.16\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/5ad9b7b086865aa779e9a087555f841df80a858d\"\u003e\u003ccode\u003e5ad9b7b\u003c/code\u003e\u003c/a\u003e Remove (official) support and testing on python \u0026lt; 3.9 (though it should conti...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/86fd881acc6825876d46298b51f3a23aec2ea5a1\"\u003e\u003ccode\u003e86fd881\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ministryofjustice/govuk-bank-holidays/issues/24\"\u003e#24\u003c/a\u003e from ibrechin/update-cached\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/commit/f4ecaf843e48cb1f417ceb288080d7cd906575e2\"\u003e\u003ccode\u003ef4ecaf8\u003c/code\u003e\u003c/a\u003e Update cached bank holidays\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ministryofjustice/govuk-bank-holidays/compare/0.15...0.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-frontend-jinja` from 3.3.0 to 3.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases\"\u003egovuk-frontend-jinja's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.11.1\"\u003eGOV.UK Frontend v5.11.1\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.10.0\"\u003eGOV.UK Frontend v5.10.0\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIntroduced rebranding logic in \u003ccode\u003eheader\u003c/code\u003e, \u003ccode\u003efooter\u003c/code\u003e, and \u003ccode\u003eservice-navigation\u003c/code\u003e components.\u003c/li\u003e\n\u003cli\u003eAdded a new \u003ccode\u003elogo.html\u003c/code\u003e macro for enhanced branding capabilities.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003etemplate.html\u003c/code\u003e to handle rebranding dynamically through variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgraded dependencies in \u003ccode\u003erequirements-test-*.txt\u003c/code\u003e files to the latest minor/patch versions:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eclick\u003c/code\u003e → v8.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflake8\u003c/code\u003e → v7.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ejinja2\u003c/code\u003e → v3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epycodestyle\u003c/code\u003e → v2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epyflakes\u003c/code\u003e → v3.3.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eREADME.md\u003c/code\u003e badges to reflect the latest project state.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecated legacy crown logos in favour of the Tudor Crown.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved attribute handling in \u003ccode\u003eservice-navigation\u003c/code\u003e and other components.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.9.0\"\u003eGOV.UK Frontend v5.9.0\u003c/a\u003e support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.4.1\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.8.0\"\u003eGOV.UK Frontend v5.8.0\u003c/a\u003e support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.4.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.7.1\"\u003eGOV.UK Frontend v5.7.1\u003c/a\u003e support\u003c/li\u003e\n\u003cli\u003ePython 3.13 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support\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/LandRegistry/govuk-frontend-jinja/blob/main/CHANGELOG.md\"\u003egovuk-frontend-jinja's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.7.0\"\u003e3.7.0\u003c/a\u003e - 14/08/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.11.1\"\u003eGOV.UK Frontend v5.11.1\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.6.0\"\u003e3.6.0\u003c/a\u003e - 14/05/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.10.0\"\u003eGOV.UK Frontend v5.10.0\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIntroduced rebranding logic in \u003ccode\u003eheader\u003c/code\u003e, \u003ccode\u003efooter\u003c/code\u003e, and \u003ccode\u003eservice-navigation\u003c/code\u003e components.\u003c/li\u003e\n\u003cli\u003eAdded a new \u003ccode\u003elogo.html\u003c/code\u003e macro for enhanced branding capabilities.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003etemplate.html\u003c/code\u003e to handle rebranding dynamically through variables.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgraded dependencies in \u003ccode\u003erequirements-test-*.txt\u003c/code\u003e files to the latest minor/patch versions:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eclick\u003c/code\u003e → v8.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eflake8\u003c/code\u003e → v7.2.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ejinja2\u003c/code\u003e → v3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epycodestyle\u003c/code\u003e → v2.13.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epyflakes\u003c/code\u003e → v3.3.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eREADME.md\u003c/code\u003e badges to reflect the latest project state.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecated legacy crown logos in favor of the Tudor Crown.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved attribute handling in \u003ccode\u003eservice-navigation\u003c/code\u003e and other components.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.5.0\"\u003e3.5.0\u003c/a\u003e - 05/03/2025\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.9.0\"\u003eGOV.UK Frontend v5.9.0\u003c/a\u003e support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.4.1\"\u003e3.4.1\u003c/a\u003e - 13/01/2025\u003c/h2\u003e\n\u003cp\u003eNo functional changes.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v5.8.0\"\u003eGOV.UK Frontend v5.8.0\u003c/a\u003e support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/releases/tag/3.4.0\"\u003e3.4.0\u003c/a\u003e - 15/10/2024\u003c/h2\u003e\n\u003ch3\u003eAdded\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/LandRegistry/govuk-frontend-jinja/commit/60365bd8451c8dcd434f4087dbb013460b9332d2\"\u003e\u003ccode\u003e60365bd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/99\"\u003e#99\u003c/a\u003e from LandRegistry/govuk-frontend-511\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/0e4e874123d1e9bad9a7b179b1a99eb3336ed076\"\u003e\u003ccode\u003e0e4e874\u003c/code\u003e\u003c/a\u003e logo tweak\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/79cebabe0b4f93e38eb4a171112157b8a791a3a8\"\u003e\u003ccode\u003e79cebab\u003c/code\u003e\u003c/a\u003e collapse on mobile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/debcb30a2d394e6b96a36c8274c9de9c9e6c75df\"\u003e\u003ccode\u003edebcb30\u003c/code\u003e\u003c/a\u003e dependency upgrades\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/b939cd53a3a19cada054c497868217cb9de0203a\"\u003e\u003ccode\u003eb939cd5\u003c/code\u003e\u003c/a\u003e bump version numbers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/f7a737c4db72043b3feae8718c9940938ea3c59c\"\u003e\u003ccode\u003ef7a737c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/LandRegistry/govuk-frontend-jinja/issues/94\"\u003e#94\u003c/a\u003e from LandRegistry/govuk-frontend-510\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/0d8df97459d01d58536be49b7a781c789c8f0332\"\u003e\u003ccode\u003e0d8df97\u003c/code\u003e\u003c/a\u003e 3.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/45da68e9608b4aad8769a269bc2457584861a857\"\u003e\u003ccode\u003e45da68e\u003c/code\u003e\u003c/a\u003e page template updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/3a6707b3c6deea8b390831b32ee7a9e6aa6f9633\"\u003e\u003ccode\u003e3a6707b\u003c/code\u003e\u003c/a\u003e add logo macro\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/commit/074588956572857f4b844ff2d53487037e1a9dd9\"\u003e\u003ccode\u003e0745889\u003c/code\u003e\u003c/a\u003e service navigation updates\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/LandRegistry/govuk-frontend-jinja/compare/3.3.0...3.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `humanize` from 4.4.0 to 4.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-humanize/humanize/releases\"\u003ehumanize's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.13.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimise \u003ccode\u003enaturalsize\u003c/code\u003e algorithm by using \u003ccode\u003emath.log\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/253\"\u003e#253\u003c/a\u003e) \u003ca href=\"https://github.com/Zaczero\"\u003e\u003ccode\u003e@​Zaczero\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprecisedelta\u003c/code\u003e rounding (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/254\"\u003e#254\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.3\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003enaturalsize\u003c/code\u003e for \u003ccode\u003efloat\u003c/code\u003e and \u003ccode\u003estr\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/250\"\u003e#250\u003c/a\u003e) \u003ca href=\"https://github.com/loicleyendecker\"\u003e\u003ccode\u003e@​loicleyendecker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprovements for French translation (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/248\"\u003e#248\u003c/a\u003e) \u003ca href=\"https://github.com/merwok\"\u003e\u003ccode\u003e@​merwok\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.2\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate license file reference from \u003ccode\u003eLICENSE\u003c/code\u003e to \u003ccode\u003eLICENCE\u003c/code\u003e in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/243\"\u003e#243\u003c/a\u003e) \u003ca href=\"https://github.com/williamjamir\"\u003e\u003ccode\u003e@​williamjamir\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate docstring in naturaldelta (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/242\"\u003e#242\u003c/a\u003e) \u003ca href=\"https://github.com/teobucci\"\u003e\u003ccode\u003e@​teobucci\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore \u003ccode\u003esys.monitoring\u003c/code\u003e warning for Python 3.11 and earlier in coverage.py config (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/244\"\u003e#244\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.1\u003c/h2\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003enaturalsize\u003c/code\u003e for float (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/240\"\u003e#240\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.12.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and test PyPy3.11 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/235\"\u003e#235\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle en_GB and en_US locale (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/230\"\u003e#230\u003c/a\u003e) \u003ca href=\"https://github.com/dangillet\"\u003e\u003ccode\u003e@​dangillet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease to PyPI using Trusted Publishing (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/213\"\u003e#213\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefer imports for faster overall import time: 19 ms -\u0026gt; 3 ms (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/234\"\u003e#234\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/238\"\u003e#238\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace deprecated classifier with licence expression (PEP 639) (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/236\"\u003e#236\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLint and test with tox-uv (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/212\"\u003e#212\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix overflow issue in \u003ccode\u003enaturalsize\u003c/code\u003e with \u003ccode\u003enp.int32\u003c/code\u003e input (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/218\"\u003e#218\u003c/a\u003e) \u003ca href=\"https://github.com/Toprak2\"\u003e\u003ccode\u003e@​Toprak2\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pt_BR locale (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/216\"\u003e#216\u003c/a\u003e) \u003ca href=\"https://github.com/cuducos\"\u003e\u003ccode\u003e@​cuducos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGenerate translation binaries during release (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/232\"\u003e#232\u003c/a\u003e) \u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.11.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003enatural_list\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/110\"\u003e#110\u003c/a\u003e) \u003ca href=\"https://github.com/akshaybabloo\"\u003e\u003ccode\u003e@​akshaybabloo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/0e027051034b7dcb4eb65aded290cf56a89d8aa9\"\u003e\u003ccode\u003e0e02705\u003c/code\u003e\u003c/a\u003e Update config (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/288a7a7c1dbfd1c977add3c54a7c9283039a6c71\"\u003e\u003ccode\u003e288a7a7\u003c/code\u003e\u003c/a\u003e Test free-threaded Python 3.13t and 3.14t (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/0f5d2948d674a88a611f8e341c0df520767b1b80\"\u003e\u003ccode\u003e0f5d294\u003c/code\u003e\u003c/a\u003e Precisedelta rounding (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/254\"\u003e#254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/58d10b43175a22eb9ece2c6f3dcff6b6b681e2df\"\u003e\u003ccode\u003e58d10b4\u003c/code\u003e\u003c/a\u003e Update docs/requirements.txt (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/260\"\u003e#260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/18105e31d4909452207eecb8864f345b134b0d61\"\u003e\u003ccode\u003e18105e3\u003c/code\u003e\u003c/a\u003e Update dependency mypy to v1.17.1 (\u003ca href=\"https://redirect.github.com/python-humanize/humanize/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-humanize/humanize/commit/122726447c64fb197410f496e5715f9b0...\n\n_Description has been truncated_","html_url":"https://github.com/alphagov/emergency-alerts-admin/pull/283","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphagov%2Femergency-alerts-admin/issues/283","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/283/packages"}},{"old_version":"3.5.0","new_version":"3.7.2","update_type":"minor","path":null,"pr_created_at":"2025-09-29T17:08:08.000Z","version_change":"3.5.0 → 3.7.2","issue":{"uuid":"2871399299","node_id":"PR_kwDOJgSYNM6rJhOD","number":869,"state":"open","title":"Bump pyproj from 3.5.0 to 3.7.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-29T17:08:08.000Z","updated_at":"2025-09-29T17:08:09.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pyproj","old_version":"3.5.0","new_version":"3.7.2","repository_url":"https://github.com/pyproj4/pyproj"}],"path":null,"ecosystem":"pip"},"body":"Bumps [pyproj](https://github.com/pyproj4/pyproj) from 3.5.0 to 3.7.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyproj4/pyproj/releases\"\u003epyproj's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.22 to 2.23 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/pyproj4/pyproj/pull/1479\"\u003epyproj4/pyproj#1479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Only import time.perf_counter by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1480\"\u003epyproj4/pyproj#1480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1481\"\u003epyproj4/pyproj#1481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Python 3.11+ by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1483\"\u003epyproj4/pyproj#1483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump scientific-python/upload-nightly-action from 0.6.1 to 0.6.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/pyproj4/pyproj/pull/1488\"\u003epyproj4/pyproj#1488\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: update doc geometry_area_perimeter by \u003ca href=\"https://github.com/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDOC: Remove 'noqa: E501' from docstrings by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epyproj.crs: add imports to \u003cstrong\u003eall\u003c/strong\u003e by \u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1494\"\u003epyproj4/pyproj#1494\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: replace black and isort with ruff format and lint by \u003ca href=\"https://github.com/mwtoews\"\u003e\u003ccode\u003e@​mwtoews\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1496\"\u003epyproj4/pyproj#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBUILD/CI: Add win_arm64 wheel build by \u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 2.23 to 3.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/pyproj4/pyproj/pull/1502\"\u003epyproj4/pyproj#1502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pypa/cibuildwheel from 3.0.0 to 3.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/pyproj4/pyproj/pull/1505\"\u003epyproj4/pyproj#1505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBLD: Enable free-threading compatibility by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1512\"\u003epyproj4/pyproj#1512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Add 3.13 free-threading wheels by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1514\"\u003epyproj4/pyproj#1514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-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/pyproj4/pyproj/pull/1520\"\u003epyproj4/pyproj#1520\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions by \u003ca href=\"https://github.com/djhoese\"\u003e\u003ccode\u003e@​djhoese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1519\"\u003epyproj4/pyproj#1519\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout 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/pyproj4/pyproj/pull/1521\"\u003epyproj4/pyproj#1521\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/myl-dvl\"\u003e\u003ccode\u003e@​myl-dvl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1489\"\u003epyproj4/pyproj#1489\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamjstewart\"\u003e\u003ccode\u003e@​adamjstewart\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1492\"\u003epyproj4/pyproj#1492\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khmyznikov\"\u003e\u003ccode\u003e@​khmyznikov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1503\"\u003epyproj4/pyproj#1503\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\"\u003ehttps://github.com/pyproj4/pyproj/compare/3.7.1...3.7.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.7.2rc1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.2rc0\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003e3.7.1 Release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1477\"\u003epyproj4/pyproj#1477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 by \u003ca href=\"https://github.com/snowman2\"\u003e\u003ccode\u003e@​snowman2\u003c/code\u003e\u003c/a\u003e in  \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1475\"\u003epyproj4/pyproj#1475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWHL: Add wheels for musllinux by \u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead. by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1450\"\u003epyproj4/pyproj#1450\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes by \u003ca href=\"https://github.com/greglucas\"\u003e\u003ccode\u003e@​greglucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1452\"\u003epyproj4/pyproj#1452\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 by \u003ca href=\"https://github.com/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1455\"\u003epyproj4/pyproj#1455\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLNT: Disallow type error without code by \u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1456\"\u003epyproj4/pyproj#1456\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/kloczek\"\u003e\u003ccode\u003e@​kloczek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1446\"\u003epyproj4/pyproj#1446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqa236\"\u003e\u003ccode\u003e@​tqa236\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1453\"\u003epyproj4/pyproj#1453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/necabo\"\u003e\u003ccode\u003e@​necabo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/pull/1461\"\u003epyproj4/pyproj#1461\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/pyproj4/pyproj/blob/main/docs/history.rst\"\u003epyproj's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.7.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1481\"\u003e#1481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.11 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Add CRS imports to \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eDEP: Add win_arm64 wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.13 free-threading wheels\u003c/li\u003e\n\u003cli\u003eDEP: Add Python 3.14 and 3.14 free-threading wheels\u003c/li\u003e\n\u003cli\u003eTST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Add wheels for musllinux (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1461\"\u003e#1461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: MacOS minimum deployment target moved to 13 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.5.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1477\"\u003e#1477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Cython 3.1+ fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1452\"\u003e#1452\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMNT: Remove use of utcnow() and change to naive datetimes instead (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1450\"\u003e#1450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: remove checking is python \u0026gt;= 3.4 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1446\"\u003e#1446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTST: Add assert statements at the end of tests (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1453\"\u003e#1453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLNT: Setup ruff \u0026amp; lint fixes (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1455\"\u003e#1455\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1456\"\u003e#1456\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.4.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1423\"\u003e#1423\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.10 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1357\"\u003e#1357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDEP: Minimum PROJ version 9.2 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add :meth:\u003ccode\u003eCRS.is_deprecated\u003c/code\u003e and :meth:\u003ccode\u003eCRS.get_non_deprecated\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1383\"\u003e#1383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePERF: thread local context (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Add runtime \u0026amp; compiled PROJ versions (discussion \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1420\"\u003e#1420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Handle changes to HotineObliqueMercatorBConversion (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1429\"\u003e#1429\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.3.0 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1327\"\u003e#1327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Remove pkg_resources from setup.py (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1313\"\u003e#1313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: Cython 3 compatibility fixes (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1321\"\u003e#1321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDEP: Minimum supported Python version 3.9 (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1111\"\u003e#1111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWHL: Wheels contain PROJ 9.2.1 (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1291\"\u003e#1291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added allow_superseded kwargs to :class:\u003ccode\u003epyproj.transformer.TransformerGroup\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1269\"\u003e#1269\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added :meth:\u003ccode\u003eCRS.to_2d\u003c/code\u003e to demote 3D CRS to 2D (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1266\"\u003e#1266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eENH: Added parameter \u003ccode\u003eoutput_axis_rule\u003c/code\u003e to :meth:\u003ccode\u003eCRS.to_wkt\u003c/code\u003e (pull \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1287\"\u003e#1287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUG: fix Geod.npts NaN handling (issue \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1282\"\u003e#1282\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/pyproj4/pyproj/commit/f16037d2c45c3274ef28b828998267c3390393c8\"\u003e\u003ccode\u003ef16037d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/878615decadbde676f9acc82bce9763d62fbacbe\"\u003e\u003ccode\u003e878615d\u003c/code\u003e\u003c/a\u003e MNT: Bump version to 3.7.2rc1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/4813b2db7c0fb92f598748bb1aca85288765a354\"\u003e\u003ccode\u003e4813b2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1521\"\u003e#1521\u003c/a\u003e from pyproj4/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/66b8e0b2fb2f93a83be484cd3ae741c140123930\"\u003e\u003ccode\u003e66b8e0b\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/ff97ab97b5bfd02a714bf84ebd847ec366da48f8\"\u003e\u003ccode\u003eff97ab9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1519\"\u003e#1519\u003c/a\u003e from djhoese/remove-old-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/3692f8aa7fc9373927178fa1774ae69811387cfb\"\u003e\u003ccode\u003e3692f8a\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1520\"\u003e#1520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/f3815db4169e399271d87ce9970175edb4b4170b\"\u003e\u003ccode\u003ef3815db\u003c/code\u003e\u003c/a\u003e MNT: Update history with test removal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/e5ee13f82067e9c577a1bb5e2484ed91c5f96c22\"\u003e\u003ccode\u003ee5ee13f\u003c/code\u003e\u003c/a\u003e TST: Remove irrelevant test with modern PROJ versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/26b3cdb7d68e677ebfec62549288eea02bc38ed9\"\u003e\u003ccode\u003e26b3cdb\u003c/code\u003e\u003c/a\u003e MNT: 3.7.2rc0 and update history\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyproj4/pyproj/commit/0cd586a0fb7094b4f8fb43fe34dd2e249aec0da0\"\u003e\u003ccode\u003e0cd586a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pyproj4/pyproj/issues/1514\"\u003e#1514\u003c/a\u003e from djhoese/ci-313-ft\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyproj4/pyproj/compare/3.5.0...3.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMost Recent Ignore Conditions Applied to This Pull Request\u003c/summary\u003e\n\n| Dependency Name | Ignore Conditions |\n| --- | --- |\n| pyproj | [\u003e= 3.6.a, \u003c 3.7] |\n\u003c/details\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyproj\u0026package-manager=pip\u0026previous-version=3.5.0\u0026new-version=3.7.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/JoranAngevaare/optim_esm_base/pull/869","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoranAngevaare%2Foptim_esm_base/issues/869","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/869/packages"}}]}