{"id":54433,"name":"geoalchemy2","ecosystem":"pip","repository_url":"https://github.com/geoalchemy/geoalchemy2","issues_count":51,"created_at":"2025-07-23T04:23:23.507Z","updated_at":"2025-07-23T04:23:23.507Z","purl":"pkg:pypi/geoalchemy2","metadata":{"id":2745802,"name":"geoalchemy2","ecosystem":"pypi","description":"Using SQLAlchemy with Spatial Databases","homepage":"https://geoalchemy-2.readthedocs.io/en/stable/","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/geoalchemy/geoalchemy2","keywords_array":["geo","gis","sqlalchemy","orm"],"namespace":null,"versions_count":58,"first_release_published_at":"2013-03-13T08:45:35.000Z","latest_release_published_at":"2025-07-21T10:51:46.000Z","latest_release_number":"0.18.0","last_synced_at":"2025-07-28T15:02:25.293Z","created_at":"2022-04-10T11:07:09.959Z","updated_at":"2025-07-28T15:06:19.503Z","registry_url":"https://pypi.org/project/geoalchemy2/","install_command":"pip install geoalchemy2 --index-url https://pypi.org/simple","documentation_url":"https://geoalchemy2.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 4 - Beta","Environment :: Plugins","Intended Audience :: Information Technology","License :: OSI Approved :: MIT License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Topic :: Scientific/Engineering :: GIS"],"normalized_name":"geoalchemy2"},"repo_metadata":{"id":4499156,"uuid":"5638538","full_name":"geoalchemy/geoalchemy2","owner":"geoalchemy","description":"Geospatial extension to SQLAlchemy","archived":false,"fork":false,"pushed_at":"2025-07-21T10:41:07.000Z","size":1152,"stargazers_count":667,"open_issues_count":12,"forks_count":116,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-07-27T09:41:24.262Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://geoalchemy-2.readthedocs.org","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/geoalchemy.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.txt","contributing":null,"funding":".github/FUNDING.yml","license":"COPYING.rst","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["adrien-berchet"]}},"created_at":"2012-09-01T10:00:24.000Z","updated_at":"2025-07-24T10:35:11.000Z","dependencies_parsed_at":"2023-07-05T18:48:14.935Z","dependency_job_id":"743435af-7366-4306-a359-c97b9d560bf0","html_url":"https://github.com/geoalchemy/geoalchemy2","commit_stats":{"total_commits":645,"total_committers":54,"mean_commits":"11.944444444444445","dds":0.724031007751938,"last_synced_commit":"653d6705a4800d66958914e8ef13905b6578fb5d"},"previous_names":[],"tags_count":58,"template":false,"template_full_name":null,"purl":"pkg:github/geoalchemy/geoalchemy2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geoalchemy","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267535175,"owners_count":24103255,"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","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"geoalchemy","name":"geoalchemy","uuid":"851855","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/851855?v=4","repositories_count":3,"last_synced_at":"2024-03-25T21:32:47.673Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/geoalchemy","funding_links":[],"total_stars":700,"followers":4,"following":0,"created_at":"2022-11-02T16:52:15.882Z","updated_at":"2024-03-25T21:32:49.682Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geoalchemy","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geoalchemy/repositories"},"tags":[{"name":"0.17.1","sha":"3cb2bdda31c3d032daef553be6efefe612fe6ced","kind":"commit","published_at":"2025-02-17T09:33:35.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.17.1","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.17.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.17.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.17.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.17.1/manifests"},{"name":"0.17.0","sha":"eab5b71ed0b2cd90254bd8c20b9da35df955805d","kind":"commit","published_at":"2025-01-09T16:08:05.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.17.0","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.17.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.17.0/manifests"},{"name":"0.16.0","sha":"b51dc364ee9b6f9676856c1635dea4dfeb358e37","kind":"commit","published_at":"2024-11-12T14:58:37.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.16.0","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.16.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.16.0/manifests"},{"name":"0.15.2","sha":"4a5887af7337bace5f0cf26d1045448b7d3eb3e8","kind":"commit","published_at":"2024-07-10T18:32:36.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.15.2","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.15.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.15.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.15.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.15.2/manifests"},{"name":"0.15.1","sha":"653d6705a4800d66958914e8ef13905b6578fb5d","kind":"commit","published_at":"2024-05-01T22:56:47.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.15.1","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.15.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.15.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.15.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.15.1/manifests"},{"name":"0.15.0","sha":"e626cd97d7357e3076708de01138b6e9744e0a14","kind":"commit","published_at":"2024-04-23T12:23:21.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.15.0","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.15.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.15.0/manifests"},{"name":"0.14.7","sha":"b2117f863334548b4eb5b098164700c74ed68f15","kind":"commit","published_at":"2024-03-30T23:46:54.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.14.7","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.14.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.14.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.14.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.14.7/manifests"},{"name":"0.14.6","sha":"913df194224a3518247d48cd418f997000c0089b","kind":"commit","published_at":"2024-02-29T15:37:42.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.14.6","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.14.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.14.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.14.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.14.6/manifests"},{"name":"0.14.5","sha":"aaea9fd67bc323e6ea9c06a0f278e5f8b36e8060","kind":"commit","published_at":"2024-02-29T12:25:23.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.14.5","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.14.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.14.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.14.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.14.5/manifests"},{"name":"0.14.4","sha":"71b582063640faffcc2c7bf09915bb53f8bf68fd","kind":"commit","published_at":"2024-02-08T17:03:00.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.14.4","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.14.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.14.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.14.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.14.4/manifests"},{"name":"0.14.3","sha":"cf19b0effa01356f9ea63e9f820ec01a01fb5a7e","kind":"commit","published_at":"2023-12-23T13:49:41.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.14.3","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.14.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.14.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.14.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.14.3/manifests"},{"name":"0.14.2","sha":"d28682b228dadea398ad7ea03a450cefed9ed4a8","kind":"commit","published_at":"2023-10-23T12:00:22.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.14.2","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.14.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.14.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.14.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.14.2/manifests"},{"name":"0.14.1","sha":"80e738d09c6929305376f245bbd38fe7ff22b3f8","kind":"commit","published_at":"2023-07-25T13:59:39.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.14.1","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.14.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.14.1/manifests"},{"name":"0.14.0","sha":"9daf455bbf1ebf7749f777df64d5c695b052fdc7","kind":"commit","published_at":"2023-07-05T10:05:32.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.14.0","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.14.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.14.0/manifests"},{"name":"0.13.3","sha":"c9290c6d43f13ccd610b22e30f4fb6eb73144499","kind":"commit","published_at":"2023-05-17T23:22:35.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.13.3","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.13.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.13.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.13.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.13.3/manifests"},{"name":"0.13.2","sha":"fd3fce052bdc734aea42dac66bd7fc4603ccbbbd","kind":"commit","published_at":"2023-02-06T15:04:24.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.13.2","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.13.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.13.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.13.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.13.2/manifests"},{"name":"0.13.1","sha":"6a5b66bc2377cb7acac8d078c9fa5921d5c0af05","kind":"commit","published_at":"2023-01-23T15:34:39.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.13.1","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.13.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.13.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.13.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.13.1/manifests"},{"name":"0.13.0","sha":"b3204da31adc7b83adc95eb577fa6d398c27d038","kind":"commit","published_at":"2023-01-06T17:06:47.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.13.0","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.13.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.13.0/manifests"},{"name":"0.12.5","sha":"8fbcb8db7a4f5acc24a95f42fc526c6e265de6ff","kind":"commit","published_at":"2022-09-01T08:10:01.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.12.5","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.12.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.12.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.12.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.12.5/manifests"},{"name":"0.12.4","sha":"34b9483d0d981e92d37804557a467765b3f8918b","kind":"commit","published_at":"2022-08-31T11:04:20.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.12.4","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.12.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.12.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.12.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.12.4/manifests"},{"name":"0.12.3","sha":"82b0f15972fc98597802f859f7643a481ef71f77","kind":"commit","published_at":"2022-07-28T12:47:04.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.12.3","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.12.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.12.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.12.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.12.3/manifests"},{"name":"0.12.2","sha":"d24885d236f41a1ae3ddab86492f79510a840637","kind":"commit","published_at":"2022-07-25T07:43:07.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.12.2","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.12.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.12.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.12.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.12.2/manifests"},{"name":"0.12.1","sha":"19aff4c1a057300c39fe5224755f4fe4f01820bc","kind":"commit","published_at":"2022-06-08T09:43:11.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.12.1","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.12.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.12.1/manifests"},{"name":"0.12.0","sha":"1d43b8c1ce9cd2d94b8fbf730a51ccb105db7720","kind":"commit","published_at":"2022-06-07T08:50:03.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.12.0","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.12.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.12.0/manifests"},{"name":"0.11.1","sha":"b50aad2ed9f0aea823dae03069d2a6d3241abda5","kind":"commit","published_at":"2022-03-05T20:02:59.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.11.1","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.11.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.11.1/manifests"},{"name":"0.11.0","sha":"38a44d51c242d867f40d4c5503c91f52a8269ff4","kind":"commit","published_at":"2022-03-04T18:43:15.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.11.0","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.11.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.11.0/manifests"},{"name":"0.10.2","sha":"dce0d0eb88c654700a8a11c7aca02a49483a7a15","kind":"commit","published_at":"2022-01-07T08:55:35.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.10.2","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.10.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.10.2/manifests"},{"name":"0.10.1","sha":"7fa9295e4fddbfee84717d9ccb172816b39ed6f5","kind":"commit","published_at":"2022-01-05T16:54:32.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.10.1","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.10.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.10.1/manifests"},{"name":"0.10.0","sha":"9b251d850c98fba3f228ea52d3a9b10238759453","kind":"commit","published_at":"2021-12-24T15:08:59.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.10.0","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.10.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.10.0/manifests"},{"name":"0.9.4","sha":"4352629bdb84208ab613cdfced24f352b7b110b6","kind":"tag","published_at":"2021-08-25T16:48:22.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.9.4","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.9.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.9.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.9.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.9.4/manifests"},{"name":"0.9.3","sha":"4fd97b18ccab3393575869d36eb1aa4bcae0e920","kind":"tag","published_at":"2021-07-27T11:30:46.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.9.3","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.9.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.9.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.9.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.9.3/manifests"},{"name":"0.9.2","sha":"0ed84a38cc5a224c6d3f9dc6281800bd0f158f9b","kind":"tag","published_at":"2021-07-13T17:58:11.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.9.2","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.9.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.9.2/manifests"},{"name":"0.9.1","sha":"898df5589668319ef2c7708300d53a69c3237fdc","kind":"tag","published_at":"2021-06-22T17:24:26.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.9.1","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.9.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.9.1/manifests"},{"name":"0.9.0","sha":"1d9ff592e8861a8e924ab968fd7212d7d963b6b7","kind":"tag","published_at":"2021-06-07T16:31:48.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.9.0","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.9.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.9.0/manifests"},{"name":"0.8.5","sha":"91d99f2c31cf5e632952ac002197057d1f37a349","kind":"tag","published_at":"2021-03-30T07:57:55.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.8.5","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.8.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.8.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.8.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.8.5/manifests"},{"name":"0.8.4","sha":"200c295932cecb97890a5df550e554fb5c0794ec","kind":"tag","published_at":"2020-06-11T19:30:56.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.8.4","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.8.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.8.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.8.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.8.4/manifests"},{"name":"0.8.3","sha":"58e62addf43c33eff03bd53f973214e85dbe0993","kind":"tag","published_at":"2020-05-26T06:59:16.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.8.3","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.8.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.8.3/manifests"},{"name":"0.8.2","sha":"b521771a72217f1f2b1bd24b25a1acfb110caf48","kind":"tag","published_at":"2020-05-18T12:04:50.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.8.2","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.8.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.8.2/manifests"},{"name":"0.8.1","sha":"1281021c8853cf9e1fc6baac401b9b611e5272c9","kind":"tag","published_at":"2020-05-15T13:09:51.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.8.1","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.8.1/manifests"},{"name":"0.8.0","sha":"60bbbfe602aab345a34621f3cfc7b1f5d620a9ad","kind":"tag","published_at":"2020-05-15T09:42:51.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.8.0","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.8.0/manifests"},{"name":"0.7.0","sha":"1ae4963cc3ce77e0d9d536fa791e0d32f08acca9","kind":"commit","published_at":"2020-03-17T18:00:45.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.7.0","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.7.0/manifests"},{"name":"0.6.3","sha":"334dcd50c2abca6330ec589060d4690f6e742954","kind":"tag","published_at":"2019-06-11T21:35:07.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.6.3","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.6.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.6.3/manifests"},{"name":"0.6.2","sha":"cf24ff30dbdc1c10d4fb1164faa1f8dc9011fea5","kind":"tag","published_at":"2019-04-29T07:40:36.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.6.2","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.6.2/manifests"},{"name":"0.6.1","sha":"3b4041620907b5cc0a387eb15749d53251e89e77","kind":"tag","published_at":"2019-03-06T18:15:01.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.6.1","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.6.1/manifests"},{"name":"0.5.0","sha":"6855daf21fbf88c62dfcee4f2a7916e2ea16f528","kind":"tag","published_at":"2018-08-24T12:44:14.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.5.0","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.5.0/manifests"},{"name":"0.4.2","sha":"ab6cf4a79bff4f17ba69f56e0f0e79e601ff94fa","kind":"tag","published_at":"2018-01-10T12:42:40.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.4.2","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.4.2/manifests"},{"name":"0.4.1","sha":"c38c1731f41e999c533cc4ba4f470d0af24b66da","kind":"tag","published_at":"2017-12-17T20:53:55.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.4.1","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.4.1/manifests"},{"name":"0.4","sha":"a73424a966db123403c0941610344b4d0abc04d4","kind":"tag","published_at":"2016-11-20T17:22:59.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.4","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.4/manifests"},{"name":"0.3","sha":"452aad0e2756e6498992990b9e40ba6187b1fe38","kind":"tag","published_at":"2016-04-03T20:21:51.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.3","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.3/manifests"},{"name":"0.3.0.dev1","sha":"19f6fa311eb502af538ec18ce829dea1217183f9","kind":"tag","published_at":"2015-11-09T17:41:32.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.3.0.dev1","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.3.0.dev1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.3.0.dev1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.3.0.dev1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.3.0.dev1/manifests"},{"name":"0.2.6","sha":"701b284403d99557802abd43eb54821f17b1cdf9","kind":"tag","published_at":"2015-10-22T19:45:02.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.2.6","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.2.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.2.6/manifests"},{"name":"0.2.5","sha":"7dba1a4549ab211b1cbd504aef4a90c13cefd9e5","kind":"tag","published_at":"2015-06-09T10:08:43.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.2.5","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.2.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.2.5/manifests"},{"name":"0.2.4","sha":"a4e73f9de4e411acd358be8a7de0f79a8f8ca80f","kind":"tag","published_at":"2014-04-02T12:26:01.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.2.4","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.2.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.2.4/manifests"},{"name":"0.2.3","sha":"12041a1b06de3392b97729d7cc43b8048c789f8a","kind":"tag","published_at":"2014-01-06T09:39:17.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.2.3","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.2.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.2.3/manifests"},{"name":"0.2.2","sha":"ee431fe68b45eaed679056a30127ccb61a38c4be","kind":"tag","published_at":"2013-10-31T12:17:24.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.2.2","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.2.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.2.2/manifests"},{"name":"0.2.1","sha":"c8a466c79668e7c53d4e22792f8f6b3ee91455d0","kind":"tag","published_at":"2013-06-20T13:12:15.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.2.1","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.2.1/manifests"},{"name":"0.2","sha":"1775679f46f3b37b46949e6011155cb5aaad5765","kind":"tag","published_at":"2013-04-11T20:27:02.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.2","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.2/manifests"},{"name":"0.1","sha":"13f67b2a4279d3a0dabfb3bfb5f5c2e9758986ec","kind":"tag","published_at":"2013-03-13T08:28:54.000Z","download_url":"https://codeload.github.com/geoalchemy/geoalchemy2/tar.gz/0.1","html_url":"https://github.com/geoalchemy/geoalchemy2/releases/tag/0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/geoalchemy/geoalchemy2@0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/tags/0.1/manifests"}]},"repo_metadata_updated_at":"2025-07-28T15:06:19.503Z","dependent_packages_count":52,"downloads":1588979,"downloads_period":"last-month","dependent_repos_count":745,"rankings":{"downloads":0.39655627327007453,"dependent_repos_count":0.4481535409602173,"dependent_packages_count":0.2565661977945476,"stargazers_count":2.6353695361132012,"forks_count":4.508136622524455,"docker_downloads_count":0.9144833921294622,"average":1.526544260465326},"purl":"pkg:pypi/geoalchemy2","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/geoalchemy2","docker_dependents_count":14,"docker_downloads_count":669078,"usage_url":"https://repos.ecosyste.ms/usage/pypi/geoalchemy2","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/geoalchemy2/dependencies","status":null,"funding_links":["https://github.com/sponsors/adrien-berchet"],"critical":null,"issue_metadata":{"last_synced_at":"2025-07-27T09:50:48.126Z","issues_count":78,"pull_requests_count":142,"avg_time_to_close_issue":6991452.246153846,"avg_time_to_close_pull_request":1216203.2978723405,"issues_closed_count":65,"pull_requests_closed_count":141,"pull_request_authors_count":20,"issue_authors_count":60,"avg_comments_per_issue":5.602564102564102,"avg_comments_per_pull_request":1.3028169014084507,"merged_pull_requests_count":132,"bot_issues_count":0,"bot_pull_requests_count":10,"past_year_issues_count":14,"past_year_pull_requests_count":31,"past_year_avg_time_to_close_issue":4672317.1,"past_year_avg_time_to_close_pull_request":411031.32258064515,"past_year_issues_closed_count":10,"past_year_pull_requests_closed_count":31,"past_year_pull_request_authors_count":7,"past_year_issue_authors_count":10,"past_year_avg_comments_per_issue":4.142857142857143,"past_year_avg_comments_per_pull_request":0.6129032258064516,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":4,"past_year_merged_pull_requests_count":27,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoalchemy%2Fgeoalchemy2/issues","maintainers":[{"login":"adrien-berchet","count":125,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/adrien-berchet"}],"active_maintainers":[{"login":"adrien-berchet","count":28,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/adrien-berchet"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/geoalchemy2/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/geoalchemy2/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/geoalchemy2/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/geoalchemy2/related_packages","maintainers":[{"uuid":"erilem","login":"erilem","name":null,"email":null,"url":null,"packages_count":13,"html_url":"https://pypi.org/user/erilem/","role":null,"created_at":"2023-02-14T13:56:38.855Z","updated_at":"2023-02-14T13:56:38.855Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/erilem/packages"},{"uuid":"adrien-berchet","login":"adrien-berchet","name":null,"email":null,"url":null,"packages_count":13,"html_url":"https://pypi.org/user/adrien-berchet/","role":null,"created_at":"2023-02-14T13:56:37.926Z","updated_at":"2023-02-14T13:56:37.926Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/adrien-berchet/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":710842,"maintainers_count":301876,"namespaces_count":0,"keywords_count":233511,"github":"pypi","metadata":{"funded_packages_count":49794},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-07-27T07:26:21.711Z","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":25,"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":"4467837191","node_id":"PR_kwDORjnU487clXva","number":9,"state":"closed","title":"Chore:(deps): bump the python-dependencies group across 1 directory with 15 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-25T08:44:29.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-18T09:17:06.000Z","updated_at":"2026-05-25T08:44:31.000Z","time_to_close":602843,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Chore:(deps): bump","group_name":"python-dependencies","update_count":15,"packages":[{"name":"black","old_version":"26.3.1","new_version":"26.5.0","repository_url":"https://github.com/psf/black"},{"name":"fastapi","old_version":"0.135.3","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"fastapi-mail","old_version":"1.6.2","new_version":"1.6.4","repository_url":"https://github.com/sabuhish/fastapi-mail"},{"name":"geoalchemy2","old_version":"0.18.4","new_version":"0.20.0","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"gunicorn","old_version":"25.3.0","new_version":"26.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"mypy","old_version":"1.20.0","new_version":"2.1.0","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.13.1","new_version":"2.14.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"python-multipart","old_version":"0.0.24","new_version":"0.0.29","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"pytz","old_version":"2026.1.post1","new_version":"2026.2","repository_url":"https://github.com/stub42/pytz"},{"name":"sentry-sdk","old_version":"2.57.0","new_version":"2.60.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"types-pytz","old_version":"2026.1.1.20260402","new_version":"2026.2.0.20260518","repository_url":"https://github.com/python/typeshed"},{"name":"uvicorn","old_version":"0.43.0","new_version":"0.47.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 15 updates in the /infra/requirements directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [black](https://github.com/psf/black) | `26.3.1` | `26.5.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.3` | `0.136.1` |\n| [fastapi-mail](https://github.com/sabuhish/fastapi-mail) | `1.6.2` | `1.6.4` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.18.4` | `0.20.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `25.3.0` | `26.0.0` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `2.1.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.4` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.13.1` | `2.14.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.24` | `0.0.29` |\n| [pytz](https://github.com/stub42/pytz) | `2026.1.post1` | `2026.2` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.57.0` | `2.60.0` |\n| [types-pytz](https://github.com/python/typeshed) | `2026.1.1.20260402` | `2026.2.0.20260518` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.43.0` | `0.47.0` |\n\n\nUpdates `black` from 26.3.1 to 26.5.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.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove parse error readability by showing multi-line output with an error pointer.\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5068\"\u003e#5068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSourceASTParseError\u003c/code\u003e to distinguish source parse failures from internal safety\nerrors, improving error reporting when Black's lenient parser accepts input that\n\u003ccode\u003east.parse()\u003c/code\u003e rejects (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn HTTP 400 (Bad Request) for source parse failures instead of HTTP 500, keeping\nHTTP 500 only for genuine internal safety errors (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded documentation for doctest formatting tools and updated the integrations index to\nmatch (\u003ca href=\"https://redirect.github.com/psf/black/issues/4916\"\u003e#4916\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\u003eVersion 26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove parse error readability by showing multi-line output with an error pointer.\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5068\"\u003e#5068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSourceASTParseError\u003c/code\u003e to distinguish source parse failures from internal safety\nerrors, improving error reporting when Black's lenient parser accepts input that\n\u003ccode\u003east.parse()\u003c/code\u003e rejects (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn HTTP 400 (Bad Request) for source parse failures instead of HTTP 500, keeping\nHTTP 500 only for genuine internal safety errors (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded documentation for doctest formatting tools and updated the integrations index to\nmatch (\u003ca href=\"https://redirect.github.com/psf/black/issues/4916\"\u003e#4916\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/d2490e24dad33b8f68c77602ee29160de0fea24b\"\u003e\u003ccode\u003ed2490e2\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5131\"\u003e#5131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b13ea76fa69d4923381df65deb1a5c896ca27ad\"\u003e\u003ccode\u003e2b13ea7\u003c/code\u003e\u003c/a\u003e Preserve multiline headers with fmt skip (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/aef52e00c618f8203548fa6d1512eb49bf60f411\"\u003e\u003ccode\u003eaef52e0\u003c/code\u003e\u003c/a\u003e Improve fmt:skip handling in nested expressions with checks (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/9e8749525bf91d5a78f2bf5534f8efaefab80b92\"\u003e\u003ccode\u003e9e87495\u003c/code\u003e\u003c/a\u003e Add CI coverage for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/9fd9ea2835973981e3f5dc5b8eb76f2ded46aa61\"\u003e\u003ccode\u003e9fd9ea2\u003c/code\u003e\u003c/a\u003e Fix blackd error handling: split SourceASTParseError from ASTSafetyError (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/866c350cec7edd999ef55a0edb7b2202aa917f15\"\u003e\u003ccode\u003e866c350\u003c/code\u003e\u003c/a\u003e Bump docutils, sphinx, myst-parser (\u003ca href=\"https://redirect.github.com/psf/black/issues/4960\"\u003e#4960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/05b4d1e647a20c9242a3cc095e3a19a984ef4123\"\u003e\u003ccode\u003e05b4d1e\u003c/code\u003e\u003c/a\u003e docs: update deprecated PEP URLs to peps.python.org (\u003ca href=\"https://redirect.github.com/psf/black/issues/5115\"\u003e#5115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1c25a476ddc48619332f545aa89bedc96429a33e\"\u003e\u003ccode\u003e1c25a47\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/psf/black/issues/5111\"\u003e#5111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b0fa37ff449e679b8955c1ae0b6689abaa5025d7\"\u003e\u003ccode\u003eb0fa37f\u003c/code\u003e\u003c/a\u003e Bump zizmorcore/zizmor-action from 0.5.2 to 0.5.3 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5109\"\u003e#5109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/530d5abba7ce2efbfe3fefffa368027274bd630a\"\u003e\u003ccode\u003e530d5ab\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 5.0.4 to 5.0.5 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5108\"\u003e#5108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/26.3.1...26.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.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 `fastapi-mail` from 1.6.2 to 1.6.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sabuhish/fastapi-mail/releases\"\u003efastapi-mail's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: restore Redis as optional dependency by \u003ca href=\"https://github.com/faverl\"\u003e\u003ccode\u003e@​faverl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/pull/312\"\u003esabuhish/fastapi-mail#312\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/faverl\"\u003e\u003ccode\u003e@​faverl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/pull/312\"\u003esabuhish/fastapi-mail#312\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/sabuhish/fastapi-mail/compare/1.6.3...1.6.4\"\u003ehttps://github.com/sabuhish/fastapi-mail/compare/1.6.3...1.6.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.6.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(config): enable Jinja2 autoescape to prevent XSS vulnerabilities (\u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/issues/295\"\u003e#295\u003c/a\u003e) by \u003ca href=\"https://github.com/benaduo\"\u003e\u003ccode\u003e@​benaduo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/pull/301\"\u003esabuhish/fastapi-mail#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: use project section by \u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/pull/305\"\u003esabuhish/fastapi-mail#305\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated libraries by \u003ca href=\"https://github.com/sabuhish\"\u003e\u003ccode\u003e@​sabuhish\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/pull/310\"\u003esabuhish/fastapi-mail#310\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(msg): derive MIME type from UploadFile content-type header (\u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/issues/217\"\u003e#217\u003c/a\u003e) by \u003ca href=\"https://github.com/benaduo\"\u003e\u003ccode\u003e@​benaduo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/pull/304\"\u003esabuhish/fastapi-mail#304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: use single underscore for overridable internal methods by \u003ca href=\"https://github.com/sabuhish\"\u003e\u003ccode\u003e@​sabuhish\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/pull/311\"\u003esabuhish/fastapi-mail#311\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/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/pull/305\"\u003esabuhish/fastapi-mail#305\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/sabuhish/fastapi-mail/compare/v1.6.2...1.6.3\"\u003ehttps://github.com/sabuhish/fastapi-mail/compare/v1.6.2...1.6.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/15f8e3986225e497e899b7c274e303ae4c7e4615\"\u003e\u003ccode\u003e15f8e39\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/issues/312\"\u003e#312\u003c/a\u003e from faverl/fix/redis-optional-dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/e01d5e209615b29f2262507173614a9710269f46\"\u003e\u003ccode\u003ee01d5e2\u003c/code\u003e\u003c/a\u003e chore: update poetry.lock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/e57abdd5655a863811dee727ab51b6970b4fd4f8\"\u003e\u003ccode\u003ee57abdd\u003c/code\u003e\u003c/a\u003e fix: make redis an optional dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/aa50c62d8f03f34f22851ad9d9b5f2bc66b79af7\"\u003e\u003ccode\u003eaa50c62\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/issues/311\"\u003e#311\u003c/a\u003e from sabuhish/change_methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/9b96e129a6b702f26987e817f30bccff994933f7\"\u003e\u003ccode\u003e9b96e12\u003c/code\u003e\u003c/a\u003e fix linter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/2df212f9f25e96acce41d3619329dfad3973a409\"\u003e\u003ccode\u003e2df212f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/issues/304\"\u003e#304\u003c/a\u003e from benaduo/fix/issue-217-uploadfile-mimetype\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/1edcf5bc5f56337593013f0bc8e22ae8c51c3dd8\"\u003e\u003ccode\u003e1edcf5b\u003c/code\u003e\u003c/a\u003e refactor: use single underscore for overridable internal methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/624a462443c0592af5fb0b21dca666ac693ae9b6\"\u003e\u003ccode\u003e624a462\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/issues/310\"\u003e#310\u003c/a\u003e from sabuhish/update_libs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/cbd97a408061518e964059fcfbbf74d6777d05a0\"\u003e\u003ccode\u003ecbd97a4\u003c/code\u003e\u003c/a\u003e Updated libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/335377ea885e7ddd6c315df91c504e6db7f0ceb8\"\u003e\u003ccode\u003e335377e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/issues/305\"\u003e#305\u003c/a\u003e from waketzheng/master\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sabuhish/fastapi-mail/compare/v1.6.2...1.6.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geoalchemy2` from 0.18.4 to 0.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.20.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Add MSSQL dialect by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/603\"\u003egeoalchemy/geoalchemy2#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update docs by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/604\"\u003egeoalchemy/geoalchemy2#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Rework Docker image with docker-compose by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/601\"\u003egeoalchemy/geoalchemy2#601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Use prek and fix yaml files accordingly by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/602\"\u003egeoalchemy/geoalchemy2#602\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Setup cockroachdb by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/569\"\u003egeoalchemy/geoalchemy2#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Add script to compare benchmarks from 2 different runs by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/607\"\u003egeoalchemy/geoalchemy2#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.20.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/608\"\u003egeoalchemy/geoalchemy2#608\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.19.0...0.20.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.19.0...0.20.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.19.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Fix triggers after default branch was renamed main by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/593\"\u003egeoalchemy/geoalchemy2#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept leading '+' in WKT coords and fix Comparator \u003ccode\u003e\u0026gt;\u0026gt;\u003c/code\u003e docstring by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/594\"\u003egeoalchemy/geoalchemy2#594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/595\"\u003egeoalchemy/geoalchemy2#595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Fix Too many connections errors in MySQL and MariaDB by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/597\"\u003egeoalchemy/geoalchemy2#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Ensure _GISType.column_expression is compatible with TypeDecorator by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/598\"\u003egeoalchemy/geoalchemy2#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.19.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/599\"\u003egeoalchemy/geoalchemy2#599\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.4...0.19.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.4...0.19.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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.20.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Compatibility for SQLAlchemy \u0026gt;= 2.1 \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/606\"\u003e#606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Add MSSQL dialect \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/603\"\u003e#603\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Update docs \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Setup cockroachdb \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/569\"\u003e#569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Replace pre-commit by prek and fix yaml files accordingly \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/602\"\u003e#602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Rework Docker image with docker-compose \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/601\"\u003e#601\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.19.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Ensure _GISType.column_expression is compatible with TypeDecorator - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/598\"\u003e#598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Improve WKT parsing and fix comparator doc typo - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/594\"\u003e#594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Fix Too many connections errors in MySQL and MariaDB - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Fix triggers after default branch was renamed main - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/593\"\u003e#593\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/geoalchemy/geoalchemy2/commit/dea459b7b7d8a48ffcee2f809ccc784685ecc763\"\u003e\u003ccode\u003edea459b\u003c/code\u003e\u003c/a\u003e Release: 0.20.0 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/71a120f4756e7c08f547d8d3e5664fe9de45a263\"\u003e\u003ccode\u003e71a120f\u003c/code\u003e\u003c/a\u003e Chore: Add script to compare benchmarks from 2 different runs (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/607\"\u003e#607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/c1a7492b9d12caf609c44bea1a0870d1b52e70c6\"\u003e\u003ccode\u003ec1a7492\u003c/code\u003e\u003c/a\u003e Feat: Compatibility for SQLAlchemy \u0026gt;= 2.1 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/606\"\u003e#606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8e145573a3e3788e8e49d95cd4f848a6588d66d5\"\u003e\u003ccode\u003e8e14557\u003c/code\u003e\u003c/a\u003e CI: Setup cockroachdb (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/569\"\u003e#569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0dbf458b68e8ca00009566761c0bc4ca946404f6\"\u003e\u003ccode\u003e0dbf458\u003c/code\u003e\u003c/a\u003e Docs: Update docs (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/379d47ddba81d6716e6c841039e49beb3029b292\"\u003e\u003ccode\u003e379d47d\u003c/code\u003e\u003c/a\u003e Feat: Add MSSQL dialect (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/603\"\u003e#603\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/3a6cfe210db901a9c1a6e3070a0b33b0024e4cf3\"\u003e\u003ccode\u003e3a6cfe2\u003c/code\u003e\u003c/a\u003e CI: Replace pre-commit by prek and fix yaml files accordingly (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/602\"\u003e#602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0e21b2b17175bd8fb6bf2700c9baa99eb1310eee\"\u003e\u003ccode\u003e0e21b2b\u003c/code\u003e\u003c/a\u003e Test: Rework Docker image with docker-compose (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/601\"\u003e#601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/792cc5efe8d335b7009ea44e598c138bdd7ab5b2\"\u003e\u003ccode\u003e792cc5e\u003c/code\u003e\u003c/a\u003e Release: 0.19.0 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/599\"\u003e#599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/9d17680de522ce4c8734b2c547aa42ccf51eaf2f\"\u003e\u003ccode\u003e9d17680\u003c/code\u003e\u003c/a\u003e Fix: Ensure _GISType.column_expression is compatible with TypeDecorator (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/598\"\u003e#598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.4...0.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 25.3.0 to 26.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eEventlet worker removed\u003c/strong\u003e: The \u003ccode\u003eeventlet\u003c/code\u003e worker class has been dropped. Migrate to \u003ccode\u003egevent\u003c/code\u003e, \u003ccode\u003egthread\u003c/code\u003e, or \u003ccode\u003etornado\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Framework Compatibility Suite\u003c/strong\u003e: New end-to-end compatibility test harness covering Starlette, FastAPI, Litestar, Quart, Sanic, and BlackSheep. Current grid passes 438/444 tests (98%).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Test Suite Expansion\u003c/strong\u003e: 134 additional ASGI unit tests covering protocol semantics, lifespan, websockets, and chunked framing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/1.1 Request-Target Validation\u003c/strong\u003e (RFC 9112 sections 3.2.3, 3.2.4):\n\u003cul\u003e\n\u003cli\u003eReject \u003ccode\u003eauthority-form\u003c/code\u003e request-target outside \u003ccode\u003eCONNECT\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003easterisk-form\u003c/code\u003e request-target outside \u003ccode\u003eOPTIONS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003erelative-reference\u003c/code\u003e request-targets\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHeader Field Hardening\u003c/strong\u003e (RFC 9110):\n\u003cul\u003e\n\u003cli\u003eReject control characters in header field-value (section 5.5)\u003c/li\u003e\n\u003cli\u003eReject forbidden trailer field-names (section 6.5.1)\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003eContent-Length\u003c/code\u003e list form (RFC 9112 section 6.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRequest Smuggling Hardening\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eTighten keepalive gate and scope \u003ccode\u003efinish_body\u003c/code\u003e byte cap\u003c/li\u003e\n\u003cli\u003eKeep \u003ccode\u003e_body_receiver\u003c/code\u003e alive across the keepalive smuggling gate so pipelined requests cannot re-enter a closed body\u003c/li\u003e\n\u003cli\u003eAddress parser/protocol findings from a six-point WSGI/ASGI audit\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePROXY Protocol (ASGI)\u003c/strong\u003e: Enforce \u003ccode\u003eproxy_allow_ips\u003c/code\u003e and tighten v1/v2 parsing in the ASGI callback parser.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eConnection Draining\u003c/strong\u003e: Drain the connection on close per RFC 9112 section 9.6 to prevent reset-on-close truncation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBody Framing on HEAD/204/304\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eKeep \u003ccode\u003eContent-Length\u003c/code\u003e on HEAD and 304 responses (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop body framing on HEAD/204/304 even when the framework set it\u003c/li\u003e\n\u003cli\u003eWarn once when an ASGI app emits a body for a no-body response\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 ASGI\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e_handle_stream_ended\u003c/code\u003e to set \u003ccode\u003e_body_complete\u003c/code\u003e in the async HTTP/2 handler so request bodies finalize correctly on stream end\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eInvalidChunkExtension\u003c/code\u003e mapping and fast-parser support in ASGI tests (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3565\"\u003e#3565\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/1.1 100-Continue\u003c/strong\u003e: Stop adding \u003ccode\u003eTransfer-Encoding: chunked\u003c/code\u003e to 100-Continue interim responses.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWebSocket Close Handshake\u003c/strong\u003e (RFC 6455):\n\u003cul\u003e\n\u003cli\u003eComply with the close handshake state machine\u003c/li\u003e\n\u003cli\u003eClose the transport after the close handshake completes\u003c/li\u003e\n\u003cli\u003eFix binary send when the \u003ccode\u003etext\u003c/code\u003e key is \u003ccode\u003eNone\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEarly Hints\u003c/strong\u003e: Validate headers in the \u003ccode\u003eearly_hints\u003c/code\u003e callback to match \u003ccode\u003eprocess_headers\u003c/code\u003e; pass only the header name to \u003ccode\u003eInvalidHeader\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3588\"\u003e#3588\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Framework Fixes\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix ASGI disconnect handling for Django-style apps\u003c/li\u003e\n\u003cli\u003eFix Litestar request handling (use raw ASGI receive for body/headers)\u003c/li\u003e\n\u003cli\u003eFix Litestar HTTP endpoints for compatibility tests\u003c/li\u003e\n\u003cli\u003eFix Quart headers endpoint to normalize keys to lowercase\u003c/li\u003e\n\u003cli\u003eFix Quart WebSocket close test app (missing \u003ccode\u003eaccept()\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix duplicate \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header for BlackSheep streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/5d819cf36040f6cc6175fcc804d703fb899509dd\"\u003e\u003ccode\u003e5d819cf\u003c/code\u003e\u003c/a\u003e release: 26.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/b45c70df105f7d5dcbc5abfb732804d6464edc21\"\u003e\u003ccode\u003eb45c70d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3611\"\u003e#3611\u003c/a\u003e from zc-mattcen/docs-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/99c8d48acf453deb5c49fe12e195dbc00d888d1e\"\u003e\u003ccode\u003e99c8d48\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3623\"\u003e#3623\u003c/a\u003e from benoitc/chore/drop-eventlet-add-h2-uvloop-test-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/5a655af50f20e005dd9e32e6078dc82fa45f3d4b\"\u003e\u003ccode\u003e5a655af\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3622\"\u003e#3622\u003c/a\u003e from benoitc/test/docker-port-and-ipv4-fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/201df19a8011c0a1d6a0e75ebe22e89d48eb935e\"\u003e\u003ccode\u003e201df19\u003c/code\u003e\u003c/a\u003e chore: remove eventlet worker; add h2 and uvloop to test deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/f4ac8e1f1bf1d365e77f41915da55bec31873f84\"\u003e\u003ccode\u003ef4ac8e1\u003c/code\u003e\u003c/a\u003e test: pass action name to dirty client and stabilize after TTOU spam\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/54d38afddf1f0db0c15b5f4ff63f3c7bfad96961\"\u003e\u003ccode\u003e54d38af\u003c/code\u003e\u003c/a\u003e test: unblock docker fixtures on macOS hosts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/68843c8893dd938456f0a2da62085ab5776f8871\"\u003e\u003ccode\u003e68843c8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3621\"\u003e#3621\u003c/a\u003e from benoitc/fix/asgi-preserve-content-length-on-hea...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/31f2618f733cc0c78690df63f4e344aaf3f56b20\"\u003e\u003ccode\u003e31f2618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3620\"\u003e#3620\u003c/a\u003e from benoitc/fix/asgi-proxy-protocol-trust-and-parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/41ec7527dbd8a9e52728477700707ad40e41d9dc\"\u003e\u003ccode\u003e41ec752\u003c/code\u003e\u003c/a\u003e fix: keep Content-Length on HEAD and 304 responses\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/25.3.0...26.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.20.0 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMypy Release Notes\u003c/h1\u003e\n\u003ch2\u003eNext Release\u003c/h2\u003e\n\u003ch2\u003eMypy 2.1\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 2.1.0 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\nimprovements and bug fixes. You can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003elibrt.vecs: Fast Growable Array Type for Mypyc\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003elibrt.vecs\u003c/code\u003e module provides an efficient growable array type \u003ccode\u003evec\u003c/code\u003e that is\noptimized for mypyc use. It provides fast, packed arrays with integer and floating point\nvalue types, which can be \u003cstrong\u003eseveral times faster\u003c/strong\u003e than \u003ccode\u003elist\u003c/code\u003e, and tens of times faster\nthan \u003ccode\u003earray.array\u003c/code\u003e in code compiled using mypyc. It also supports nested \u003ccode\u003evec\u003c/code\u003e objects and\nnon-value-type items, such as \u003ccode\u003evec[vec[str]]\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eRefer to the \u003ca href=\"https://mypyc.readthedocs.io/en/latest/librt_vecs.html\"\u003edocumentation\u003c/a\u003e for\nthe details.\u003c/p\u003e\n\u003cp\u003eContributed by Jukka Lehtosalo.\u003c/p\u003e\n\u003ch3\u003elibrt.random: Fast Pseudo-Random Number Generation\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003elibrt.random\u003c/code\u003e module provides fast pseudo-random number generation that is\noptimized for code compiled using mypyc. It can be 3x to 10x faster than the stdlib\n\u003ccode\u003erandom\u003c/code\u003e module in compiled code.\u003c/p\u003e\n\u003cp\u003eRefer to the \u003ca href=\"https://mypyc.readthedocs.io/en/latest/librt_random.html\"\u003edocumentation\u003c/a\u003e for\nthe details.\u003c/p\u003e\n\u003cp\u003eContributed by Jukka Lehtosalo (PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21433\"\u003e21433\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMypyc Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMake compilation order with multiple files consistent (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21419\"\u003e21419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on accessing \u003ccode\u003eStopAsyncIteration\u003c/code\u003e (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21406\"\u003e21406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix incremental compilation with \u003ccode\u003eseparate\u003c/code\u003e flag (Vaggelis Danias, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21299\"\u003e21299\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes to Crashes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash on partial type with \u003ccode\u003e--allow-redefinition\u003c/code\u003e and \u003ccode\u003eglobal\u003c/code\u003e declaration (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21428\"\u003e21428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix broken awaitable generator patching (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21435\"\u003e21435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges to Messages\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/python/mypy/commit/c1c336d7e34eb313080c79b156518c58d27c7234\"\u003e\u003ccode\u003ec1c336d\u003c/code\u003e\u003c/a\u003e Remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/74df14b7cbf08140236aa45bbb7f42219b0b1df7\"\u003e\u003ccode\u003e74df14b\u003c/code\u003e\u003c/a\u003e Add changelog for mypy 2.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21464\"\u003e#21464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/022d9bc96f86c40f338a5cf150f1806cc8f300ff\"\u003e\u003ccode\u003e022d9bc\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;TypeForm: Enable by default (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21262\"\u003e#21262\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8826288214f1cb31496e610667481221e025359c\"\u003e\u003ccode\u003e8826288\u003c/code\u003e\u003c/a\u003e [mypyc] Document librt.random (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21463\"\u003e#21463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3f4067b699dbe52d08e42ef3b3ebfdebdc06bd96\"\u003e\u003ccode\u003e3f4067b\u003c/code\u003e\u003c/a\u003e Bump librt version to 0.11.0 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21458\"\u003e#21458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b1eb58a250c5f1eb4ef5fb1f312ff528c5a1d4e\"\u003e\u003ccode\u003e2b1eb58\u003c/code\u003e\u003c/a\u003e [mypyc] Enable incremental self-compilation (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8152f4af3f6c03beaf2660026240f0fdce7feecc\"\u003e\u003ccode\u003e8152f4a\u003c/code\u003e\u003c/a\u003e Respect file config comments for stale modules (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21444\"\u003e#21444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/116d60bdd3fdfe8d97c6afe99370910db56f1b92\"\u003e\u003ccode\u003e116d60b\u003c/code\u003e\u003c/a\u003e Fix nondeterminism from nonassociativity of overload joins (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21455\"\u003e#21455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6c4af8e42110cea3f84bc02add2ca7b89c268210\"\u003e\u003ccode\u003e6c4af8e\u003c/code\u003e\u003c/a\u003e Fix function call message change for small number of args (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21432\"\u003e#21432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/4b8fdcaf24032592510e8f15421fb32d82a71800\"\u003e\u003ccode\u003e4b8fdca\u003c/code\u003e\u003c/a\u003e [mypyc] Add librt.random module (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21433\"\u003e#21433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.20.0...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.6.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier usage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.6.0 - 2026-04-21\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier\nusage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f35134b05028ec938ac605ae500fdf95462655d3\"\u003e\u003ccode\u003ef35134b\u003c/code\u003e\u003c/a\u003e v4.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a51ffcb81f6c8ed2e6467913c3343a8800f3ab9\"\u003e\u003ccode\u003e2a51ffc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e from pre-commit/hook-impl-optional-hook-dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/d7dee322abfc765b042f2e3b872aab3c3a867610\"\u003e\u003ccode\u003ed7dee32\u003c/code\u003e\u003c/a\u003e make --hook-dir optional for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/965aeb1c680e8b526342153547f0ec014484c63d\"\u003e\u003ccode\u003e965aeb1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e from pre-commit/hook-impl-required\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2eacc064aa9b5bb33d3a0d84a234b475e34f3096\"\u003e\u003ccode\u003e2eacc06\u003c/code\u003e\u003c/a\u003e --hook-type is required for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f5678bf4ac35cffc0ff7174ad85f7fdc2a5c977e\"\u003e\u003ccode\u003ef5678bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3657\"\u003e#3657\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/054cc5bd6bb1b20faa1eefe09f0de3b68fceee94\"\u003e\u003ccode\u003e054cc5b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/5c0f3024d2524f6e029a4c333392fd9be9fb27f6\"\u003e\u003ccode\u003e5c0f302\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3652\"\u003e#3652\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5d91142676630f8130020b35e166e0c0e92b8f4\"\u003e\u003ccode\u003ea5d9114\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/129a1f5ca1eaee0c952a5e7a07faae305c5e15bc\"\u003e\u003ccode\u003e129a1f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3641\"\u003e#3641\u003c/a\u003e from pre-commit/mxr-patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.1...v4.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\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/pydantic/pydantic/blob/v2.13.4/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.4\"\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.13.1 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-packa...\n\n_Description has been truncated_","html_url":"https://github.com/KarimovMurodilla/mini-social-app/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/KarimovMurodilla%2Fmini-social-app/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"},{"uuid":"4339256101","node_id":"PR_kwDOHTdvBs7WIng2","number":1590,"state":"closed","title":"deps(ibis): bump the all group across 1 directory with 33 updates","user":"dependabot[bot]","labels":["ibis","dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-04T23:10:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-27T22:31:53.000Z","updated_at":"2026-05-04T23:10:38.000Z","time_to_close":607123,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(ibis): bump","group_name":"all","update_count":33,"packages":[{"name":"fastapi","old_version":"0.120.1","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.10.6","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"ibis-framework","old_version":"10.8.0","new_version":"12.0.0","repository_url":"https://github.com/ibis-project/ibis"},{"name":"google-auth","old_version":"2.38.0","new_version":"2.49.2","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"orjson","old_version":"3.11.7","new_version":"3.11.8","repository_url":"https://github.com/ijl/orjson"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"geoalchemy2","old_version":"0.17.1","new_version":"0.19.0","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"gql","old_version":"3.5.2","new_version":"4.0.0","repository_url":"https://github.com/graphql-python/gql"},{"name":"anyio","old_version":"4.10.0","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"duckdb","old_version":"1.3.2","new_version":"1.5.2","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"oracledb","old_version":"3.3.0","new_version":"3.4.2","repository_url":"https://github.com/oracle/python-oracledb"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.3.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"uvicorn-worker","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/Kludex/uvicorn-worker"},{"name":"redshift-connector","old_version":"2.1.7","new_version":"2.1.13","repository_url":"https://github.com/aws/amazon-redshift-python-driver"},{"name":"datafusion","old_version":"47.0.0","new_version":"53.0.0","repository_url":"https://github.com/apache/datafusion-python"},{"name":"starlette","old_version":"0.49.3","new_version":"1.0.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"databricks-sql-connector","old_version":"4.2.5","new_version":"4.2.6","repository_url":"https://github.com/databricks/databricks-sql-python"},{"name":"databricks-sdk","old_version":"0.73.0","new_version":"0.105.0","repository_url":"https://github.com/databricks/databricks-sdk-py"},{"name":"pyspark","old_version":"3.5.7","new_version":"4.1.1","repository_url":"https://github.com/apache/spark"},{"name":"pyopenssl","old_version":"26.0.0","new_version":"26.1.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"wren-engine","old_version":"0.1.0","new_version":"0.3.0","repository_url":"https://github.com/Canner/wren-engine"},{"name":"matplotlib","old_version":"3.10.8","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"plotly","old_version":"6.6.0","new_version":"6.7.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"testcontainers","old_version":"4.9.2","new_version":"4.14.2","repository_url":"https://github.com/testcontainers/testcontainers-python"},{"name":"sqlalchemy","old_version":"2.0.39","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.11.2","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"clickhouse-connect","old_version":"0.8.15","new_version":"0.15.1","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"polars","old_version":"1.39.3","new_version":"1.40.1","repository_url":"https://github.com/pola-rs/polars"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all group with 33 updates in the /ibis-server directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.120.1` | `0.136.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.10.6` | `2.13.3` |\n| [ibis-framework](https://github.com/ibis-project/ibis) | `10.8.0` | `12.0.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.38.0` | `2.49.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.2` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.11.8` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.17.1` | `0.19.0` |\n| [gql](https://github.com/graphql-python/gql) | `3.5.2` | `4.0.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.13.0` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.3.2` | `1.5.2` |\n| [oracledb](https://github.com/oracle/python-oracledb) | `3.3.0` | `3.4.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.46.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.3.0` |\n| [uvicorn-worker](https://github.com/Kludex/uvicorn-worker) | `0.3.0` | `0.4.0` |\n| [redshift-connector](https://github.com/aws/amazon-redshift-python-driver) | `2.1.7` | `2.1.13` |\n| [datafusion](https://github.com/apache/datafusion-python) | `47.0.0` | `53.0.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.3` | `1.0.0` |\n| [databricks-sql-connector](https://github.com/databricks/databricks-sql-python) | `4.2.5` | `4.2.6` |\n| [databricks-sdk](https://github.com/databricks/databricks-sdk-py) | `0.73.0` | `0.105.0` |\n| [pyspark](https://github.com/apache/spark) | `3.5.7` | `4.1.1` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `26.0.0` | `26.1.0` |\n| [wren-engine](https://github.com/Canner/wren-engine) | `0.1.0` | `0.3.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.8` | `3.10.9` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.6.0` | `6.7.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.3` |\n| [testcontainers](https://github.com/testcontainers/testcontainers-python) | `4.9.2` | `4.14.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.39` | `2.0.49` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.6.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.2` | `0.15.12` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.8.15` | `0.15.1` |\n| [polars](https://github.com/pola-rs/polars) | `1.39.3` | `1.40.1` |\n\n\nUpdates `fastapi` from 0.120.1 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\u003ch2\u003e0.135.3\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/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.120.1...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.10.6 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\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/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.10.6...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ibis-framework` from 10.8.0 to 12.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ibis-project/ibis/releases\"\u003eibis-framework's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ibis-project/ibis/compare/11.0.0...12.0.0\"\u003e12.0.0\u003c/a\u003e (2026-02-07)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epyspark:\u003c/strong\u003e PySpark \u0026lt;3.5 is no longer supported\u003c/li\u003e\n\u003cli\u003eofficially drop support for 3.9, bump all dependencies\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e infer decimal precision and scale\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e implement \u003ccode\u003eupsert()\u003c/code\u003e using \u003ccode\u003eMERGE INTO\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11624\"\u003e#11624\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/9126733b38e1c92f6e787f92dc9954e88ab6400d\"\u003e9126733\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/5391\"\u003e#5391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e support Table.cast(my_col=int) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/9e209f37b6228472071ef8b9168ed56ec9c0a727\"\u003e9e209f3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatabricks:\u003c/strong\u003e support json literals (\u003ca href=\"https://github.com/ibis-project/ibis/commit/f46a58f9eb5128e64981b756b0a866e291663997\"\u003ef46a58f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatafusion:\u003c/strong\u003e add compilation rule for Strftime (\u003ca href=\"https://github.com/ibis-project/ibis/commit/6fa8411e43a68f0f0ac38f493242bc1ff28a5253\"\u003e6fa8411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e enable compatibility with pandas 3.0.0 (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11873\"\u003e#11873\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/34a36be80e589e449501942bda8ec4125e89beb0\"\u003e34a36be\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ematerialize:\u003c/strong\u003e add new backend for Materialize streaming database (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11893\"\u003e#11893\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/35fcce08369ed7650b00fed7064535eeceeaba41\"\u003e35fcce0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eofficially drop support for 3.9, bump all dependencies (\u003ca href=\"https://github.com/ibis-project/ibis/commit/aa16d0885ff62ac92ec1027a245158896f74cc0d\"\u003eaa16d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epyspark:\u003c/strong\u003e support pyspark 4.0 (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e9c35e6a3574855daf4e02f4217727df0d54872d\"\u003ee9c35e6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esinglestoredb:\u003c/strong\u003e add SingleStoreDB backend (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11595\"\u003e#11595\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a83cfef0f6b84f3dbb83ca55682100f32488d7c2\"\u003ea83cfef\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport JSON literal values (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11728\"\u003e#11728\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/38b19c765f02b18684ec6e7b4e0815d117fc8b60\"\u003e38b19c7\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11727\"\u003e#11727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e improve typing of ibis.common.collections (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e3aba92c6126e556e179f2cbff3dc837802de790\"\u003ee3aba92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make dtype() and schema() more typesafe (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11856\"\u003e#11856\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/116886f807fbf62ce0265ef152f48540c284b8c5\"\u003e116886f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make more arguments positional-only (\u003ca href=\"https://github.com/ibis-project/ibis/commit/610c4504b438b5ac302b384073134ff5c8458908\"\u003e610c450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make types more precise for many common Values (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11771\"\u003e#11771\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/2eb772a7a8a5632edb347ecd49af5773c268d188\"\u003e2eb772a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd order_by to first and last (\u003ca href=\"https://github.com/ibis-project/ibis/commit/7ead7876435c55a10dc5a6457a49b9e19b7a654e\"\u003e7ead787\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11656\"\u003e#11656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd upper _method_overrides in decompile (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e7956f4cbb5daef11bbc01177ccc56f5ae3bf3fa\"\u003ee7956f4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11717\"\u003e#11717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e relax decimal upper bounds (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d05751b445d65ae0a1c786c756ea1235d51a7f18\"\u003ed05751b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebiquery:\u003c/strong\u003e use qualified table name for upserts (\u003ca href=\"https://github.com/ibis-project/ibis/commit/120b2d874d7b191886dcdad69be76c26bbe062ce\"\u003e120b2d8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecitation:\u003c/strong\u003e fix CITATION.cff [skip ci] (\u003ca href=\"https://github.com/ibis-project/ibis/commit/305526a8d6df097765b2affce60b1731f2608a1b\"\u003e305526a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e infer decimal precision and scale (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ed346e6d33157d9cf6e01f91bc67ac8866e09eb3\"\u003eed346e6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e make decimal casts more permissive (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba087d2d3a6c57451bdcf81aaa4fa5cf32350831\"\u003eba087d2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e pin dep on sqlglot to \u0026lt;28 (\u003ca href=\"https://github.com/ibis-project/ibis/commit/3e9156ef0b0b10ce6f3d95db97401175a7d9df56\"\u003e3e9156e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e sqlglot 28.0 incompatibilities (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11839\"\u003e#11839\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ab21efd939b7cd6b7cf8f03ed7a22ec96d511be0\"\u003eab21efd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e typo in Ibis description in why.qmd (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11816\"\u003e#11816\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/402c37d9920fa09bcc1aa5f9202367b01cc98ef1\"\u003e402c37d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003educkdb:\u003c/strong\u003e create a single table from Python data object (\u003ca href=\"https://github.com/ibis-project/ibis/commit/7f82e5e4aed0a492538016bfa152132ad0bc928f\"\u003e7f82e5e\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11709\"\u003e#11709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexasol:\u003c/strong\u003e update Exasol Docker image tag to 2025.1.8 (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11806\"\u003e#11806\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/2414952998f5f078b931e467e5b7f495062308ed\"\u003e2414952\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11703\"\u003e#11703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eflink:\u003c/strong\u003e don't pass unsupported \u0026quot;position\u0026quot; flag to regexp_replace (\u003ca href=\"https://github.com/ibis-project/ibis/commit/34f39ccb32be76b5e61f87938ed4cfdeb560ce7c\"\u003e34f39cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emssql:\u003c/strong\u003e use \u003ccode\u003esge.National\u003c/code\u003e to support unicode in \u003ccode\u003einformation_schema\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11877\"\u003e#11877\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a254ccb02f58d4f5b5f582249f5cfa03d141d8eb\"\u003ea254ccb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emysql:\u003c/strong\u003e use getuser() and empty password string by default (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11904\"\u003e#11904\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba0218f1bba2cbb9f2bb3a7aea39178365c0f663\"\u003eba0218f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epolars:\u003c/strong\u003e handle cross joins without passing join keys (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d3c3bad21a2b9703047dbf4977d3d250759d189e\"\u003ed3c3bad\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11764\"\u003e#11764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epolars:\u003c/strong\u003e support asof_join with no predicates (\u003ca href=\"https://github.com/ibis-project/ibis/commit/3fc9b64c2a464f66d5ed412e7cab7a7bbb58b811\"\u003e3fc9b64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgres:\u003c/strong\u003e fix postgres asof joins to consider predicates correctly (\u003ca href=\"https://github.com/ibis-project/ibis/commit/064bd2d024d1165a92615613d977e85d4dad6331\"\u003e064bd2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove bogus leading ' from Struct repr (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d7083c2c96e12bb7b2a1e643a52b4725f4303fcb\"\u003ed7083c2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn a tuple, not generator, from Table.bind() (\u003ca href=\"https://github.com/ibis-project/ibis/commit/cfc8b0837e313bd76cf65561472a605ea6e35bef\"\u003ecfc8b08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqlite:\u003c/strong\u003e create a single table from Python object (\u003ca href=\"https://github.com/ibis-project/ibis/commit/4e6ddcfa2d1dc763d431925b059c458cd0ce884a\"\u003e4e6ddcf\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqlite:\u003c/strong\u003e precision loss in divide (\u003ca href=\"https://github.com/ibis-project/ibis/commit/c77e1bd041df7e091c0c6c1aa5d2e87c3a99dddc\"\u003ec77e1bd\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/ibis-project/ibis/blob/main/docs/release_notes_generated.qmd\"\u003eibis-framework's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ibis-project/ibis/compare/11.0.0...12.0.0\"\u003e12.0.0\u003c/a\u003e (2026-02-07)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epyspark:\u003c/strong\u003e PySpark \u0026lt;3.5 is no longer supported\u003c/li\u003e\n\u003cli\u003eofficially drop support for 3.9, bump all dependencies\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e infer decimal precision and scale\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e implement \u003ccode\u003eupsert()\u003c/code\u003e using \u003ccode\u003eMERGE INTO\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11624\"\u003e#11624\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/9126733b38e1c92f6e787f92dc9954e88ab6400d\"\u003e9126733\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/5391\"\u003e#5391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e support Table.cast(my_col=int) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/9e209f37b6228472071ef8b9168ed56ec9c0a727\"\u003e9e209f3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatabricks:\u003c/strong\u003e support json literals (\u003ca href=\"https://github.com/ibis-project/ibis/commit/f46a58f9eb5128e64981b756b0a866e291663997\"\u003ef46a58f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatafusion:\u003c/strong\u003e add compilation rule for Strftime (\u003ca href=\"https://github.com/ibis-project/ibis/commit/6fa8411e43a68f0f0ac38f493242bc1ff28a5253\"\u003e6fa8411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e enable compatibility with pandas 3.0.0 (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11873\"\u003e#11873\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/34a36be80e589e449501942bda8ec4125e89beb0\"\u003e34a36be\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ematerialize:\u003c/strong\u003e add new backend for Materialize streaming database (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11893\"\u003e#11893\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/35fcce08369ed7650b00fed7064535eeceeaba41\"\u003e35fcce0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eofficially drop support for 3.9, bump all dependencies (\u003ca href=\"https://github.com/ibis-project/ibis/commit/aa16d0885ff62ac92ec1027a245158896f74cc0d\"\u003eaa16d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epyspark:\u003c/strong\u003e support pyspark 4.0 (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e9c35e6a3574855daf4e02f4217727df0d54872d\"\u003ee9c35e6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esinglestoredb:\u003c/strong\u003e add SingleStoreDB backend (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11595\"\u003e#11595\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a83cfef0f6b84f3dbb83ca55682100f32488d7c2\"\u003ea83cfef\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport JSON literal values (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11728\"\u003e#11728\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/38b19c765f02b18684ec6e7b4e0815d117fc8b60\"\u003e38b19c7\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11727\"\u003e#11727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e improve typing of ibis.common.collections (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e3aba92c6126e556e179f2cbff3dc837802de790\"\u003ee3aba92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make dtype() and schema() more typesafe (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11856\"\u003e#11856\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/116886f807fbf62ce0265ef152f48540c284b8c5\"\u003e116886f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make more arguments positional-only (\u003ca href=\"https://github.com/ibis-project/ibis/commit/610c4504b438b5ac302b384073134ff5c8458908\"\u003e610c450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make types more precise for many common Values (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11771\"\u003e#11771\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/2eb772a7a8a5632edb347ecd49af5773c268d188\"\u003e2eb772a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd order_by to first and last (\u003ca href=\"https://github.com/ibis-project/ibis/commit/7ead7876435c55a10dc5a6457a49b9e19b7a654e\"\u003e7ead787\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11656\"\u003e#11656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd upper _method_overrides in decompile (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e7956f4cbb5daef11bbc01177ccc56f5ae3bf3fa\"\u003ee7956f4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11717\"\u003e#11717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e relax decimal upper bounds (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d05751b445d65ae0a1c786c756ea1235d51a7f18\"\u003ed05751b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebiquery:\u003c/strong\u003e use qualified table name for upserts (\u003ca href=\"https://github.com/ibis-project/ibis/commit/120b2d874d7b191886dcdad69be76c26bbe062ce\"\u003e120b2d8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecitation:\u003c/strong\u003e fix CITATION.cff [skip ci] (\u003ca href=\"https://github.com/ibis-project/ibis/commit/305526a8d6df097765b2affce60b1731f2608a1b\"\u003e305526a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e infer decimal precision and scale (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ed346e6d33157d9cf6e01f91bc67ac8866e09eb3\"\u003eed346e6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e make decimal casts more permissive (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba087d2d3a6c57451bdcf81aaa4fa5cf32350831\"\u003eba087d2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e pin dep on sqlglot to \u0026lt;28 (\u003ca href=\"https://github.com/ibis-project/ibis/commit/3e9156ef0b0b10ce6f3d95db97401175a7d9df56\"\u003e3e9156e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e sqlglot 28.0 incompatibilities (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11839\"\u003e#11839\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ab21efd939b7cd6b7cf8f03ed7a22ec96d511be0\"\u003eab21efd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e typo in Ibis description in why.qmd (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11816\"\u003e#11816\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/402c37d9920fa09bcc1aa5f9202367b01cc98ef1\"\u003e402c37d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003educkdb:\u003c/strong\u003e create a single table from Python data object (\u003ca href=\"https://github.com/ibis-project/ibis/commit/7f82e5e4aed0a492538016bfa152132ad0bc928f\"\u003e7f82e5e\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11709\"\u003e#11709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexasol:\u003c/strong\u003e update Exasol Docker image tag to 2025.1.8 (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11806\"\u003e#11806\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/2414952998f5f078b931e467e5b7f495062308ed\"\u003e2414952\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11703\"\u003e#11703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eflink:\u003c/strong\u003e don't pass unsupported \u0026quot;position\u0026quot; flag to regexp_replace (\u003ca href=\"https://github.com/ibis-project/ibis/commit/34f39ccb32be76b5e61f87938ed4cfdeb560ce7c\"\u003e34f39cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emssql:\u003c/strong\u003e use \u003ccode\u003esge.National\u003c/code\u003e to support unicode in \u003ccode\u003einformation_schema\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11877\"\u003e#11877\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a254ccb02f58d4f5b5f582249f5cfa03d141d8eb\"\u003ea254ccb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emysql:\u003c/strong\u003e use getuser() and empty password string by default (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11904\"\u003e#11904\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba0218f1bba2cbb9f2bb3a7aea39178365c0f663\"\u003eba0218f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epolars:\u003c/strong\u003e handle cross joins without passing join keys (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d3c3bad21a2b9703047dbf4977d3d250759d189e\"\u003ed3c3bad\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11764\"\u003e#11764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epolars:\u003c/strong\u003e support asof_join with no predicates (\u003ca href=\"https://github.com/ibis-project/ibis/commit/3fc9b64c2a464f66d5ed412e7cab7a7bbb58b811\"\u003e3fc9b64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgres:\u003c/strong\u003e fix postgres asof joins to consider predicates correctly (\u003ca href=\"https://github.com/ibis-project/ibis/commit/064bd2d024d1165a92615613d977e85d4dad6331\"\u003e064bd2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove bogus leading ' from Struct repr (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d7083c2c96e12bb7b2a1e643a52b4725f4303fcb\"\u003ed7083c2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn a tuple, not generator, from Table.bind() (\u003ca href=\"https://github.com/ibis-project/ibis/commit/cfc8b0837e313bd76cf65561472a605ea6e35bef\"\u003ecfc8b08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqlite:\u003c/strong\u003e create a single table from Python object (\u003ca href=\"https://github.com/ibis-project/ibis/commit/4e6ddcfa2d1dc763d431925b059c458cd0ce884a\"\u003e4e6ddcf\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqlite:\u003c/strong\u003e precision loss in divide (\u003ca href=\"https://github.com/ibis-project/ibis/commit/c77e1bd041df7e091c0c6c1aa5d2e87c3a99dddc\"\u003ec77e1bd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003eBackend == \u0026quot;some non backend object\u0026quot;\u003c/code\u003e (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a5e7c2298d1582261c0963040a687c3987507c62\"\u003ea5e7c22\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/ibis-project/ibis/commit/01e429b210f19f87e0284bd18fb072df6d3baa59\"\u003e\u003ccode\u003e01e429b\u003c/code\u003e\u003c/a\u003e chore(release): 12.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/537b346aecbaaad232d08ae9a12d38d211ae0926\"\u003e\u003ccode\u003e537b346\u003c/code\u003e\u003c/a\u003e chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/76c3b63b33f9e6ee2993e2a2875f22ed3e405349\"\u003e\u003ccode\u003e76c3b63\u003c/code\u003e\u003c/a\u003e chore(deps): update astral-sh/setup-uv action to v7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/da202da06c17a525caf767f0f995f65108a8f3f3\"\u003e\u003ccode\u003eda202da\u003c/code\u003e\u003c/a\u003e chore(deps): update apache/druid docker tag to v36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba0218f1bba2cbb9f2bb3a7aea39178365c0f663\"\u003e\u003ccode\u003eba0218f\u003c/code\u003e\u003c/a\u003e fix(mysql): use getuser() and empty password string by default (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11904\"\u003e#11904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/a4ef82f82ef103fd233560adce0fbe220481d7ef\"\u003e\u003ccode\u003ea4ef82f\u003c/code\u003e\u003c/a\u003e chore(deps): update aws-actions/configure-aws-credentials action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/601cd8f3dc18c7f8a91aa91319b68aaa181a8a16\"\u003e\u003ccode\u003e601cd8f\u003c/code\u003e\u003c/a\u003e chore(deps): update ghcr.io/singlestore-labs/singlestoredb-dev docker tag to ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/14c912425af4b318733fdc1460913ccfa4613414\"\u003e\u003ccode\u003e14c9124\u003c/code\u003e\u003c/a\u003e chore(deps): update materialize/materialized docker tag to v26.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/b746edfb660c2b8155debc135884376742cc6929\"\u003e\u003ccode\u003eb746edf\u003c/code\u003e\u003c/a\u003e chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.9.30\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/7da40126f178a29d6211f8cfe29421585cff59fc\"\u003e\u003ccode\u003e7da4012\u003c/code\u003e\u003c/a\u003e chore(deps): upgrade ruff, and fix lint violations (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11899\"\u003e#11899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ibis-project/ibis/compare/10.8.0...12.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.38.0 to 2.49.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.49.0.dev0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.48.0...v2.49.0-dev0\"\u003e2.49.0-dev0\u003c/a\u003e (2026-01-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove deprecated rsa dependency (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e98cf69284d3620619a70b54fb0b9533caf11878\"\u003ee98cf69284d3620619a70b54fb0b9533caf11878\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.48.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0\"\u003e2.48.0\u003c/a\u003e (2026-01-21)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ehonor \u003ccode\u003eNO_GCE_CHECK\u003c/code\u003e environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827\"\u003e383c9827\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b\"\u003e454b441b\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2\"\u003e52558ae2\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport the mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1\"\u003e8dcf91a1\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eresolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064\"\u003e25c1b064\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003euser_verification=preferred\u003c/code\u003e for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a240\"\u003e3f88a240\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eremoves \u003ccode\u003econtent-header\u003c/code\u003e from AWS IMDS get request (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e\"\u003e97bfea9e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edetect correct auth when ADC env var is set but empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e10\"\u003ebfc07e10\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20c\"\u003ee431f20c\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.48.0rc0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0rc0\"\u003e2.48.0rc0\u003c/a\u003e (2026-01-20)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ehonor NO_GCE_CHECK environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827536d9376e8248370ce4c2b83e468d027\"\u003e383c98\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\"\u003e454b44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1b05c85fbbd0bcee78d66e498099102ab\"\u003e8dcf91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2881b1e6555f6f5c0d76365c15807ead9\"\u003e52558a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse user_verification=preferred for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a24089c4ee6822d510de0db210b54260d873\"\u003e3f88a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20cf73ccac71926a23ec454468cea92e053\"\u003ee431f2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edetect correct auth when ADC env var is set by empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\"\u003ebfc07e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremoved content-header from AWS IMDS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\"\u003e97bfea\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://pypi.org/project/google-auth/#history\"\u003ePyPI History\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0\"\u003e2.48.0\u003c/a\u003e (2026-01-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2881b1e6555f6f5c0d76365c15807ead9\"\u003e52558ae2881b1e6555f6f5c0d76365c15807ead9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport the mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1b05c85fbbd0bcee78d66e498099102ab\"\u003e8dcf91a1b05c85fbbd0bcee78d66e498099102ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\"\u003e454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ehonor \u003ccode\u003eNO_GCE_CHECK\u003c/code\u003e environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827536d9376e8248370ce4c2b83e468d027\"\u003e383c9827536d9376e8248370ce4c2b83e468d027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eresolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064545702cbef087cfcd15fbbb6ef1af74f\"\u003e25c1b064545702cbef087cfcd15fbbb6ef1af74f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremoves \u003ccode\u003econtent-header\u003c/code\u003e from AWS IMDS get request (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\"\u003e97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edetect correct auth when ADC env var is set but empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\"\u003ebfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20cf73ccac71926a23ec454468cea92e053\"\u003ee431f20cf73ccac71926a23ec454468cea92e053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003euser_verification=preferred\u003c/code\u003e for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a24089c4ee6822d510de0db210b54260d873\"\u003e3f88a24089c4ee6822d510de0db210b54260d873\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1590\"\u003e#1590\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\"\u003e5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\"\u003e60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.45.0...v2.46.0\"\u003e2.46.0\u003c/a\u003e (2026-01-05)\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate urllib3 docstrings for v2 compatibility (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1903\"\u003e#1903\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f1aeea2d1014ea1d244a4c3470e52d74d55404b\"\u003e3f1aeea2d1014ea1d244a4c3470e52d74d55404b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecognize workload certificate config in has_default_client_cert_source for mTLS for Agentic Identities (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1907\"\u003e#1907\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d573123e358c347ffa067637f992af61b4\"\u003e0b9107d573123e358c347ffa067637f992af61b4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/googleapis/google-auth-library-python/commits\"\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.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/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.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 `orjson` from 3.11.7 to 3.11.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ijl/orjson/releases\"\u003eorjson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.8\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild and compatibility improvements.\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/ijl/orjson/blob/master/CHANGELOG.md\"\u003eorjson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.8 - 2026-03-31\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild and compatibility improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/5cbb3d0398a2f42de51210270286fecd798c5d78\"\u003e\u003ccode\u003e5cbb3d0\u003c/code\u003e\u003c/a\u003e 3.11.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/4195d7f263e33076295b75efdcbaf6a55af8674e\"\u003e\u003ccode\u003e4195d7f\u003c/code\u003e\u003c/a\u003e writer::half\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/d00641b69410728a735f0855eb1c2843b0a5819b\"\u003e\u003ccode\u003ed00641b\u003c/code\u003e\u003c/a\u003e writer::uuid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/c84d9b4ba4853781af943fa5c493e261e2f82b84\"\u003e\u003ccode\u003ec84d9b4\u003c/code\u003e\u003c/a\u003e build and compatibility misc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/4547234b681fac5e0e0734cf44c21e75f9654e43\"\u003e\u003ccode\u003e4547234\u003c/code\u003e\u003c/a\u003e ffi::numpy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/0d4a5ad1f17a72528ba027554466fdec6580cdeb\"\u003e\u003ccode\u003e0d4a5ad\u003c/code\u003e\u003c/a\u003e datetime PyRef idiom\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/e93a13d372ec956d027e71d023eb534b8445ac85\"\u003e\u003ccode\u003ee93a13d\u003c/code\u003e\u003c/a\u003e Cross-compile avoids maturin v1.12 build-details.json error\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ijl/orjson/compare/3.11.7...3.11.8\"\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.o...\n\n_Description has been truncated_","html_url":"https://github.com/Canner/wren-engine/pull/1590","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Canner%2Fwren-engine/issues/1590","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1590/packages"},{"uuid":"4298926851","node_id":"PR_kwDOADlbHs7UHM37","number":2877,"state":"closed","title":"Bump the python-requirements group across 1 directory with 24 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-01T07:56:38.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-20T21:54:15.000Z","updated_at":"2026-05-01T07:56:40.000Z","time_to_close":900143,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-requirements","update_count":24,"packages":[{"name":"werkzeug","old_version":"3.1.6","new_version":"3.1.8","repository_url":"https://github.com/pallets/werkzeug"},{"name":"sqlalchemy","old_version":"2.0.45","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"geoalchemy2","old_version":"0.18.1","new_version":"0.19.0","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"pymongo","old_version":"4.15.5","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"mongoengine","old_version":"0.29.1","new_version":"0.29.3","repository_url":"https://github.com/MongoEngine/mongoengine"},{"name":"peewee","old_version":"3.18.3","new_version":"4.0.4","repository_url":"https://github.com/coleifer/peewee"},{"name":"wtf-peewee","old_version":"3.0.6","new_version":"3.1.0","repository_url":"https://github.com/coleifer/wtf-peewee"},{"name":"boto3","old_version":"1.42.14","new_version":"1.42.92","repository_url":"https://github.com/boto/boto3"},{"name":"azure-storage-blob","old_version":"12.27.1","new_version":"12.28.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"redis","old_version":"7.1.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"tox","old_version":"4.29.0","new_version":"4.53.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"tox-uv","old_version":"1.28.0","new_version":"1.35.1","repository_url":"https://github.com/tox-dev/tox-uv"},{"name":"pre-commit-uv","old_version":"4.2.0","new_version":"4.2.1","repository_url":"https://github.com/tox-dev/pre-commit-uv"},{"name":"pallets-sphinx-themes","old_version":"2.3.0","new_version":"2.5.0","repository_url":"https://github.com/pallets/pallets-sphinx-themes"},{"name":"pylint","old_version":"4.0.4","new_version":"4.0.5","repository_url":"https://github.com/pylint-dev/pylint"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"moto","old_version":"5.1.18","new_version":"5.1.22","repository_url":"https://github.com/getmoto/moto"},{"name":"mypy","old_version":"1.19.1","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"pyright","old_version":"1.1.407","new_version":"1.1.408","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"types-boto3","old_version":"1.42.14","new_version":"1.42.92","repository_url":"https://github.com/youtype/mypy_boto3_builder"},{"name":"types-peewee","old_version":"3.18.3.20251105","new_version":"4.0.0.20260408","repository_url":"https://github.com/python/typeshed"},{"name":"types-wtforms","old_version":"3.2.1.20250809","new_version":"3.2.1.20260408","repository_url":"https://github.com/python/typeshed"},{"name":"types-shapely","old_version":"2.1.0.20250917","new_version":"2.1.0.20260408","repository_url":"https://github.com/python/typeshed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-requirements group with 23 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.6` | `3.1.8` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.45` | `2.0.49` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.18.1` | `0.19.0` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.15.5` | `4.17.0` |\n| [mongoengine](https://github.com/MongoEngine/mongoengine) | `0.29.1` | `0.29.3` |\n| [peewee](https://github.com/coleifer/peewee) | `3.18.3` | `4.0.4` |\n| [wtf-peewee](https://github.com/coleifer/wtf-peewee) | `3.0.6` | `3.1.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.14` | `1.42.92` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.27.1` | `12.28.0` |\n| [redis](https://github.com/redis/redis-py) | `7.1.0` | `7.4.0` |\n| [tox](https://github.com/tox-dev/tox) | `4.29.0` | `4.53.0` |\n| [tox-uv](https://github.com/tox-dev/tox-uv) | `1.28.0` | `1.35.1` |\n| [pre-commit-uv](https://github.com/tox-dev/pre-commit-uv) | `4.2.0` | `4.2.1` |\n| [pallets-sphinx-themes](https://github.com/pallets/pallets-sphinx-themes) | `2.3.0` | `2.5.0` |\n| [pylint](https://github.com/pylint-dev/pylint) | `4.0.4` | `4.0.5` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [moto](https://github.com/getmoto/moto) | `5.1.18` | `5.1.22` |\n| [mypy](https://github.com/python/mypy) | `1.19.1` | `1.20.1` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.407` | `1.1.408` |\n| [types-boto3](https://github.com/youtype/mypy_boto3_builder) | `1.42.14` | `1.42.92` |\n| [types-peewee](https://github.com/python/typeshed) | `3.18.3.20251105` | `4.0.0.20260408` |\n| [types-wtforms](https://github.com/python/typeshed) | `3.2.1.20250809` | `3.2.1.20260408` |\n| [types-shapely](https://github.com/python/typeshed) | `2.1.0.20250917` | `2.1.0.20260408` |\n\n\nUpdates `werkzeug` from 3.1.6 to 3.1.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/werkzeug/releases\"\u003ewerkzeug's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.8\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.8 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/Werkzeug/3.1.8/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.8/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-8\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-8\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/werkzeug/milestone/45?closed=1\"\u003ehttps://github.com/pallets/werkzeug/milestone/45?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e and \u003ccode\u003eget_host\u003c/code\u003e return the empty string if the header is missing or has invalid characters. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3142\"\u003e#3142\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.7\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.7 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/Werkzeug/3.1.7/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.7/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-7\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-7\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/werkzeug/milestone/44?closed=1\"\u003ehttps://github.com/pallets/werkzeug/milestone/44?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eparse_list_header\u003c/code\u003e preserves partially quoted items, discards empty items, and returns empty for unclosed quoted values. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3128\"\u003e#3128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWWWAuthenticate.to_header\u003c/code\u003e does not produce a trailing space when there are no parameters. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3127\"\u003e#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTransfer-Encoding\u003c/code\u003e is parsed as a set. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3134\"\u003e#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e, \u003ccode\u003eget_host\u003c/code\u003e, and \u003ccode\u003ehost_is_trusted\u003c/code\u003e validate the characters of the value. An empty value is no longer allowed. A Unix socket server address is ignored. The \u003ccode\u003etrusted_list\u003c/code\u003e argument to \u003ccode\u003ehost_is_trusted\u003c/code\u003e is optional. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3113\"\u003e#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix multipart form parser handling of newline at boundary. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3088\"\u003e#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.make_conditional\u003c/code\u003e sets the \u003ccode\u003eAccept-Ranges\u003c/code\u003e header even if it is not a satisfiable range request. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3108\"\u003e#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emerge_slashes\u003c/code\u003e merges any number of consecutive slashes. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3121\"\u003e#3121\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/werkzeug/blob/main/CHANGES.rst\"\u003ewerkzeug's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.8\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e and \u003ccode\u003eget_host\u003c/code\u003e return the empty string if the header is\nmissing or has invalid characters. :issue:\u003ccode\u003e3142\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.7\u003c/h2\u003e\n\u003cp\u003eReleased 2026-03-23\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eparse_list_header\u003c/code\u003e preserves partially quoted items, discards empty\nitems, and returns empty for unclosed quoted values. :pr:\u003ccode\u003e3128\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWWWAuthenticate.to_header\u003c/code\u003e does not produce a trailing space when there\nare no parameters. :issue:\u003ccode\u003e3127\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTransfer-Encoding\u003c/code\u003e is parsed as a set. :pr:\u003ccode\u003e3134\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e, \u003ccode\u003eget_host\u003c/code\u003e, and \u003ccode\u003ehost_is_trusted\u003c/code\u003e validate the\ncharacters of the value. An empty value is no longer allowed. A Unix socket\nserver address is ignored. The \u003ccode\u003etrusted_list\u003c/code\u003e argument to\n\u003ccode\u003ehost_is_trusted\u003c/code\u003e is optional. :pr:\u003ccode\u003e3113\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix multipart form parser handling of newline at boundary. :issue:\u003ccode\u003e3088\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.make_conditional\u003c/code\u003e sets the \u003ccode\u003eAccept-Ranges\u003c/code\u003e header even if it\nis not a satisfiable range request. :issue:\u003ccode\u003e3108\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emerge_slashes\u003c/code\u003e merges any number of consecutive slashes. :issue:\u003ccode\u003e3121\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/werkzeug/commit/c1a26b45fb06d5e086b4d6be820c3302f588d815\"\u003e\u003ccode\u003ec1a26b4\u003c/code\u003e\u003c/a\u003e release version 3.1.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/7926f0bc3a0da01827e59c81d6da55f8f75a2eed\"\u003e\u003ccode\u003e7926f0b\u003c/code\u003e\u003c/a\u003e relax get_host strictness (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3148\"\u003e#3148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/deab88f61fa57d37d19f83ea438d4bdebb5a743c\"\u003e\u003ccode\u003edeab88f\u003c/code\u003e\u003c/a\u003e relax get_host strictness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/65eb6398231fe94f32fbc765a74980ca61fe5d2b\"\u003e\u003ccode\u003e65eb639\u003c/code\u003e\u003c/a\u003e start version 3.1.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/7720b76b37b17a33e5414bddb992c92ba854f0e3\"\u003e\u003ccode\u003e7720b76\u003c/code\u003e\u003c/a\u003e release version 3.1.7 (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3135\"\u003e#3135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/005d93bf3437226ab185d2edc6132918d3e45763\"\u003e\u003ccode\u003e005d93b\u003c/code\u003e\u003c/a\u003e release version 3.1.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/c328342ef9f7a6476b9e41565ad0a70ff10cfde6\"\u003e\u003ccode\u003ec328342\u003c/code\u003e\u003c/a\u003e merge any number of slashes (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/23142a3cb5d1b5ba8e9914980934477e0abdc30e\"\u003e\u003ccode\u003e23142a3\u003c/code\u003e\u003c/a\u003e merge any number of slashes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/b913d68db5898c8f3def3c09a653aaf95abe38e5\"\u003e\u003ccode\u003eb913d68\u003c/code\u003e\u003c/a\u003e always set accept-ranges header\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f282943ddc687e613b7ee79b4677e4961c32ae15\"\u003e\u003ccode\u003ef282943\u003c/code\u003e\u003c/a\u003e Correct 1049dd6b2a363e1ef302b4161c340fb8582f627a\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/werkzeug/compare/3.1.6...3.1.8\"\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.45 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 `geoalchemy2` from 0.18.1 to 0.19.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.19.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Fix triggers after default branch was renamed main by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/593\"\u003egeoalchemy/geoalchemy2#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept leading '+' in WKT coords and fix Comparator \u003ccode\u003e\u0026gt;\u0026gt;\u003c/code\u003e docstring by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/594\"\u003egeoalchemy/geoalchemy2#594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/595\"\u003egeoalchemy/geoalchemy2#595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Fix Too many connections errors in MySQL and MariaDB by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/597\"\u003egeoalchemy/geoalchemy2#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Ensure _GISType.column_expression is compatible with TypeDecorator by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/598\"\u003egeoalchemy/geoalchemy2#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.19.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/599\"\u003egeoalchemy/geoalchemy2#599\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.4...0.19.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.4...0.19.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: fix shapely import by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/588\"\u003egeoalchemy/geoalchemy2#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/589\"\u003egeoalchemy/geoalchemy2#589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Make Coveralls optional since the service is down at the moment by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/590\"\u003egeoalchemy/geoalchemy2#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: try the official Coveralls action by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/592\"\u003egeoalchemy/geoalchemy2#592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.4 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/591\"\u003egeoalchemy/geoalchemy2#591\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/584\"\u003egeoalchemy/geoalchemy2#584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.3 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/587\"\u003egeoalchemy/geoalchemy2#587\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/575\"\u003egeoalchemy/geoalchemy2#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/576\"\u003egeoalchemy/geoalchemy2#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/577\"\u003egeoalchemy/geoalchemy2#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/578\"\u003egeoalchemy/geoalchemy2#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/580\"\u003egeoalchemy/geoalchemy2#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Fix package discovery by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/581\"\u003egeoalchemy/geoalchemy2#581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.2 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/582\"\u003egeoalchemy/geoalchemy2#582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.2\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.19.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Ensure _GISType.column_expression is compatible with TypeDecorator - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/598\"\u003e#598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Improve WKT parsing and fix comparator doc typo - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/594\"\u003e#594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Fix Too many connections errors in MySQL and MariaDB - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Fix triggers after default branch was renamed main - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/593\"\u003e#593\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Move to the official Coveralls action - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Fix shapely import - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Fix package discovery - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/576\"\u003e#576\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/geoalchemy/geoalchemy2/commit/792cc5efe8d335b7009ea44e598c138bdd7ab5b2\"\u003e\u003ccode\u003e792cc5e\u003c/code\u003e\u003c/a\u003e Release: 0.19.0 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/599\"\u003e#599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/9d17680de522ce4c8734b2c547aa42ccf51eaf2f\"\u003e\u003ccode\u003e9d17680\u003c/code\u003e\u003c/a\u003e Fix: Ensure _GISType.column_expression is compatible with TypeDecorator (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/598\"\u003e#598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/3d4d8ec6b8b84049c9d93c49593a8726c79f3596\"\u003e\u003ccode\u003e3d4d8ec\u003c/code\u003e\u003c/a\u003e CI: Fix Too many connections errors in MySQL and MariaDB (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/b5d6336964efa9d7f85badda7f847ad09b9c5bb0\"\u003e\u003ccode\u003eb5d6336\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/595\"\u003e#595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/187f0923047ffa64bb84e0817310f40e42af8959\"\u003e\u003ccode\u003e187f092\u003c/code\u003e\u003c/a\u003e Improve WKT parsing and fix comparator doc typo (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/594\"\u003e#594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/dce1bb13b0b17442fb4a88b813eec5618d4120a7\"\u003e\u003ccode\u003edce1bb1\u003c/code\u003e\u003c/a\u003e CI: Fix triggers after default branch was renamed main (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/593\"\u003e#593\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/beb96c39754704a2ec712de3857d72b8a8ecc4d3\"\u003e\u003ccode\u003ebeb96c3\u003c/code\u003e\u003c/a\u003e Release: 0.18.4 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/6266c25a12b3d406c403db2112e7c55bf3739d97\"\u003e\u003ccode\u003e6266c25\u003c/code\u003e\u003c/a\u003e CI: Move to the official Coveralls action (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f402f6347454374b7719e612a5ebe5a1a766c8fa\"\u003e\u003ccode\u003ef402f63\u003c/code\u003e\u003c/a\u003e CI: Make Coveralls optional since the service is down at the moment (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/590\"\u003e#590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/36ebd0f650d1c60b2e24c896d4662818f0162414\"\u003e\u003ccode\u003e36ebd0f\u003c/code\u003e\u003c/a\u003e Fix: fix setuptools deprecation warning (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.19.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymongo` from 4.15.5 to 4.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-17-released/338426\"\u003eCommunity notes\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(ci): replace shell=True and awk pipes with native Python by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2671\"\u003emongodb/mongo-python-driver#2671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5697 - Migrate 8.0+ tests to Windows 2022 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2681\"\u003emongodb/mongo-python-driver#2681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 01-19-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2680\"\u003emongodb/mongo-python-driver#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyright from 1.1.407 to 1.1.408 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2675\"\u003emongodb/mongo-python-driver#2675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5692 - [Infrastructure] Improve dependabot version updates by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2682\"\u003emongodb/mongo-python-driver#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5605 - Drop usage of Ubuntu 20 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2683\"\u003emongodb/mongo-python-driver#2683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5699 \u0026amp; PYTHON-5698 [Spec Resync] 01-26-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2685\"\u003emongodb/mongo-python-driver#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5703 Use Ubuntu24 for AWS Auth tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2686\"\u003emongodb/mongo-python-driver#2686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5704 Skip free-threading for enterprise auth builds by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2687\"\u003emongodb/mongo-python-driver#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group across 1 directory by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2684\"\u003emongodb/mongo-python-driver#2684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump peter-evans/create-pull-request from 8.0.0 to 8.1.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/mongodb/mongo-python-driver/pull/2692\"\u003emongodb/mongo-python-driver#2692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-1357 - Refactor Cursor and CommandCursor by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2691\"\u003emongodb/mongo-python-driver#2691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 02-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2694\"\u003emongodb/mongo-python-driver#2694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Add codecov integration by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2690\"\u003emongodb/mongo-python-driver#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.2.0 to 7.2.1 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/mongodb/mongo-python-driver/pull/2700\"\u003emongodb/mongo-python-driver#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-XXXX Fixed typo in Running Tests Locally section. by \u003ca href=\"https://github.com/caseyclements\"\u003e\u003ccode\u003e@​caseyclements\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2698\"\u003emongodb/mongo-python-driver#2698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2701\"\u003emongodb/mongo-python-driver#2701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload on Evergreen by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2702\"\u003emongodb/mongo-python-driver#2702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5715 Add appName to OIDC test failpoints by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2697\"\u003emongodb/mongo-python-driver#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5705 Improve fallback for PyOpenSSL windows system certs loading by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2688\"\u003emongodb/mongo-python-driver#2688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-3898 Add coverage to all variants by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2705\"\u003emongodb/mongo-python-driver#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5729 Pin setuptools when using older gevent by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2708\"\u003emongodb/mongo-python-driver#2708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump 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/mongodb/mongo-python-driver/pull/2711\"\u003emongodb/mongo-python-driver#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5708 Temporarily skip some BSON encryption tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2709\"\u003emongodb/mongo-python-driver#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5732 Use mongodb-runner in Evergreen Tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2703\"\u003emongodb/mongo-python-driver#2703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5731 - Server selection deprioritization only for overload errors on replica sets by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2710\"\u003emongodb/mongo-python-driver#2710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5737 - BSON encoding/decoding performance improvements by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2715\"\u003emongodb/mongo-python-driver#2715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2716\"\u003emongodb/mongo-python-driver#2716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 4542 - Improved sessions API by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2712\"\u003emongodb/mongo-python-driver#2712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5742 - Add Copilot instructions by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2717\"\u003emongodb/mongo-python-driver#2717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5747 Add jira link to spec resync PR by \u003ca href=\"https://github.com/sleepyStick\"\u003e\u003ccode\u003e@​sleepyStick\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2723\"\u003emongodb/mongo-python-driver#2723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5114 Test suite reduce killAllSessions calls by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2721\"\u003emongodb/mongo-python-driver#2721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5748 Remove unused SpecRunner class by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2725\"\u003emongodb/mongo-python-driver#2725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5754 Fix USE_ACTIVE_VENV support by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2728\"\u003emongodb/mongo-python-driver#2728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5753 Add just recipes for running coverage tests locally by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2727\"\u003emongodb/mongo-python-driver#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5758 Remove unused validation functions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2733\"\u003emongodb/mongo-python-driver#2733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5757 Deprecate Python 2 methods in SON by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2732\"\u003emongodb/mongo-python-driver#2732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5766 Add codecov badge to readme by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2737\"\u003emongodb/mongo-python-driver#2737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2736\"\u003emongodb/mongo-python-driver#2736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-30-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2741\"\u003emongodb/mongo-python-driver#2741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.3.0 to 7.6.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/mongodb/mongo-python-driver/pull/2740\"\u003emongodb/mongo-python-driver#2740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5401: Add AI Generated Contributions Policy by \u003ca href=\"https://github.com/Jibola\"\u003e\u003ccode\u003e@​Jibola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2696\"\u003emongodb/mongo-python-driver#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5768 Add AGENTS.md w/copilot instructions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2744\"\u003emongodb/mongo-python-driver#2744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5791 - test_list_database_names should not check ordering by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2751\"\u003emongodb/mongo-python-driver#2751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5668 - Merge backpressure branch into mainline by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2729\"\u003emongodb/mongo-python-driver#2729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2756\"\u003emongodb/mongo-python-driver#2756\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/mongodb/mongo-python-driver/blob/master/doc/changelog.rst\"\u003epymongo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChanges in Version 4.17.0 (2026/04/20)\u003c/h2\u003e\n\u003cp\u003ePyMongo 4.17 brings a number of changes including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ehas_key\u003c/code\u003e, \u003ccode\u003eiterkeys\u003c/code\u003e and \u003ccode\u003eitervalues\u003c/code\u003e in :class:\u003ccode\u003ebson.son.SON\u003c/code\u003e have\nbeen deprecated and will be removed in PyMongo 5.0. These methods were\ndeprecated in favor of the standard dictionary containment operator \u003ccode\u003ein\u003c/code\u003e\nand the \u003ccode\u003ekeys()\u003c/code\u003e and \u003ccode\u003evalues()\u003c/code\u003e methods, respectively.\u003c/li\u003e\n\u003cli\u003eAdded the :meth:\u003ccode\u003e~pymongo.asynchronous.client_session.AsyncClientSession.bind\u003c/code\u003e and :meth:\u003ccode\u003e~pymongo.client_session.ClientSession.bind\u003c/code\u003e methods\nthat allow users to bind a session to all database operations within the scope of a context manager instead of having to explicitly pass the session to each individual operation.\nSee the \u003ccode\u003eTransactions docs \u0026lt;https://www.mongodb.com/docs/languages/python/pymongo-driver/current/crud/transactions/#methods\u0026gt;\u003c/code\u003e_ for examples and more information.\u003c/li\u003e\n\u003cli\u003eAdded support for MongoDB's Intelligent Workload Management (IWM) and ingress connection rate limiting features.\nThe driver now gracefully handles write-blocking scenarios and optimizes connection establishment during high-load conditions to maintain application availability.\nSee the \u003ccode\u003eIWM \u0026lt;https://www.mongodb.com/docs/atlas/intelligent-workload-management\u0026gt;\u003c/code\u003e_ or \u003ccode\u003eOverload Errors \u0026lt;https://www.mongodb.com/docs/atlas/overload-errors/?interface=driver\u0026amp;language=python\u0026gt;\u003c/code\u003e_ docs for more information.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges in Version 4.16.0 (2026/01/07)\u003c/h2\u003e\n\u003cp\u003ePyMongo 4.16 brings a number of changes including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved invalid documents from :class:\u003ccode\u003ebson.errors.InvalidDocument\u003c/code\u003e error messages as\ndoing so may leak sensitive user data.\nInstead, invalid documents are stored in :attr:\u003ccode\u003ebson.errors.InvalidDocument.document\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003ePyMongo now requires \u003ccode\u003ednspython\u0026gt;=2.6.1\u003c/code\u003e, since \u003ccode\u003ednspython\u003c/code\u003e 1.0 is no longer maintained.\nThe minimum version is \u003ccode\u003e2.6.1\u003c/code\u003e to account for \u003ccode\u003eCVE-2023-29483 \u0026lt;https://www.cve.org/CVERecord?id=CVE-2023-29483\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eRemoved support for Eventlet.\nEventlet is actively being sunset by its maintainers and has compatibility issues with PyMongo's dnspython dependency.\u003c/li\u003e\n\u003cli\u003eUse Zstandard support from the standard library for Python 3.14+, and use \u003ccode\u003ebackports.zstd\u003c/code\u003e for older versions.\u003c/li\u003e\n\u003cli\u003eFixed return type annotation for \u003ccode\u003efind_one_and_*\u003c/code\u003e methods on :class:\u003ccode\u003e~pymongo.asynchronous.collection.AsyncCollection\u003c/code\u003e\nand :class:\u003ccode\u003e~pymongo.synchronous.collection.Collection\u003c/code\u003e to include \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded support for NumPy 1D-arrays in :class:\u003ccode\u003ebson.binary.BinaryVector\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003ePrevented :class:\u003ccode\u003e~pymongo.encryption.ClientEncryption\u003c/code\u003e from loading the crypt\nshared library to fix \u0026quot;MongoCryptError: An existing crypt_shared library is\nloaded by the application\u0026quot; unless the linked library search path is set.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f2103a95870ab5c00b436f757cbaeb86a1047679\"\u003e\u003ccode\u003ef2103a9\u003c/code\u003e\u003c/a\u003e Prep branch v4.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/3491c08ef6505d42d07b9a17100b5190ed1294fc\"\u003e\u003ccode\u003e3491c08\u003c/code\u003e\u003c/a\u003e PYTHON-5801 - Update changelog for 4.17 release (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2762\"\u003e#2762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/912ef337f90852b58eaf6318e59f97206b281980\"\u003e\u003ccode\u003e912ef33\u003c/code\u003e\u003c/a\u003e PYTHON-5798 - Overload retargeting prose tests do not ensure that sec… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2760\"\u003e#2760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/b4e2c03a927ca275e097342f847eb9705465e975\"\u003e\u003ccode\u003eb4e2c03\u003c/code\u003e\u003c/a\u003e PYTHON-5800 - Simple collation is included in index information (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f31ba09713ff61086f5ebddb43a1e79b419b9802\"\u003e\u003ccode\u003ef31ba09\u003c/code\u003e\u003c/a\u003e PYTHON-5797 - Add IWM and Overload Error links to changelog (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2757\"\u003e#2757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/5da91837d4db9b2f1d3521f2e39cff9e0ff94334\"\u003e\u003ccode\u003e5da9183\u003c/code\u003e\u003c/a\u003e PYTHON-5794 - Add prose tests to verify correct retry behavior when a… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2755\"\u003e#2755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/35e51a50f3ecf2020be10b6eae96e3ad0038174a\"\u003e\u003ccode\u003e35e51a5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;PYTHON-5768 Add AGENTS.md w/copilot instructions\u0026quot; (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2744\"\u003e#2744\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2754\"\u003e#2754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f41dd5c08b352f2ca885e19e475e366383dd3ec8\"\u003e\u003ccode\u003ef41dd5c\u003c/code\u003e\u003c/a\u003e PYTHON-5772 Increase _gcp_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2749\"\u003e#2749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/49e7a052e2fdf864ec3eb73e308d6cfd11b5f31d\"\u003e\u003ccode\u003e49e7a05\u003c/code\u003e\u003c/a\u003e PYTHON-5760 Increase _azure_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/a2b0cd85e3a57cd63cbce9bc24500afb0fa062c6\"\u003e\u003ccode\u003ea2b0cd8\u003c/code\u003e\u003c/a\u003e PYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2756\"\u003e#2756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mongodb/mongo-python-driver/compare/4.15.5...4.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mongoengine` from 0.29.1 to 0.29.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MongoEngine/mongoengine/blob/v0.29.3/docs/changelog.rst\"\u003emongoengine's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChanges in 0.29.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRemove mentions of mongoengine[dot]org has we no longer own it \u003ca href=\"https://redirect.github.com/MongoEngine/mongoengine/issues/2905\"\u003e#2905\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eChanges in 0.29.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efixes relted with\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MongoEngine/mongoengine/commit/30f6d56c5c0777f084213faf6b6e923acea225f7\"\u003e\u003ccode\u003e30f6d56\u003c/code\u003e\u003c/a\u003e prep release 0.29.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MongoEngine/mongoengine/commit/a5fb2bdd7760355d925001dd105ce7d5639af7d3\"\u003e\u003ccode\u003ea5fb2bd\u003c/code\u003e\u003c/a\u003e prepare 0.29.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MongoEngine/mongoengine/commit/a362dddc72ba189b3797a7b87fb0a66ea96b0877\"\u003e\u003ccode\u003ea362ddd\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MongoEngine/mongoengine/commit/1fcbad8e8395eef31a4a08b4e16540ca8dbaa534\"\u003e\u003ccode\u003e1fcbad8\u003c/code\u003e\u003c/a\u003e fix CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MongoEngine/mongoengine/commit/19553b880a062c2327642fb771eaf6d097174e6e\"\u003e\u003ccode\u003e19553b8\u003c/code\u003e\u003c/a\u003e use ubuntu 22.04 for test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MongoEngine/mongoengine/commit/0eeec004ef777f61f019a2d0f066621727fc515f\"\u003e\u003ccode\u003e0eeec00\u003c/code\u003e\u003c/a\u003e prepare 0.29.2 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/MongoEngine/mongoengine/compare/v0.29.1...v0.29.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `peewee` from 3.18.3 to 4.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coleifer/peewee/releases\"\u003epeewee's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SQL generation for partial indexes with nulls (not) distinct clause.\u003c/li\u003e\n\u003cli\u003eRaise an \u003ccode\u003eImproperlyConfigured\u003c/code\u003e if pg driver unavailable at model definition-time when field db-hooks are used, rather than \u003ccode\u003eAttributeError\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.3...4.0.4\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://github.com/user-attachments/assets/db2cf828-2c4d-4e2a-8c49-3c7432db520c\" alt=\"alien_moon_mission_flags_full\" /\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor test suite - this was a mechanical refactor, just moving things around and trying to group things more clearly. Also added new tests covering some gaps.\u003c/li\u003e\n\u003cli\u003eExpand multi-value types to include generator expressions, so you can write stuff like \u003ccode\u003e.in(a for a in iterable if cond)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eEnsure quotes embedded in entity names are escaped.\u003c/li\u003e\n\u003cli\u003eImproved specification of \u003ccode\u003eFOR UPDATE\u003c/code\u003e clauses.\u003c/li\u003e\n\u003cli\u003eFix for negative values in \u003ccode\u003epaginate()\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eFix for newer MySQL server versions in feature detection code.\u003c/li\u003e\n\u003cli\u003eMore robust handling of unusual aliases / invalid attr names in cursor wrapper.\u003c/li\u003e\n\u003cli\u003eBetter handling of duplicated column names in cursor wrapper implementations.\u003c/li\u003e\n\u003cli\u003eImprove performance of ModelCursorWrapper when reconstructing model instance graphs after multi-table selects.\u003c/li\u003e\n\u003cli\u003eIf only psycopg3 is installed, use it by default (\u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3036\"\u003e#3036\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.2...4.0.3\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://github.com/user-attachments/assets/15d6ec7f-0387-456a-b6db-e10d5b2e5b9f\" alt=\"1871_Vereshchagin_Apotheose_des_Krieges_anagoria\" /\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove all Python 2.x compatibility code.\u003c/li\u003e\n\u003cli\u003eAdd streaming result cursors to pwasyncio module via \u003ccode\u003edb.iterate(query)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eBetter serialization and deserialization of datetimes and binary data in the DataSet module. Previously binary data was encoded as base64, going forward hex is the new default. For base64 specify \u003ccode\u003ebase64_bytes=True\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImprovements to Postgres \u003ccode\u003eBinaryJSONField\u003c/code\u003e, support atomic removal of sub-elements, as well as alternate helper for extracting sub-elements and querying array length.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.peewee-orm.com/en/latest/peewee/orm_utils.html#module-playhouse.pydantic_utils\"\u003ePydantic integration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.1...4.0.2\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003egr_context\u003c/code\u003e is set on greenlet in \u003ccode\u003egreenlet_spawn\u003c/code\u003e so that contextvars will be operable in sync handlers.\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eSqliteExtDatabase\u003c/code\u003e (it basically served no purpose in 4.0). Use \u003ccode\u003eSqliteDatabase\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eMoved driver and extension-specific pooled implementations into the corresponding extension module rather than putting all into \u003ccode\u003eplayhouse.pool\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRestore custom \u003ccode\u003edumps\u003c/code\u003e option for postgres JSON fields.\u003c/li\u003e\n\u003cli\u003eMajor docs rewrite / reorganization.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.0...4.0.1\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds preliminary support for \u003ccode\u003easyncio\u003c/code\u003e via a new playhouse extension. See \u003ca href=\"http://docs.peewee-orm.com/en/latest/peewee/asyncio.html\"\u003ethe documentation\u003c/a\u003e for details.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePostgresqlDatabase\u003c/code\u003e can use \u003ccode\u003epsycopg\u003c/code\u003e (psycopg3) if it is installed. If both psycopg2 and psycopg3 are installed, Peewee will prefer psycopg2, but this can be controlled by specifying \u003ccode\u003eprefer_psycopg3=True\u003c/code\u003e in the constructor. Same applies to \u003ccode\u003ePostgresqlExtDatabase\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePsycopg3Database\u003c/code\u003e class has been moved to \u003ccode\u003eplayhouse.postgres_ext\u003c/code\u003e and is now just a thin wrapper around \u003ccode\u003ePostgresqlExtDatabase\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003ePostgres JSON operations no longer dump and try to do minimal casts, instead relying on the driver-provided \u003ccode\u003eJson()\u003c/code\u003e wrapper(s).\u003c/li\u003e\n\u003cli\u003eAdds new \u003ccode\u003eISODateTimeField\u003c/code\u003e for Sqlite that encodes datetimes in ISO format (more friendly when db is shared with other tools), and also properly reads back UTC offset info.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003eplayhouse.sqlite_ext.ClosureTable\u003c/code\u003e implementation.\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003eModel.dirty_field_names\u003c/code\u003e attribute that is safe for membership testing, since testing \u003ccode\u003ex in dirty_fields\u003c/code\u003e returns True if one or more field exists due to operator overloads returning a truthy Expression object. Refs \u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3028\"\u003e#3028\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/coleifer/peewee/blob/master/CHANGELOG.md\"\u003epeewee's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SQL generation for partial indexes with nulls (not) distinct clause.\u003c/li\u003e\n\u003cli\u003eRaise an \u003ccode\u003eImproperlyConfigured\u003c/code\u003e if pg driver unavailable at model\ndefinition-time when field db-hooks are used, rather than \u003ccode\u003eAttributeError\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.3...4.0.4\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor test suite - this was a mechanical refactor, just moving things\naround and trying to group things more clearly. Also added new tests covering\nsome gaps.\u003c/li\u003e\n\u003cli\u003eExpand multi-value types to include generator expressions, so you can write\nstuff like \u003ccode\u003e.in(a for a in iterable if cond)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eEnsure quotes embedded in entity names are escaped.\u003c/li\u003e\n\u003cli\u003eImproved specification of \u003ccode\u003eFOR UPDATE\u003c/code\u003e clauses.\u003c/li\u003e\n\u003cli\u003eFix for negative values in \u003ccode\u003epaginate()\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eFix for newer MySQL server versions in feature detection code.\u003c/li\u003e\n\u003cli\u003eMore robust handling of unusual aliases / invalid attr names in cursor\nwrapper.\u003c/li\u003e\n\u003cli\u003eBetter handling of duplicated column names in cursor wrapper implementations.\u003c/li\u003e\n\u003cli\u003eImprove performance of ModelCursorWrapper when reconstructing model instance\ngraphs after multi-table selects.\u003c/li\u003e\n\u003cli\u003eIf only psycopg3 is installed, use it by default (\u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3036\"\u003e#3036\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.2...4.0.3\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove all Python 2.x compatibility code.\u003c/li\u003e\n\u003cli\u003eAdd streaming result cursors to pwasyncio module via \u003ccode\u003edb.iterate(query)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eBetter serialization and deserialization of datetimes and binary data in the\nDataSet module. Previously binary data was encoded as base64, going forward\nhex is the new default. For base64 specify \u003ccode\u003ebase64_bytes=True\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImprovements to Postgres \u003ccode\u003eBinaryJSONField\u003c/code\u003e, support atomic removal of\nsub-elements, as well as alternate helper for extracting sub-elements and\nquerying array length.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.peewee-orm.com/en/latest/peewee/orm_utils.html#module-playhouse.pydantic_utils\"\u003ePydantic integration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.1...4.0.2\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003egr_context\u003c/code\u003e is set on greenlet in \u003ccode\u003egreenlet_spawn\u003c/code\u003e so that\ncontextvars will be operable in sync handlers.\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eSqliteExtDatabase\u003c/code\u003e (it basically served no purpose in 4.0). Use\n\u003ccode\u003eSqliteDatabase\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eMoved driver and extension-specific pooled implementations into the\ncorresponding extension module rather than putting all into \u003ccode\u003eplayhouse.pool\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/coleifer/peewee/commit/1c5e37934b81cad37fb506388926325d55f1e437\"\u003e\u003ccode\u003e1c5e379\u003c/code\u003e\u003c/a\u003e 4.0.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/c511fb137f7b3d91436aabc5a7963ada217147ec\"\u003e\u003ccode\u003ec511fb1\u003c/code\u003e\u003c/a\u003e Fix syntax when using nulls_distinct on partial index.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/f8ff6af96cd8b0d3a303a5ec1d514b59837178d6\"\u003e\u003ccode\u003ef8ff6af\u003c/code\u003e\u003c/a\u003e Raise an \u003ccode\u003eImproperlyConfigured\u003c/code\u003e instead of AttributeError if pg missing.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/bd0e434e83ade196d754615198e911e36c045903\"\u003e\u003ccode\u003ebd0e434\u003c/code\u003e\u003c/a\u003e 4.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/89f3031dac7c19b10748dce5c80c0439ae6aee66\"\u003e\u003ccode\u003e89f3031\u003c/code\u003e\u003c/a\u003e Use psycopg3 if psycopg2 is not installed.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/007fd50bc74d6612d3551de12f28f901f43c40fb\"\u003e\u003ccode\u003e007fd50\u003c/code\u003e\u003c/a\u003e Just some housekeeping\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/eda231b047b023515c161cc54fad83c8a87e5eeb\"\u003e\u003ccode\u003eeda231b\u003c/code\u003e\u003c/a\u003e Update changelog, fix failing crdb sql test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/071d0a036298f49e998a7595990128f9763dafbe\"\u003e\u003ccode\u003e071d0a0\u003c/code\u003e\u003c/a\u003e Cleanup cruft in sql and merge it into appropriate cases.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/ab9a94311d9699367301ebc276483856ed58456d\"\u003e\u003ccode\u003eab9a943\u003c/code\u003e\u003c/a\u003e Test cleanup in prefetch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/2d20c8acb43878733ecca178e7c5680422f1e63f\"\u003e\u003ccode\u003e2d20c8a\u003c/code\u003e\u003c/a\u003e Updates to tests, gone through model_sql and cleaned-up.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coleifer/peewee/compare/3.18.3...4.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `wtf-peewee` from 3.0.6 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/wtf-peewee/commit/d16af6d54ed98e51d9ece9ab440125fa9cb17716\"\u003e\u003ccode\u003ed16af6d\u003c/code\u003e\u003c/a\u003e 3.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/wtf-peewee/commit/15d1fe8fdf71609ebfdaf5cff467152f67a7c514\"\u003e\u003ccode\u003e15d1fe8\u003c/code\u003e\u003c/a\u003e Clean up error messages and add test for length validator too.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/wtf-peewee/commit/810bdb2545c30f07d7a42cb95d6fa5cf3a4e5e3b\"\u003e\u003ccode\u003e810bdb2\u003c/code\u003e\u003c/a\u003e Fix validation on foreign-key for missing object.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/wtf-peewee/commit/0638331d57b09d6495434a5a6980d52861b18018\"\u003e\u003ccode\u003e0638331\u003c/code\u003e\u003c/a\u003e Add test for checking form data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/wtf-peewee/commit/9a2af51636557ec390b40d83874f79c840163c35\"\u003e\u003ccode\u003e9a2af51\u003c/code\u003e\u003c/a\u003e Add support for JSON fields in PostgreSQL and SQLite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/wtf-peewee/commit/6eed1003bdaff03ae3278b5a0094841b2235a405\"\u003e\u003ccode\u003e6eed100\u003c/code\u003e\u003c/a\u003e 3.0.7\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/coleifer/wtf-peewee/compare/3.0.6...3.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.42.14 to 1.42.92\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/d431bb03c76582926b04618b3704302b55579a45\"\u003e\u003ccode\u003ed431bb0\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.92'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5cb8aa5dcb543bc6f518eaee723ddee9590f9f8e\"\u003e\u003ccode\u003e5cb8aa5\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.92\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c5949008514dba8cf8d1bef02d53632f657d7eaf\"\u003e\u003ccode\u003ec594900\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/7eff2b3c823c0c9500038276ddfd16a89b9c2cd1\"\u003e\u003ccode\u003e7eff2b3\u003c/code\u003e\u003c/a\u003e Update presigned URL docs to include addressing style config (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4768\"\u003e#4768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/d5b7391bc05f6c06e7bf882c6a4047af74ab3852\"\u003e\u003ccode\u003ed5b7391\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.91'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c0506106ce4f327731630f0208fcb3edbed0efc3\"\u003e\u003ccode\u003ec050610\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.91' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/f8d138599c975669a27529d86bc199a303d03e8d\"\u003e\u003ccode\u003ef8d1385\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.91\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/3e834220990a6ca6e633e9f566ff47fbba68f32a\"\u003e\u003ccode\u003e3e83422\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/ac298d48400d1d9ccd7fd15f6f06bba73fe40914\"\u003e\u003ccode\u003eac298d4\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.90'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/1a9278380d932a9b384451c9056f518ff4136b53\"\u003e\u003ccode\u003e1a92783\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.90' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.42.14...1.42.92\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-storage-blob` from 12.27.1 to 12.28.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b3301acbed95d1e11f8ab859eced5292627c763a\"\u003e\u003ccode\u003eb3301ac\u003c/code\u003e\u003c/a\u003e STG 100 GA Release Date for 2026-01-06\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/beb8dfaad1420c54288adb8e0ceb468cff144a70\"\u003e\u003ccode\u003ebeb8dfa\u003c/code\u003e\u003c/a\u003e [Storage][STG 100] Prepare branch for GA + cherry-pick block size change (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44\"\u003e#44\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/874cfcf701ccc2a2ef9a3444fe0563ce2efdc058\"\u003e\u003ccode\u003e874cfcf\u003c/code\u003e\u003c/a\u003e [Storage] Update Swagger and Release Date (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44243\"\u003e#44243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/4aca0cc83494e1fe243a21d31af357acf60160be\"\u003e\u003ccode\u003e4aca0cc\u003c/code\u003e\u003c/a\u003e Fix perf tests on Python 3.14 + Storage change (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44230\"\u003e#44230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/cd5ecc5c0e05c1deeb4b74f72d85f01418e5d27c\"\u003e\u003ccode\u003ecd5ecc5\u003c/code\u003e\u003c/a\u003e [Storage] Fix 100 Live Tests (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44108\"\u003e#44108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/1cd78b1c3dbc5acb2a40d81cf4d3587783a187eb\"\u003e\u003ccode\u003e1cd78b1\u003c/code\u003e\u003c/a\u003e [Storage] Added support for Python 3.14 + update 100 release date (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44224\"\u003e#44224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/471cda17da08c0320c12c4f2ee30becaaec94a7a\"\u003e\u003ccode\u003e471cda1\u003c/code\u003e\u003c/a\u003e [Storage] Add Blob download perf test that uses HTTP library directly (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44111\"\u003e#44111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/9e53510dc0e1acfdbbf418174f656fac5025ea92\"\u003e\u003ccode\u003e9e53510\u003c/code\u003e\u003c/a\u003e [Storage] Decompression for Binary Response in Download APIs (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43587\"\u003e#43587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/68b646be00366dc3f9157065eccf55dd0c7c21b2\"\u003e\u003ccode\u003e68b646b\u003c/code\u003e\u003c/a\u003e Removed create file with data and file semantics features (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43978\"\u003e#43978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/09f0066bee9b717da6e15aa5fc2183e3490fe7f1\"\u003e\u003ccode\u003e09f0066\u003c/code\u003e\u003c/a\u003e [Storage] Added Support for \u003ccode\u003eUseDevelopmentStorage=true;\u003c/code\u003e for Connection Stri...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-storage-blob_12.27.1...azure-storage-blob_12.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.1.0 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eOpenTelemetry Native Metrics Support for asynchronous clients\u003c/strong\u003e\nAdded comprehensive OpenTelemetry metrics support for asynchronous clients following the \u003ca href=\"https://opentelemetry.io/docs/specs/semconv/database/database-metrics/\"\u003eOpenTelemetry Database Client Semantic Conventions\u003c/a\u003e.\nMetric groups include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCommand metrics: Operation duration with retry tracking\u003c/li\u003e\n\u003cli\u003eConnection basic: Connection count and creation time\u003c/li\u003e\n\u003cli\u003eResiliency: Errors, handoffs, timeout relaxation\u003c/li\u003e\n\u003cli\u003eConnection advanced: Wait time and use time\u003c/li\u003e\n\u003cli\u003ePubsub metrics: Published and received messages\u003c/li\u003e\n\u003cli\u003eStream metrics: Processing duration and maintenance notifications\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded OTel instrumentation and metrics export for async client (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3977\"\u003e#3977\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[async] Adding access to cluster client's nodes_manager and set_response_callback in ClusterPipeline objects (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3989\"\u003e#3989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(connection): Ensure we have an initialized protocol in connection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3981\"\u003e#3981\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use KeysT for blpop and brpop keys parameter type annotation (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3987\"\u003e#3987\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3990\"\u003e#3990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3985\"\u003e#3985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: replace 3 bare except clauses with except Exception (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3980\"\u003e#3980\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/turanalmammadov\"\u003e\u003ccode\u003e@​turanalmammadov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/haosenwang1018\"\u003e\u003ccode\u003e@​haosenwang1018\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/Medno\"\u003e\u003ccode\u003e@​Medno\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.2.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/8ecbc7a728792ab9c71078cb330a64c225cb3351\"\u003e\u003ccode\u003e8ecbc7a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/11043df86ed5f892cde1f34f08f3450f13bb6339\"\u003e\u003ccode\u003e11043df\u003c/code\u003e\u003c/a\u003e typing: accept single-key input for blpop and brpop (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3990\"\u003e#3990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d9581250202123ebf68d299e8f2ea79fa9bd7210\"\u003e\u003ccode\u003ed958125\u003c/code\u003e\u003c/a\u003e fix: use KeysT for blpop and brpop keys parameter type annotation (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3987\"\u003e#3987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/75bf91b8a28bfc3f8417e58d1b78bd112ffcf6de\"\u003e\u003ccode\u003e75bf91b\u003c/code\u003e\u003c/a\u003e [async] Adding access to cluster client's nodes_manager and set_response_call...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.1.0...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tox` from 4.29.0 to 4.53.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/releases\"\u003etox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cb...\n\n_Description has been truncated_","html_url":"https://github.com/pallets-eco/flask-admin/pull/2877","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pallets-eco%2Fflask-admin/issues/2877","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2877/packages"},{"uuid":"4190650262","node_id":"PR_kwDOG5WtHM7Paafw","number":2830,"state":"open","title":"[Tech] Bump the non-major-dependencies group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["tech. enhancement","dependencies"],"assignees":["VincentAntoine"],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-02T00:26:40.000Z","updated_at":"2026-04-02T00:27:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[Tech] Bump","group_name":"non-major-dependencies","update_count":7,"packages":[{"name":"geopandas","old_version":"1.1.2","new_version":"1.1.3","repository_url":"https://github.com/geopandas/geopandas"},{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"geoalchemy2","old_version":"0.18.1","new_version":"0.18.4","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"prefect","old_version":"3.6.9","new_version":"3.6.24","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"coverage","old_version":"7.13.4","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"sqlalchemy","old_version":"2.0.46","new_version":"2.0.48","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"css-inline","old_version":"0.20.0","new_version":"0.20.1","repository_url":"https://github.com/Stranger6667/css-inline"}],"path":null,"ecosystem":"pip"},"body":"Bumps the non-major-dependencies group with 7 updates in the /pipeline directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [geopandas](https://github.com/geopandas/geopandas) | `1.1.2` | `1.1.3` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.18.1` | `0.18.4` |\n| [prefect](https://github.com/PrefectHQ/prefect) | `3.6.9` | `3.6.24` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.4` | `7.13.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.46` | `2.0.48` |\n| [css-inline](https://github.com/Stranger6667/css-inline) | `0.20.0` | `0.20.1` |\n\n\nUpdates `geopandas` from 1.1.2 to 1.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geopandas/geopandas/releases\"\u003egeopandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis release addresses a handful of small compatibility issues with pandas 3.0 and backports some bugfixes.\u003c/p\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImproved compatibility with pandas 3.0 Copy-on-Write feature, making use of deferred copies where possible (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3298\"\u003e#3298\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3711\"\u003e#3711\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eGeoSeries.sample_points\u003c/code\u003e not accepting list-like \u003ccode\u003esize\u003c/code\u003e when generating points using\n\u003ccode\u003epointpaterns\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3710\"\u003e#3710\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efrom_wkt/wkb\u003c/code\u003e to correctly handle missing values with pandas 3 (where the new \u003ccode\u003estr\u003c/code\u003e dtype is used) (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3714\"\u003e#3714\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eto_postgis\u003c/code\u003e to correctly handle missing values with pandas 3 (where the new \u003ccode\u003estr\u003c/code\u003e dtype is used) (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3722\"\u003e#3722\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUsing \u003ccode\u003eloc\u003c/code\u003e to assign column values to a new row index now correctly preserves the column CRS and geometry dtype\non pandas 3.1, due to an upstream bug fix (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3741\"\u003e#3741\u003c/a\u003e, Pandas \u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/62523\"\u003e#62523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRandom states in \u003ccode\u003epointpats\u003c/code\u003e methods of \u003ccode\u003esample_points\u003c/code\u003e can now be fixed with \u003ccode\u003erng\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3737\"\u003e#3737\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geopandas/geopandas/compare/v1.1.2...v1.1.3\"\u003ehttps://github.com/geopandas/geopandas/compare/v1.1.2...v1.1.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geopandas/geopandas/blob/main/CHANGELOG.md\"\u003egeopandas's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.1.3 (March 10, 2026)\u003c/h2\u003e\n\u003cp\u003eThis release addresses a handful of small compatibility issues with pandas 3.0 and backports some bugfixes.\u003c/p\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImproved compatibility with pandas 3.0 Copy-on-Write feature, making use of deferred copies where possible (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3298\"\u003e#3298\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3711\"\u003e#3711\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eGeoSeries.sample_points\u003c/code\u003e not accepting list-like \u003ccode\u003esize\u003c/code\u003e when generating points using\n\u003ccode\u003epointpaterns\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3710\"\u003e#3710\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efrom_wkt/wkb\u003c/code\u003e to correctly handle missing values with pandas 3 (where the new \u003ccode\u003estr\u003c/code\u003e dtype is used) (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3714\"\u003e#3714\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eto_postgis\u003c/code\u003e to correctly handle missing values with pandas 3 (where the new \u003ccode\u003estr\u003c/code\u003e dtype is used) (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3722\"\u003e#3722\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUsing \u003ccode\u003eloc\u003c/code\u003e to assign column values to a new row index now correctly preserves the column CRS and geometry dtype\non pandas 3.1, due to an upstream bug fix (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3741\"\u003e#3741\u003c/a\u003e, Pandas \u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/62523\"\u003e#62523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRandom states in \u003ccode\u003epointpats\u003c/code\u003e methods of \u003ccode\u003esample_points`` can now be fixed with \u003c/code\u003erng` (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3737\"\u003e#3737\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/geopandas/geopandas/commit/f5fe3ff5f0e473603cd0e81673d9f1f300f4975d\"\u003e\u003ccode\u003ef5fe3ff\u003c/code\u003e\u003c/a\u003e RLS: v1.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/c1046702f4444659cb9cf3d8cb389ecd45c35e3c\"\u003e\u003ccode\u003ec104670\u003c/code\u003e\u003c/a\u003e pointpats \u0026lt;2.5.3 test compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/af36b140f911641e9a7909e3be76e766d7383c22\"\u003e\u003ccode\u003eaf36b14\u003c/code\u003e\u003c/a\u003e ENH: add \u003ccode\u003epointpats\u003c/code\u003e as an optional dependency \u0026amp; pass in \u003ccode\u003erng\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3737\"\u003e#3737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/d9ed84a9d4e33524498eac197d11ece3ba67637e\"\u003e\u003ccode\u003ed9ed84a\u003c/code\u003e\u003c/a\u003e COMPAT: fix failing test for loc concatenation crs preservation with pandas 3...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/1b1ddc23796bbe06589f2262d548219d0b065daf\"\u003e\u003ccode\u003e1b1ddc2\u003c/code\u003e\u003c/a\u003e MAINT: use trusted publishing for releasing to PyPI (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3734\"\u003e#3734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/8d0c05dbd588031f9c10913b3302b2d347dc9e8e\"\u003e\u003ccode\u003e8d0c05d\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/a424f1750945bcc9a6c6122c7aca8b0829202201\"\u003e\u003ccode\u003ea424f17\u003c/code\u003e\u003c/a\u003e Avoid returning deep copies with pandas 3.0 (with Copy-on-Write) (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3298\"\u003e#3298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/03fa43e9029ced09314b915277309e7fee7097ba\"\u003e\u003ccode\u003e03fa43e\u003c/code\u003e\u003c/a\u003e MAINT: cleanup release warning for project.license table (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3603\"\u003e#3603\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/29fdb3057195aa4cb7adbd771425e3a47ad52b66\"\u003e\u003ccode\u003e29fdb30\u003c/code\u003e\u003c/a\u003e CI: remove usage of PANDAS_FUTURE_INFER_STRINGS=0 (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3715\"\u003e#3715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/9070e1346fc070ee077cb7027f6fa7737391402e\"\u003e\u003ccode\u003e9070e13\u003c/code\u003e\u003c/a\u003e missing changelog entries\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geopandas/geopandas/compare/v1.1.2...v1.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.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/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\u003c/blockquote\u003e\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\u003c/blockquote\u003e\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.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 `geoalchemy2` from 0.18.1 to 0.18.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: fix shapely import by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/588\"\u003egeoalchemy/geoalchemy2#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/589\"\u003egeoalchemy/geoalchemy2#589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Make Coveralls optional since the service is down at the moment by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/590\"\u003egeoalchemy/geoalchemy2#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: try the official Coveralls action by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/592\"\u003egeoalchemy/geoalchemy2#592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.4 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/591\"\u003egeoalchemy/geoalchemy2#591\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/584\"\u003egeoalchemy/geoalchemy2#584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.3 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/587\"\u003egeoalchemy/geoalchemy2#587\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/575\"\u003egeoalchemy/geoalchemy2#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/576\"\u003egeoalchemy/geoalchemy2#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/577\"\u003egeoalchemy/geoalchemy2#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/578\"\u003egeoalchemy/geoalchemy2#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/580\"\u003egeoalchemy/geoalchemy2#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Fix package discovery by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/581\"\u003egeoalchemy/geoalchemy2#581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.2 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/582\"\u003egeoalchemy/geoalchemy2#582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.2\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Move to the official Coveralls action - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Fix shapely import - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Fix package discovery - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/576\"\u003e#576\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/geoalchemy/geoalchemy2/commit/beb96c39754704a2ec712de3857d72b8a8ecc4d3\"\u003e\u003ccode\u003ebeb96c3\u003c/code\u003e\u003c/a\u003e Release: 0.18.4 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/6266c25a12b3d406c403db2112e7c55bf3739d97\"\u003e\u003ccode\u003e6266c25\u003c/code\u003e\u003c/a\u003e CI: Move to the official Coveralls action (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f402f6347454374b7719e612a5ebe5a1a766c8fa\"\u003e\u003ccode\u003ef402f63\u003c/code\u003e\u003c/a\u003e CI: Make Coveralls optional since the service is down at the moment (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/590\"\u003e#590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/36ebd0f650d1c60b2e24c896d4662818f0162414\"\u003e\u003ccode\u003e36ebd0f\u003c/code\u003e\u003c/a\u003e Fix: fix setuptools deprecation warning (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f11a1dadb94a31272cb58f3ef04f07490d174d34\"\u003e\u003ccode\u003ef11a1da\u003c/code\u003e\u003c/a\u003e Fix: Fix shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/943b456ee3726db7a4b890309d9e864866bd8614\"\u003e\u003ccode\u003e943b456\u003c/code\u003e\u003c/a\u003e Release: 0.18.3 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/55ab8737ae818b47c28a17fb6102b3eb94208c06\"\u003e\u003ccode\u003e55ab873\u003c/code\u003e\u003c/a\u003e Fix: Fix Shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/5e9680be84369cf64c90f70a0f2ddac6cd27f15f\"\u003e\u003ccode\u003e5e9680b\u003c/code\u003e\u003c/a\u003e Release: 0.18.2 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/582\"\u003e#582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/59440f1aa593917b4c27997b22cb9eac54b54040\"\u003e\u003ccode\u003e59440f1\u003c/code\u003e\u003c/a\u003e Build: Fix package discovery (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/b6440a2fe70dd0629d3b882c8fb0e7bfba13f922\"\u003e\u003ccode\u003eb6440a2\u003c/code\u003e\u003c/a\u003e Chore: Add more type hints in from_shape module (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prefect` from 3.6.9 to 3.6.24\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PrefectHQ/prefect/releases\"\u003eprefect's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.6.24 - A watched flow never boils\u003c/h2\u003e\n\u003cp\u003eNote: unwatched flows also never boil\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNew Features 🎉\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eflow-run watch\u003c/code\u003e command to watch any flow run until it reaches a terminal state by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21260\"\u003e#21260\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ewith_context()\u003c/code\u003e for propagating Prefect run context into user-spawned subprocesses by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21304\"\u003e#21304\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements ➕➕\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd bounded queue support to \u003ccode\u003eQueueService\u003c/code\u003e to prevent OOM during server outages by \u003ca href=\"https://github.com/zionts\"\u003e\u003ccode\u003e@​zionts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21033\"\u003e#21033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd time-based checkpoint to events websocket client by \u003ca href=\"https://github.com/zangell44\"\u003e\u003ccode\u003e@​zangell44\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21264\"\u003e#21264\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eposition\u003c/code\u003e to block schema properties for UI field ordering by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21307\"\u003e#21307\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd opt-in BuildKit/buildx support via \u003ccode\u003epython-on-whales\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21286\"\u003e#21286\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove default timeout on \u003ccode\u003esuspend_flow_run\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21285\"\u003e#21285\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003ePREFECT_CLIENT_CUSTOM_HEADERS\u003c/code\u003e in standalone version check by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21262\"\u003e#21262\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug Fixes 🐞\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ePrefectFutureList.result()\u003c/code\u003e raising \u003ccode\u003eAttributeError\u003c/code\u003e after flow resolution by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21221\"\u003e#21221\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Jinja template parameter type coercion in \u003ccode\u003eRunDeployment\u003c/code\u003e actions by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21231\"\u003e#21231\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eprefect deploy --all\u003c/code\u003e to respect default work pool settings by \u003ca href=\"https://github.com/bdalpe\"\u003e\u003ccode\u003e@​bdalpe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21258\"\u003e#21258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eUnicodeDecodeError\u003c/code\u003e when subprocess outputs non-UTF-8 bytes by \u003ca href=\"https://github.com/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21267\"\u003e#21267\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eValueError\u003c/code\u003e when deploying flows whose source is outside cwd by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21281\"\u003e#21281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInline orphan condition into batch delete to prevent vacuum timeout by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21298\"\u003e#21298\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDefault missing \u003ccode\u003eContent-Type\u003c/code\u003e to \u003ccode\u003eapplication/json\u003c/code\u003e for old client compatibility by \u003ca href=\"https://github.com/chuqCTC\"\u003e\u003ccode\u003e@​chuqCTC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21302\"\u003e#21302\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eallow_failure()\u003c/code\u003e not working with mapped tasks in \u003ccode\u003ewait_for\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21305\"\u003e#21305\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003ePREFECT_SERVER_ANALYTICS_ENABLED\u003c/code\u003e env var in CLI by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21315\"\u003e#21315\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve field aliases during Block serialization with \u003ccode\u003einclude_secrets\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21306\"\u003e#21306\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003edotenv_values\u003c/code\u003e when \u003ccode\u003e.env\u003c/code\u003e is not a regular file by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21320\"\u003e#21320\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix heartbeat starvation under CPU-bound workloads by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21276\"\u003e#21276\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eEventsWorker\u003c/code\u003e class variable mutation and add \u003ccode\u003e_on_item_dropped\u003c/code\u003e for queue cleanup by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21273\"\u003e#21273\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve deployment concurrency lease ID across state transitions by \u003ca href=\"https://github.com/bunchesofdonald\"\u003e\u003ccode\u003e@​bunchesofdonald\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21280\"\u003e#21280\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDevelopment \u0026amp; Tidiness 🧹\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flaky test: switch work queue tests to in-process client by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21042\"\u003e#21042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pre-commit hook to prevent double backticks by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21211\"\u003e#21211\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix flaky test: handle \u003ccode\u003eCancelledError\u003c/code\u003e during sync concurrency slot release by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21212\"\u003e#21212\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit client tests into two matrix jobs to avoid CI timeouts by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21213\"\u003e#21213\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace bare \u003ccode\u003eexcept:\u003c/code\u003e with explicit \u003ccode\u003eException\u003c/code\u003e/\u003ccode\u003eBaseException\u003c/code\u003e branches in \u003ccode\u003erun_flow()\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21228\"\u003e#21228\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise versioningit default-version so Dependabot \u003ccode\u003euv lock\u003c/code\u003e succeeds by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21230\"\u003e#21230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit orchestration tests into core and API suites by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21232\"\u003e#21232\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet versioningit \u003ccode\u003edefault-tag\u003c/code\u003e above integration floors by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21234\"\u003e#21234\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch Python dependabot updates weekly with grouping by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21242\"\u003e#21242\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Docker CI job failing on dependabot PRs by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21243\"\u003e#21243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd document-changes skill and CI workflow by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21248\"\u003e#21248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove internal \u003ccode\u003eRunner\u003c/code\u003e usage from bundle execution and CLI paths by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21252\"\u003e#21252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExclude auto-generated docs from document-changes skill by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21275\"\u003e#21275\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove Postgres container to a service in python-tests workflow by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21282\"\u003e#21282\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/PrefectHQ/prefect/commit/195d63c90a0f478ab6366c15a9d2159804136219\"\u003e\u003ccode\u003e195d63c\u003c/code\u003e\u003c/a\u003e docs: Add release notes for 3.6.24 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21322\"\u003e#21322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/d4d531034448cd8f5bf8c5d199e509800c5f8011\"\u003e\u003ccode\u003ed4d5310\u003c/code\u003e\u003c/a\u003e Fix heartbeat starvation under CPU-bound workloads (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21276\"\u003e#21276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/f76299fd680a8462a340cd56aef1f7b2e88d3ea4\"\u003e\u003ccode\u003ef76299f\u003c/code\u003e\u003c/a\u003e Add opt-in BuildKit/buildx support via python-on-whales (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21286\"\u003e#21286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/6c3994096c8eab8bb376f747870fe53ea6b7dff9\"\u003e\u003ccode\u003e6c39940\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003ewith_context()\u003c/code\u003e for logging from subprocesses (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21304\"\u003e#21304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/b1dea50d55b868f8e183c2f03c2bb230868e091a\"\u003e\u003ccode\u003eb1dea50\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21319\"\u003e#21319\u003c/a\u003e: Skip dotenv_values when .env is not a regular file (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21320\"\u003e#21320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/316330b174f625fc63b899706cc15f42acd4f7cd\"\u003e\u003ccode\u003e316330b\u003c/code\u003e\u003c/a\u003e Remove expired docs banner (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21321\"\u003e#21321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/d325a6c5e52b8f18da30376babd55f280857f7e4\"\u003e\u003ccode\u003ed325a6c\u003c/code\u003e\u003c/a\u003e Update AGENTS.md files for f03e181 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21318\"\u003e#21318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/f03e18107c07cdd327c732af3d7cd782e079b178\"\u003e\u003ccode\u003ef03e181\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eposition\u003c/code\u003e to block schema properties for UI field ordering (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21307\"\u003e#21307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/4a5e03a1b8788d625cb4ca0c78e0f5b898cb2a86\"\u003e\u003ccode\u003e4a5e03a\u003c/code\u003e\u003c/a\u003e fix: preserve field aliases during Block serialization with include_secrets (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/af02e07e3c36d2b9aa7463a097fd72c2750d74ff\"\u003e\u003ccode\u003eaf02e07\u003c/code\u003e\u003c/a\u003e Respect PREFECT_SERVER_ANALYTICS_ENABLED env var in CLI (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21315\"\u003e#21315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.9...3.6.24\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.4 to 7.13.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.5 — 2026-03-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eissue 2138\u003c/code\u003e_ describes a memory leak that happened when repeatedly\nusing the Coverage API with in-memory data. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the markdown-formatted coverage report didn't fully escape special\ncharacters in file paths (\u003ccode\u003eissue 2141\u003c/code\u003e\u003cem\u003e). This would be very unlikely to\ncause a problem, but now it's done properly, thanks to \u003ccode\u003eEllie Ayla \u0026lt;pull 2142_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the C extension wouldn't build on VS2019, but now it does (\u003ccode\u003eissue 2145\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2138: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2138\"\u003ecoveragepy/coveragepy#2138\u003c/a\u003e\n.. _issue 2141: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2141\"\u003ecoveragepy/coveragepy#2141\u003c/a\u003e\n.. _pull 2142: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2142\"\u003ecoveragepy/coveragepy#2142\u003c/a\u003e\n.. _issue 2145: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2145\"\u003ecoveragepy/coveragepy#2145\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-4:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c88da144eef8cf78424331e5cbbde3e002eef43f\"\u003e\u003ccode\u003ec88da14\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e2ac3e1ef644370101ff365acad3431d16076512\"\u003e\u003ccode\u003ee2ac3e1\u003c/code\u003e\u003c/a\u003e build: sample HTML shouldn't include the status.json file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/910f8f336541c2dcb4e9ec468144c7eb4a7779ac\"\u003e\u003ccode\u003e910f8f3\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3a4819c24d3d20cb2670b99141517812ffa3fab0\"\u003e\u003ccode\u003e3a4819c\u003c/code\u003e\u003c/a\u003e style: make workflows more uniform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2a53705f5fe588158b8a8d37ff3beee86388b9e4\"\u003e\u003ccode\u003e2a53705\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 4 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e7c878d201db819416b978150944d9a842d22b18\"\u003e\u003ccode\u003ee7c878d\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ab4db406a9c35acf977cf3ddb94a78d696b77bc5\"\u003e\u003ccode\u003eab4db40\u003c/code\u003e\u003c/a\u003e build: use --generate-hashes when pinning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a438753eef870441044cef588e29ce4b9a28adf1\"\u003e\u003ccode\u003ea438753\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/7b33457d2c6367dfd5a563239998b3980444e090\"\u003e\u003ccode\u003e7b33457\u003c/code\u003e\u003c/a\u003e refactor: some leftover pyupgrade 3.10 bits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2ff968db91a7cdafe6f6569ac7659a3a93a2da07\"\u003e\u003ccode\u003e2ff968d\u003c/code\u003e\u003c/a\u003e refactor: this type wasn't used anywhere\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.4...7.13.5\"\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.46 to 2.0.48\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.48\u003c/h1\u003e\n\u003cp\u003eReleased: March 2, 2026\u003c/p\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [bug]\u003c/strong\u003e Fixed a critical issue in \u003ccode\u003eEngine\u003c/code\u003e where connections created in\nconjunction with the \u003ccode\u003eDialectEvents.do_connect()\u003c/code\u003e event listeners\nwould receive shared, mutable collections for the connection arguments,\nleading to a variety of potential issues including unlimited growth of the\nargument list as well as elements within the parameter dictionary being\nshared among concurrent connection calls.  In particular this could impact\ndo_connect routines making use of complex mutable authentication\nstructures.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13144\"\u003e#13144\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.0.47\u003c/h1\u003e\n\u003cp\u003eReleased: February 24, 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 when using ORM mappings with Python 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e feature\nthat no longer requires \u0026quot;future annotations\u0026quot;, where the ORM's introspection\nof the \u003ccode\u003e__init__\u003c/code\u003e method of mapped classes would fail if non-present\nidentifiers in annotations were present.  The vendored \u003ccode\u003egetfullargspec()\u003c/code\u003e\nmethod has been amended to use \u003ccode\u003eFormat.FORWARDREF\u003c/code\u003e under Python 3.14 to\nprevent resolution of names that aren't present.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13104\"\u003e#13104\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [usecase]\u003c/strong\u003e The connection object returned by \u003ccode\u003e_engine.Engine.raw_connection()\u003c/code\u003e\nnow supports the context manager protocol, automatically returning the\nconnection to the pool when exiting the context.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13116\"\u003e#13116\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed an issue in the PostgreSQL dialect where foreign key constraint\nreflection would incorrectly swap or fail to capture \u003ccode\u003eonupdate\u003c/code\u003e and\n\u003ccode\u003eondelete\u003c/code\u003e values when these clauses appeared in a different order than\nexpected in the constraint definition. This issue primarily affected\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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 `css-inline` from 0.20.0 to 0.20.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Stranger6667/css-inline/releases\"\u003ecss-inline's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[C] Release 0.20.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ehtml5ever\u003c/code\u003e to \u003ccode\u003e0.39\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eselectors\u003c/code\u003e to \u003ccode\u003e0.36\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when inlining styles onto elements with existing inline \u003ccode\u003estyle\u003c/code\u003e attributes. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when \u003ccode\u003eminify_css\u003c/code\u003e is enabled due to separator mismatch during property lookup. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Java] Release 0.20.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ehtml5ever\u003c/code\u003e to \u003ccode\u003e0.39\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eselectors\u003c/code\u003e to \u003ccode\u003e0.36\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when inlining styles onto elements with existing inline \u003ccode\u003estyle\u003c/code\u003e attributes. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when \u003ccode\u003eminify_css\u003c/code\u003e is enabled due to separator mismatch during property lookup. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[JavaScript] Release 0.20.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ehtml5ever\u003c/code\u003e to \u003ccode\u003e0.39\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eselectors\u003c/code\u003e to \u003ccode\u003e0.36\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when inlining styles onto elements with existing inline \u003ccode\u003estyle\u003c/code\u003e attributes. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when \u003ccode\u003eminify_css\u003c/code\u003e is enabled due to separator mismatch during property lookup. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[PHP] Release 0.20.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ehtml5ever\u003c/code\u003e to \u003ccode\u003e0.39\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eselectors\u003c/code\u003e to \u003ccode\u003e0.36\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when inlining styles onto elements with existing inline \u003ccode\u003estyle\u003c/code\u003e attributes. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when \u003ccode\u003eminify_css\u003c/code\u003e is enabled due to separator mismatch during property lookup. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Python] Release 0.20.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ehtml5ever\u003c/code\u003e to \u003ccode\u003e0.39\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eselectors\u003c/code\u003e to \u003ccode\u003e0.36\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Stranger6667/css-inline/blob/master/CHANGELOG.md\"\u003ecss-inline's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.20.1] - 2026-03-26\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ehtml5ever\u003c/code\u003e to \u003ccode\u003e0.39\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eselectors\u003c/code\u003e to \u003ccode\u003e0.36\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when inlining styles onto elements with existing inline \u003ccode\u003estyle\u003c/code\u003e attributes. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when \u003ccode\u003eminify_css\u003c/code\u003e is enabled due to separator mismatch during property lookup. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\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/Stranger6667/css-inline/commit/7d6847862f337e583adb505f2c606a57ddaf9746\"\u003e\u003ccode\u003e7d68478\u003c/code\u003e\u003c/a\u003e chore(c): Release 0.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/ae5802548375552285bd9ebb5538425e2b1f18a4\"\u003e\u003ccode\u003eae58025\u003c/code\u003e\u003c/a\u003e chore(python): Release 0.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/63aa891d1ed981ee3c295d540cb2c70dab6f5970\"\u003e\u003ccode\u003e63aa891\u003c/code\u003e\u003c/a\u003e build(deps): bump picomatch from 2.3.1 to 2.3.2 in /bindings/javascript\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/e813347ea8817c802b1efa8256ffbbbccb63d4f2\"\u003e\u003ccode\u003ee813347\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump nokogiri from 1.18.10 to 1.19.1 in /bindings/ruby\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/89f881401b0c0a9d96d5fb1c6efbb0e17ea3bcc6\"\u003e\u003ccode\u003e89f8814\u003c/code\u003e\u003c/a\u003e build(deps): bump flatted from 3.3.3 to 3.4.2 in /bindings/javascript\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/66b1c5cee3a061c4d10c9f375081598ab1812a16\"\u003e\u003ccode\u003e66b1c5c\u003c/code\u003e\u003c/a\u003e docs: Update README \u0026amp; changelogs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/49eccbf06735b6556c90692834c1a408cd65d644\"\u003e\u003ccode\u003e49eccbf\u003c/code\u003e\u003c/a\u003e build(deps): bump undici from 6.22.0 to 6.24.1 in /bindings/javascript\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/e1c92fcdb8188667c4e58552027ee6d5fb88774d\"\u003e\u003ccode\u003ee1c92fc\u003c/code\u003e\u003c/a\u003e build(deps): bump rustls-webpki in /bindings/ruby/ext/css_inline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/e34094f33bc8e9d8e56f5ec6ea533e3d35bb2203\"\u003e\u003ccode\u003ee34094f\u003c/code\u003e\u003c/a\u003e build(deps): bump rustls-webpki in /bindings/ruby\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/77d743cbe0e839cc2a2d60f10bc2ba3ccbdf6bd3\"\u003e\u003ccode\u003e77d743c\u003c/code\u003e\u003c/a\u003e build(deps): bump quinn-proto in /bindings/ruby/ext/css_inline\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Stranger6667/css-inline/compare/c-v0.20.0...c-v0.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/MTES-MCT/monitorenv/pull/2830","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MTES-MCT%2Fmonitorenv/issues/2830","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2830/packages"},{"uuid":"4119184945","node_id":"PR_kwDOROLWo87Mm-cP","number":47,"state":"open","title":"chore(deps): Bump the python-minor group across 1 directory with 10 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-03-23T08:35:16.000Z","updated_at":"2026-03-23T08:35:17.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python-minor","update_count":10,"packages":[{"name":"fastapi","old_version":"0.133.0","new_version":"0.135.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.41.0","new_version":"0.42.0"},{"name":"sqlalchemy","old_version":"2.0.47","new_version":"2.0.48"},{"name":"geoalchemy2","old_version":"0.18.3","new_version":"0.18.4","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"redis","old_version":"7.2.0","new_version":"7.3.0","repository_url":"https://github.com/redis/redis-py"},{"name":"hiredis","old_version":"3.3.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"sentry-sdk","old_version":"2.53.0","new_version":"2.55.0"},{"name":"testcontainers","old_version":"4.14.1","new_version":"4.14.2"},{"name":"coverage","old_version":"7.13.4","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"ruff","old_version":"0.15.2","new_version":"0.15.7","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.133.0` | `0.135.1` |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.41.0` | `0.42.0` |\n| [sqlalchemy[asyncio]](https://github.com/sqlalchemy/sqlalchemy) | `2.0.47` | `2.0.48` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.18.3` | `0.18.4` |\n| [redis](https://github.com/redis/redis-py) | `7.2.0` | `7.3.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.3.0` | `3.3.1` |\n| [sentry-sdk[fastapi]](https://github.com/getsentry/sentry-python) | `2.53.0` | `2.55.0` |\n| [testcontainers[postgres,redis]](https://github.com/testcontainers/testcontainers-python) | `4.14.1` | `4.14.2` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.4` | `7.13.5` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.2` | `0.15.7` |\n\n\nUpdates `fastapi` from 0.133.0 to 0.135.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.135.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed in the request async exit stack. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15038\"\u003e#15038\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15007\"\u003e#15007\u003c/a\u003e by \u003ca href=\"https://github.com/adityagiri3600\"\u003e\u003ccode\u003e@​adityagiri3600\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update Skill, optimize context, trim and refactor into references. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15031\"\u003e#15031\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👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15037\"\u003e#15037\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 FastAPI People - Contributors and Translators. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15029\"\u003e#15029\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 FastAPI GitHub topic repositories. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15036\"\u003e#15036\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Server Sent Events. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15030\"\u003e#15030\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/server-sent-events/\"\u003eServer-Sent Events (SSE)\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.134.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for streaming JSON Lines and binary data with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15022\"\u003e#15022\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eThis also upgrades Starlette from \u003ccode\u003e\u0026gt;=0.40.0\u003c/code\u003e to \u003ccode\u003e\u0026gt;=0.46.0\u003c/code\u003e, as it's needed to properly unrwap and re-raise exceptions from exception groups.\u003c/li\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/stream-json-lines/\"\u003eStream JSON Lines\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAnd new docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/stream-data/\"\u003eStream Data\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update Library Agent Skill with streaming responses. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15024\"\u003e#15024\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 docs for responses and new stream with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15023\"\u003e#15023\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 \u003ccode\u003eawait\u003c/code\u003e in \u003ccode\u003eStreamingResponse\u003c/code\u003e code example to allow cancellation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14681\"\u003e#14681\u003c/a\u003e by \u003ca href=\"https://github.com/casperdcl\"\u003e\u003ccode\u003e@​casperdcl\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Rename \u003ccode\u003edocs_src/websockets\u003c/code\u003e to \u003ccode\u003edocs_src/websockets_\u003c/code\u003e to avoid import errors. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14979\"\u003e#14979\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Run tests with \u003ccode\u003epytest-xdist\u003c/code\u003e and \u003ccode\u003epytest-cov\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14992\"\u003e#14992\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.133.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add FastAPI Agent Skill. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14982\"\u003e#14982\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eRead more about it in \u003ca href=\"https://tiangolo.com/ideas/library-agent-skills/\"\u003eLibrary Agent Skills\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Fix all tests are skipped on Windows. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14994\"\u003e#14994\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/ca5f60ee72f35fb2134d8b5d26bbb75965bcff66\"\u003e\u003ccode\u003eca5f60e\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/87f75aa62c1dde90f4dfbfa7fc2c33127d757d34\"\u003e\u003ccode\u003e87f75aa\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8a9258b169dce3e321f614c14b1877c18750d6c7\"\u003e\u003ccode\u003e8a9258b\u003c/code\u003e\u003c/a\u003e 🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/60385078233e00f9f13307ff038f12f88fc5c240\"\u003e\u003ccode\u003e6038507\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c796ba4f46a6e81477ce44eabe13fd01d82f2c4a\"\u003e\u003ccode\u003ec796ba4\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Experts (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15037\"\u003e#15037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b24aa03b888b78dd2ec6540d47c84a8676d6a7cb\"\u003e\u003ccode\u003eb24aa03\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2c6104752a97273976c8a63e897de98a48f19ce0\"\u003e\u003ccode\u003e2c61047\u003c/code\u003e\u003c/a\u003e ✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15007\"\u003e#15007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3bbeef8a2687fdf34d4de2d304a59135a30e63c\"\u003e\u003ccode\u003ee3bbeef\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d726c8cb2b8e00279487fa8661a5276d2ff2125f\"\u003e\u003ccode\u003ed726c8c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cf514e6d3839ca69ca45a55a6f862e74892339b9\"\u003e\u003ccode\u003ecf514e6\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Contributors and Translators (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15029\"\u003e#15029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.133.0...0.135.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.41.0 to 0.42.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[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.42.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEscape brackets and backslash in httptools \u003ccode\u003eHEADER_RE\u003c/code\u003e regex (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2824\"\u003e#2824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix multiple issues in websockets sans-io implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2825\"\u003e#2825\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2825\"\u003eKludex/uvicorn#2825\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.41.0...0.42.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.41.0...0.42.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0 (March 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEscape brackets and backslash in httptools \u003ccode\u003eHEADER_RE\u003c/code\u003e regex (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2824\"\u003e#2824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix multiple issues in websockets sans-io implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2825\"\u003e#2825\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/02bed6f8c38e74f684bb0e572977a9bfdc1f6fea\"\u003e\u003ccode\u003e02bed6f\u003c/code\u003e\u003c/a\u003e Version 0.42.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2852\"\u003e#2852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d8f25013161d8206e129e39bf48432d3a85e1744\"\u003e\u003ccode\u003ed8f2501\u003c/code\u003e\u003c/a\u003e chore: pre-create Config objects in benchmarks to measure protocol hot paths ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9dbb7836bb0fdb446d083ecd8dc5a2a95bb96b98\"\u003e\u003ccode\u003e9dbb783\u003c/code\u003e\u003c/a\u003e Add WebSocket protocol benchmarks for wsproto and websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2849\"\u003e#2849\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/b3c69da8c1a36e1834e614abe38243671e156077\"\u003e\u003ccode\u003eb3c69da\u003c/code\u003e\u003c/a\u003e Use bytearray for request body accumulation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3f3ebee20f46504a3f7279dd72f9c24ce9070b11\"\u003e\u003ccode\u003e3f3ebee\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003epytest-xdist\u003c/code\u003e for CodSpeed benchmark runs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2847\"\u003e#2847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d072de754f825bee4710363dd49d41efd5285dcc\"\u003e\u003ccode\u003ed072de7\u003c/code\u003e\u003c/a\u003e Add fragmented body benchmark for chunked body accumulation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2846\"\u003e#2846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/e300c2c75d71bea6f8d1799ca6f182f1e5583aaa\"\u003e\u003ccode\u003ee300c2c\u003c/code\u003e\u003c/a\u003e Add CodSpeed benchmark suite for HTTP protocol hot paths (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2844\"\u003e#2844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/1fa697651bacf10d72f74de104ead814ce6fcdc0\"\u003e\u003ccode\u003e1fa6976\u003c/code\u003e\u003c/a\u003e Escape brackets and backslash in httptools HEADER_RE regex (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2824\"\u003e#2824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/59ec1de7a4f07afbd139812f033f3af8b784de74\"\u003e\u003ccode\u003e59ec1de\u003c/code\u003e\u003c/a\u003e Fix multiple issues in websockets sansio implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2825\"\u003e#2825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2fc0efcdd958abd3adbe6ea19682408d6b2e1b18\"\u003e\u003ccode\u003e2fc0efc\u003c/code\u003e\u003c/a\u003e Clarify Windows asyncio event loop selection in docs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2843\"\u003e#2843\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.41.0...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy[asyncio]` from 2.0.47 to 2.0.48\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[asyncio]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.48\u003c/h1\u003e\n\u003cp\u003eReleased: March 2, 2026\u003c/p\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [bug]\u003c/strong\u003e Fixed a critical issue in \u003ccode\u003eEngine\u003c/code\u003e where connections created in\nconjunction with the \u003ccode\u003eDialectEvents.do_connect()\u003c/code\u003e event listeners\nwould receive shared, mutable collections for the connection arguments,\nleading to a variety of potential issues including unlimited growth of the\nargument list as well as elements within the parameter dictionary being\nshared among concurrent connection calls.  In particular this could impact\ndo_connect routines making use of complex mutable authentication\nstructures.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13144\"\u003e#13144\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geoalchemy2` from 0.18.3 to 0.18.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: fix shapely import by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/588\"\u003egeoalchemy/geoalchemy2#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/589\"\u003egeoalchemy/geoalchemy2#589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Make Coveralls optional since the service is down at the moment by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/590\"\u003egeoalchemy/geoalchemy2#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: try the official Coveralls action by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/592\"\u003egeoalchemy/geoalchemy2#592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.4 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/591\"\u003egeoalchemy/geoalchemy2#591\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Move to the official Coveralls action - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Fix shapely import - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\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/geoalchemy/geoalchemy2/commit/beb96c39754704a2ec712de3857d72b8a8ecc4d3\"\u003e\u003ccode\u003ebeb96c3\u003c/code\u003e\u003c/a\u003e Release: 0.18.4 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/6266c25a12b3d406c403db2112e7c55bf3739d97\"\u003e\u003ccode\u003e6266c25\u003c/code\u003e\u003c/a\u003e CI: Move to the official Coveralls action (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f402f6347454374b7719e612a5ebe5a1a766c8fa\"\u003e\u003ccode\u003ef402f63\u003c/code\u003e\u003c/a\u003e CI: Make Coveralls optional since the service is down at the moment (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/590\"\u003e#590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/36ebd0f650d1c60b2e24c896d4662818f0162414\"\u003e\u003ccode\u003e36ebd0f\u003c/code\u003e\u003c/a\u003e Fix: fix setuptools deprecation warning (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f11a1dadb94a31272cb58f3ef04f07490d174d34\"\u003e\u003ccode\u003ef11a1da\u003c/code\u003e\u003c/a\u003e Fix: Fix shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.2.0 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eOpenTelemetry Native Metrics Support for asynchronous clients\u003c/strong\u003e\nAdded comprehensive OpenTelemetry metrics support for asynchronous clients following the \u003ca href=\"https://opentelemetry.io/docs/specs/semconv/database/database-metrics/\"\u003eOpenTelemetry Database Client Semantic Conventions\u003c/a\u003e.\nMetric groups include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCommand metrics: Operation duration with retry tracking\u003c/li\u003e\n\u003cli\u003eConnection basic: Connection count and creation time\u003c/li\u003e\n\u003cli\u003eResiliency: Errors, handoffs, timeout relaxation\u003c/li\u003e\n\u003cli\u003eConnection advanced: Wait time and use time\u003c/li\u003e\n\u003cli\u003ePubsub metrics: Published and received messages\u003c/li\u003e\n\u003cli\u003eStream metrics: Processing duration and maintenance notifications\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded OTel instrumentation and metrics export for async client (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3977\"\u003e#3977\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[async] Adding access to cluster client's nodes_manager and set_response_callback in ClusterPipeline objects (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3989\"\u003e#3989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(connection): Ensure we have an initialized protocol in connection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3981\"\u003e#3981\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use KeysT for blpop and brpop keys parameter type annotation (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3987\"\u003e#3987\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3990\"\u003e#3990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3985\"\u003e#3985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: replace 3 bare except clauses with except Exception (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3980\"\u003e#3980\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/turanalmammadov\"\u003e\u003ccode\u003e@​turanalmammadov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/haosenwang1018\"\u003e\u003ccode\u003e@​haosenwang1018\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/Medno\"\u003e\u003ccode\u003e@​Medno\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.2.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle connection attributes conditionally for metrics and set connection data on exceptions in cluster error handling (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3964\"\u003e#3964\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚠️ Deprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved batch_size and consumer_name attributes from OTel metrics (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3978\"\u003e#3978\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixing error handling of connection buffer purging of closed connections. Enabling troubleshooting logging for maintenance notifications e2e tests. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3971\"\u003e#3971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix protocol validation: replace finally with else and store parsed int (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3965\"\u003e#3965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn copies from _get_free/in_use_connections and fix async _mock (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3967\"\u003e#3967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing shard channel message types to async PubSub (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3966\"\u003e#3966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix issues with ClusterPipeline connection management (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3804\"\u003e#3804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(pubsub): avoid UnicodeDecodeError on reconnect with binary channel names (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHold references to ClusterNode disconnect task (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3826\"\u003e#3826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove remaining imports of typing_extensions (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3873\"\u003e#3873\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/dotlambda\"\u003e\u003ccode\u003e@​dotlambda\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/rhoboro\"\u003e\u003ccode\u003e@​rhoboro\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/skylarkoo7\"\u003e\u003ccode\u003e@​skylarkoo7\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/praboud\"\u003e\u003ccode\u003e@​praboud\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/8ecbc7a728792ab9c71078cb330a64c225cb3351\"\u003e\u003ccode\u003e8ecbc7a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/11043df86ed5f892cde1f34f08f3450f13bb6339\"\u003e\u003ccode\u003e11043df\u003c/code\u003e\u003c/a\u003e typing: accept single-key input for blpop and brpop (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3990\"\u003e#3990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d9581250202123ebf68d299e8f2ea79fa9bd7210\"\u003e\u003ccode\u003ed958125\u003c/code\u003e\u003c/a\u003e fix: use KeysT for blpop and brpop keys parameter type annotation (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3987\"\u003e#3987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/75bf91b8a28bfc3f8417e58d1b78bd112ffcf6de\"\u003e\u003ccode\u003e75bf91b\u003c/code\u003e\u003c/a\u003e [async] Adding access to cluster client's nodes_manager and set_response_call...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/abf5bcb2ded3f393cd3d74803b058df325e3755c\"\u003e\u003ccode\u003eabf5bcb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3985\"\u003e#3985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/5b0303bf90792cfdfff951f446c71ec7baf83e0e\"\u003e\u003ccode\u003e5b0303b\u003c/code\u003e\u003c/a\u003e fix: replace 3 bare except clauses with except Exception (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3980\"\u003e#3980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/e9fba8689f74e4aea45c8b9d75e517e29c54a76a\"\u003e\u003ccode\u003ee9fba86\u003c/code\u003e\u003c/a\u003e Added OTel instrumentation and metrics export for async client (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3977\"\u003e#3977\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7ce513d262288fb2d79a1d59dff0cf5ff0cb13b0\"\u003e\u003ccode\u003e7ce513d\u003c/code\u003e\u003c/a\u003e fix(connection): Ensure we have an initialized protocol in connection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3981\"\u003e#3981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/8e3a5b2f10677c58951fd04f79db1802f79a9bea\"\u003e\u003ccode\u003e8e3a5b2\u003c/code\u003e\u003c/a\u003e remove remaining imports of typing_extensions (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3873\"\u003e#3873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/5b46430e23748d85140b143cbce02523e284482e\"\u003e\u003ccode\u003e5b46430\u003c/code\u003e\u003c/a\u003e Hold references to ClusterNode disconnect task (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3826\"\u003e#3826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.2.0...v7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.3.0 to 3.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cp\u003eThis release fixes a compatibility issue with Python 3.15:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMNT: do not use deprecated load_module method (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/pull/218\"\u003eredis/hiredis-py#218\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/tacaswell\"\u003e\u003ccode\u003e@​tacaswell\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3cb8f069006f7138620b065fba973ccc490bde3d\"\u003e\u003ccode\u003e3cb8f06\u003c/code\u003e\u003c/a\u003e Version 3.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/2836c965d28606fecfc8989059edb36a0c4fb320\"\u003e\u003ccode\u003e2836c96\u003c/code\u003e\u003c/a\u003e MNT: do not use deprecated load_module method (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/218\"\u003e#218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.3.0...v3.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sdk[fastapi]` from 2.53.0 to 2.55.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk[fastapi]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.55.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003ch4\u003eAnthropic\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRecord finish reasons in AI monitoring spans by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5678\"\u003e#5678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003egen_ai.chat\u003c/code\u003e spans for asynchronous \u003ccode\u003emessages.stream()\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5572\"\u003e#5572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit AI Client Spans for synchronous \u003ccode\u003emessages.stream()\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5565\"\u003e#5565\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet gen_ai.response.id span attribute by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5662\"\u003e#5662\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egen_ai.system\u003c/code\u003e attribute to spans by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5661\"\u003e#5661\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePydantic Ai\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eSupport ImageUrl content type in span instrumentation by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5629\"\u003e#5629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd tool description to execute_tool spans by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5596\"\u003e#5596\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(crons) Add owner field to MonitorConfig by \u003ca href=\"https://github.com/julwhitney13\"\u003e\u003ccode\u003e@​julwhitney13\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5610\"\u003e#5610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(otlp) Add collector_url option to OTLPIntegration by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5603\"\u003e#5603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Truncate list-based message content in AI monitoring by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5631\"\u003e#5631\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(anthropic) Close span on \u003ccode\u003eGeneratorExit\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5643\"\u003e#5643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(celery) Propagate user-set headers by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5581\"\u003e#5581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(langchain) Wrap finish_reason in array for gen_ai span attribute by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5666\"\u003e#5666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(logging) Fix deadlock in log batcher by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5684\"\u003e#5684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(profiler) Prevent buffer race condition during rapid start/stop cycles by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5622\"\u003e#5622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(utils) Avoid double serialization of strings in safe_serialize by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5587\"\u003e#5587\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable unused import ruff check and fix unused imports by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5652\"\u003e#5652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation 📚\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(openai-agents) Remove inapplicable comment by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5495\"\u003e#5495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd AGENTS.md by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5579\"\u003e#5579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eset_attribute\u003c/code\u003e example to changelog by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5578\"\u003e#5578\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003ch4\u003eAnthropic\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCheck system and response ID attributes on spans created by \u003ccode\u003estream()\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5665\"\u003e#5665\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip accumulation logic for unexpected types in streamed response by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5564\"\u003e#5564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFactor out streamed result handling by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5563\"\u003e#5563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStream valid JSON by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5641\"\u003e#5641\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop mocking response iterator by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5573\"\u003e#5573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOpenai Agents\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md\"\u003esentry-sdk[fastapi]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.55.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003ch4\u003eAnthropic\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRecord finish reasons in AI monitoring spans by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5678\"\u003e#5678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003egen_ai.chat\u003c/code\u003e spans for asynchronous \u003ccode\u003emessages.stream()\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5572\"\u003e#5572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit AI Client Spans for synchronous \u003ccode\u003emessages.stream()\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5565\"\u003e#5565\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet gen_ai.response.id span attribute by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5662\"\u003e#5662\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egen_ai.system\u003c/code\u003e attribute to spans by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5661\"\u003e#5661\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePydantic Ai\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eSupport ImageUrl content type in span instrumentation by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5629\"\u003e#5629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd tool description to execute_tool spans by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5596\"\u003e#5596\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(crons) Add owner field to MonitorConfig by \u003ca href=\"https://github.com/julwhitney13\"\u003e\u003ccode\u003e@​julwhitney13\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5610\"\u003e#5610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(otlp) Add collector_url option to OTLPIntegration by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5603\"\u003e#5603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Truncate list-based message content in AI monitoring by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5631\"\u003e#5631\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(anthropic) Close span on \u003ccode\u003eGeneratorExit\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5643\"\u003e#5643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(celery) Propagate user-set headers by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5581\"\u003e#5581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(langchain) Wrap finish_reason in array for gen_ai span attribute by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5666\"\u003e#5666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(logging) Fix deadlock in log batcher by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5684\"\u003e#5684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(profiler) Prevent buffer race condition during rapid start/stop cycles by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5622\"\u003e#5622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(utils) Avoid double serialization of strings in safe_serialize by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5587\"\u003e#5587\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable unused import ruff check and fix unused imports by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5652\"\u003e#5652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation 📚\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(openai-agents) Remove inapplicable comment by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5495\"\u003e#5495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd AGENTS.md by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5579\"\u003e#5579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eset_attribute\u003c/code\u003e example to changelog by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5578\"\u003e#5578\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003ch4\u003eAnthropic\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCheck system and response ID attributes on spans created by \u003ccode\u003estream()\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5665\"\u003e#5665\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip accumulation logic for unexpected types in streamed response by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5564\"\u003e#5564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFactor out streamed result handling by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5563\"\u003e#5563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStream valid JSON by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5641\"\u003e#5641\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop mocking response iterator by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5573\"\u003e#5573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOpenai Agents\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/038a429023b9092503f65d554e7c2ad230bba542\"\u003e\u003ccode\u003e038a429\u003c/code\u003e\u003c/a\u003e release: 2.55.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/b29c4bb5ed300d63b4f78eeb1c69c1c6e0f9ec9b\"\u003e\u003ccode\u003eb29c4bb\u003c/code\u003e\u003c/a\u003e fix(logging): Fix deadlock in log batcher (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5684\"\u003e#5684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/b905cd3297fd824fc0f7ce41c9d67a4e85b43fc2\"\u003e\u003ccode\u003eb905cd3\u003c/code\u003e\u003c/a\u003e feat(anthropic): Record finish reasons in AI monitoring spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5678\"\u003e#5678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/6ea663f71d404bf7a261f31a22602ed85fb93544\"\u003e\u003ccode\u003e6ea663f\u003c/code\u003e\u003c/a\u003e fix(langchain): Wrap finish_reason in array for gen_ai span attribute (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5666\"\u003e#5666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/6345af9598de0dd730e85048e5fc68733bbd8b98\"\u003e\u003ccode\u003e6345af9\u003c/code\u003e\u003c/a\u003e fix(ai): Truncate list-based message content in AI monitoring (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5631\"\u003e#5631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/01346a9f2d6c900fed8d830c31143a6c089f0fc2\"\u003e\u003ccode\u003e01346a9\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/create-github-app-token from 2.2.1 to 3.0.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5667\"\u003e#5667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/0b946246062956e5228329b3a140c1ad3891800b\"\u003e\u003ccode\u003e0b94624\u003c/code\u003e\u003c/a\u003e build(deps): bump getsentry/testing-ai-sdk-integrations from 285c012e522f2415...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/39cf94d458093392c78f92aa167f566827b0f30d\"\u003e\u003ccode\u003e39cf94d\u003c/code\u003e\u003c/a\u003e build(deps): bump getsentry/craft from 2.23.1 to 2.24.1 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5668\"\u003e#5668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/ada153bcdc96813064bacccbc523d66cc1368dfe\"\u003e\u003ccode\u003eada153b\u003c/code\u003e\u003c/a\u003e ref: Add cont profiling support to span first (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5672\"\u003e#5672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/0b5f4f85b7d7fd93a6f8dc7932e6b3599c7b3da9\"\u003e\u003ccode\u003e0b5f4f8\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update test matrix with new releases (03/16) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5671\"\u003e#5671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-python/compare/2.53.0...2.55.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `testcontainers[postgres,redis]` from 4.14.1 to 4.14.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/testcontainers/testcontainers-python/releases\"\u003etestcontainers[postgres,redis]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etestcontainers: v4.14.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/testcontainers/testcontainers-python/compare/testcontainers-v4.14.1...testcontainers-v4.14.2\"\u003e4.14.2\u003c/a\u003e (2026-03-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ekafka:\u003c/strong\u003e allow configurable listener name and security protocol (\u003ca href=\"https://redirect.github.com/testcontainers/testcontainers-python/issues/966\"\u003e#966\u003c/a\u003e) (\u003ca href=\"https://github.com/testcontainers/testcontainers-python/commit/44dd40b48c3a5020b487bae5d460124d9e594ac3\"\u003e44dd40b\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/testcontainers/testcontainers-python/blob/main/CHANGELOG.md\"\u003etestcontainers[postgres,redis]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/testcontainers/testcontainers-python/compare/testcontainers-v4.14.1...testcontainers-v4.14.2\"\u003e4.14.2\u003c/a\u003e (2026-03-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ekafka:\u003c/strong\u003e allow configurable listener name and security protocol (\u003ca href=\"https://redirect.github.com/testcontainers/testcontainers-python/issues/966\"\u003e#966\u003c/a\u003e) (\u003ca href=\"https://github.com/testcontainers/testcontainers-python/commit/44dd40b48c3a5020b487bae5d460124d9e594ac3\"\u003e44dd40b\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/testcontainers/testcontainers-python/commit/5c67efb8e51885021e6d41cd8bc60300978a8377\"\u003e\u003ccode\u003e5c67efb\u003c/code\u003e\u003c/a\u003e chore(main): release testcontainers 4.14.2 (\u003ca href=\"https://redirect.github.com/testcontainers/testcontainers-python/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/testcontainers/testcontainers-python/commit/44dd40b48c3a5020b487bae5d460124d9e594ac3\"\u003e\u003ccode\u003e44dd40b\u003c/code\u003e\u003c/a\u003e feat(kafka): allow configurable listener name and security protocol (\u003ca href=\"https://redirect.github.com/testcontainers/testcontainers-python/issues/966\"\u003e#966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/testcontainers/testcontainers-python/commit/a78475a92dabfc1b7166320f851280ab783f6b8a\"\u003e\u003ccode\u003ea78475a\u003c/code\u003e\u003c/a\u003e chore(main): Migrate to uv (\u003ca href=\"https://redirect.github.com/testcontainers/testcontainers-python/issues/960\"\u003e#960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/testcontainers/testcontainers-python/compare/testcontainers-v4.14.1...testcontainers-v4.14.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.4 to 7.13.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.5 — 2026-03-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eissue 2138\u003c/code\u003e_ describes a memory leak that happened when repeatedly\nusing the Coverage API with in-memory data. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the markdown-formatted coverage report didn't fully escape special\ncharacters in file paths (\u003ccode\u003eissue 2141\u003c/code\u003e\u003cem\u003e). This would be very unlikely to\ncause a problem, but now it's done properly, thanks to \u003ccode\u003eEllie Ayla \u0026lt;pull 2142_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the C extension wouldn't build on VS2019, but now it does (\u003ccode\u003eissue 2145\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2138: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2138\"\u003ecoveragepy/coveragepy#2138\u003c/a\u003e\n.. _issue 2141: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2141\"\u003ecoveragepy/coveragepy#2141\u003c/a\u003e\n.. _pull 2142: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2142\"\u003ecoveragepy/coveragepy#2142\u003c/a\u003e\n.. _issue 2145: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2145\"\u003ecoveragepy/coveragepy#2145\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-4:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c88da144eef8cf78424331e5cbbde3e002eef43f\"\u003e\u003ccode\u003ec88da14\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e2ac3e1ef644370101ff365acad3431d16076512\"\u003e\u003ccode\u003ee2ac3e1\u003c/code\u003e\u003c/a\u003e build: sample HTML shouldn't include the status.json file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/910f8f336541c2dcb4e9ec468144c7eb4a7779ac\"\u003e\u003ccode\u003e910f8f3\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3a4819c24d3d20cb2670b99141517812ffa3fab0\"\u003e\u003ccode\u003e3a4819c\u003c/code\u003e\u003c/a\u003e style: make workflows more uniform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2a53705f5fe588158b8a8d37ff3beee86388b9e4\"\u003e\u003ccode\u003e2a53705\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 4 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e7c878d201db819416b978150944d9a842d22b18\"\u003e\u003ccode\u003ee7c878d\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ab4db406a9c35acf977cf3ddb94a78d696b77bc5\"\u003e\u003ccode\u003eab4db40\u003c/code\u003e\u003c/a\u003e build: use --generate-hashes when pinning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a438753eef870441044cef588e29ce4b9a28adf1\"\u003e\u003ccode\u003ea438753\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/7b33457d2c6367dfd5a563239998b3980444e090\"\u003e\u003ccode\u003e7b33457\u003c/code\u003e\u003c/a\u003e refactor: some leftover pyupgrade 3.10 bits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2ff968db91a7cdafe6f6569ac7659a3a93a2da07\"\u003e\u003ccode\u003e2ff968d\u003c/code\u003e\u003c/a\u003e refactor: this type wasn't used anywhere\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.4...7.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.2 to 0.15.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.7\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisplay output severity in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23845\"\u003e#23845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't show \u003ccode\u003enoqa\u003c/code\u003e hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't return code actions for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23905\"\u003e#23905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd company AI policy to contributing guide (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24021\"\u003e#24021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument editor features for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23924\"\u003e#23924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse PEP 639 license information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19661\"\u003e#19661\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tmimmanuel\"\u003e\u003ccode\u003e@​tmimmanuel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statxc\"\u003e\u003ccode\u003e@​statxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.7\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.7/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.15.7/ruff-installer.ps1 | iex\u0026quot;\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.7\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisplay output severity in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23845\"\u003e#23845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't show \u003ccode\u003enoqa\u003c/code\u003e hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't return code actions for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23905\"\u003e#23905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd company AI policy to contributing guide (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24021\"\u003e#24021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument editor features for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23924\"\u003e#23924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse PEP 639 license information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19661\"\u003e#19661\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tmimmanuel\"\u003e\u003ccode\u003e@​tmimmanuel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statxc\"\u003e\u003ccode\u003e@​statxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-12.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003elazy\u003c/code\u003e import parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23755\"\u003e#23755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for star-unpacking of comprehensions (PEP 798) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23788\"\u003e#23788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject semantic syntax errors for lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23757\"\u003e#23757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop a few rules from the preview default set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23879\"\u003e#23879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag \u003ccode\u003eVariable.get()\u003c/code\u003e calls outside of task execution context (\u003ccode\u003eAIR003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23584\"\u003e#23584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag runtime-varying values in DAG/task constructor arguments (\u003ccode\u003eAIR304\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23631\"\u003e#23631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003edelattr-with-constant\u003c/code\u003e (\u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23737\"\u003e#23737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0ef39de46c006994fb1e90f7bd4ba09c0b2c1f79\"\u003e\u003ccode\u003e0ef39de\u003c/code\u003e\u003c/a\u003e Bump 0.15.7 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24049\"\u003e#24049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/beb543b5c666be9fd3f13c88df818f202b63e9d0\"\u003e\u003ccode\u003ebeb543b\u003c/code\u003e\u003c/a\u003e [ty] ecosystem-analyzer: Fail on newly panicking projects (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24043\"\u003e#24043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/378fe730929ccd67a7f2426b3012093da814b31d\"\u003e\u003ccode\u003e378fe73\u003c/code\u003e\u003c/a\u003e Don't show noqa hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b5665bd18eecab4d3b5ab1256b36904cd99a4c57\"\u003e\u003ccode\u003eb5665bd\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6e20f2219020e61eeae29458013d2d3684f75a79\"\u003e\u003ccode\u003e6e20f22\u003c/code\u003e\u003c/a\u003e test: migrate \u003ccode\u003eshow_settings\u003c/code\u003e and \u003ccode\u003eversion\u003c/code\u003e tests to use \u003ccode\u003eCliTest\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23702\"\u003e#23702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f99b284c1fe1399a82da7f6669467488017d44a7\"\u003e\u003ccode\u003ef99b284\u003c/code\u003e\u003c/a\u003e Drain file watcher events during test setup (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24030\"\u003e#24030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/744c996c35016a8c0e05aa2823f4f822ac7b842c\"\u003e\u003ccode\u003e744c996\u003c/code\u003e\u003c/a\u003e [ty] Filter out unsatisfiable inference attempts during generic call narrowin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/16160958bdafb6106b6fffc72ffe2e4db0c0ac33\"\u003e\u003ccode\u003e1616095\u003c/code\u003e\u003c/a\u003e [ty] Avoid inferring intersection types for call arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23933\"\u003e#23933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7f275f431bf8c60d59601b74d441e9f4bef89f35\"\u003e\u003ccode\u003e7f275f4\u003c/code\u003e\u003c/a\u003e [ty] Pin mypy_primer in \u003ccode\u003esetup_primer_project.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24020\"\u003e#24020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7255e362e4b171a641222279cd28d2ca88a74fdc\"\u003e\u003ccode\u003e7255e36\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.2...0.15.7\"\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/MK023/TorinoParking/pull/47","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MK023%2FTorinoParking/issues/47","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/47/packages"},{"uuid":"4034008230","node_id":"PR_kwDOPhFbmM7Ifdm3","number":533,"state":"open","title":"build(deps): bump geoalchemy2 from 0.18.3 to 0.18.4","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-03-06T12:36:40.000Z","updated_at":"2026-03-08T23:12:22.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"geoalchemy2","old_version":"0.18.3","new_version":"0.18.4","repository_url":"https://github.com/geoalchemy/geoalchemy2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) from 0.18.3 to 0.18.4.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: fix shapely import by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/588\"\u003egeoalchemy/geoalchemy2#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/589\"\u003egeoalchemy/geoalchemy2#589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Make Coveralls optional since the service is down at the moment by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/590\"\u003egeoalchemy/geoalchemy2#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: try the official Coveralls action by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/592\"\u003egeoalchemy/geoalchemy2#592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.4 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/591\"\u003egeoalchemy/geoalchemy2#591\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Move to the official Coveralls action - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Fix shapely import - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\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/geoalchemy/geoalchemy2/commit/beb96c39754704a2ec712de3857d72b8a8ecc4d3\"\u003e\u003ccode\u003ebeb96c3\u003c/code\u003e\u003c/a\u003e Release: 0.18.4 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/6266c25a12b3d406c403db2112e7c55bf3739d97\"\u003e\u003ccode\u003e6266c25\u003c/code\u003e\u003c/a\u003e CI: Move to the official Coveralls action (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f402f6347454374b7719e612a5ebe5a1a766c8fa\"\u003e\u003ccode\u003ef402f63\u003c/code\u003e\u003c/a\u003e CI: Make Coveralls optional since the service is down at the moment (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/590\"\u003e#590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/36ebd0f650d1c60b2e24c896d4662818f0162414\"\u003e\u003ccode\u003e36ebd0f\u003c/code\u003e\u003c/a\u003e Fix: fix setuptools deprecation warning (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f11a1dadb94a31272cb58f3ef04f07490d174d34\"\u003e\u003ccode\u003ef11a1da\u003c/code\u003e\u003c/a\u003e Fix: Fix shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\"\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=geoalchemy2\u0026package-manager=pip\u0026previous-version=0.18.3\u0026new-version=0.18.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/TrigpointingUK/platform/pull/533","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/TrigpointingUK%2Fplatform/issues/533","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/533/packages"},{"uuid":"4019951657","node_id":"PR_kwDOEcrRgc7Hxfmb","number":4878,"state":"open","title":"[Tech] Python - Bump the non-major-dependencies group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["tech. enhancement","dependencies"],"assignees":["VincentAntoine"],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-04T04:25:08.000Z","updated_at":"2026-03-04T04:26:14.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[Tech] Python - Bump","group_name":"non-major-dependencies","update_count":10,"packages":[{"name":"coverage","old_version":"7.13.3","new_version":"7.13.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"geoalchemy2","old_version":"0.18.1","new_version":"0.18.4","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"css-inline","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/Stranger6667/css-inline"},{"name":"pypdf","old_version":"6.6.2","new_version":"6.7.5","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"clickhouse-connect","old_version":"0.10.0","new_version":"0.13.0","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"prefect","old_version":"3.6.9","new_version":"3.6.20","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"plotly","old_version":"6.5.2","new_version":"6.6.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"sphinx-autoapi","old_version":"3.6.1","new_version":"3.7.0","repository_url":"https://github.com/readthedocs/sphinx-autoapi"}],"path":null,"ecosystem":"pip"},"body":"Bumps the non-major-dependencies group with 10 updates in the /pipeline directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.3` | `7.13.4` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.18.1` | `0.18.4` |\n| [css-inline](https://github.com/Stranger6667/css-inline) | `0.19.1` | `0.20.0` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.6.2` | `6.7.5` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.10.0` | `0.13.0` |\n| [prefect](https://github.com/PrefectHQ/prefect) | `3.6.9` | `3.6.20` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.5.2` | `6.6.0` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `3.0.2` | `3.1.0` |\n| [sphinx-autoapi](https://github.com/readthedocs/sphinx-autoapi) | `3.6.1` | `3.7.0` |\n\n\nUpdates `coverage` from 7.13.3 to 7.13.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.4 — 2026-02-09\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the third-party code fix in 7.13.3 required examining the parent\ndirectories where coverage was run. In the unusual situation that one of the\nparent directories is unreadable, a PermissionError would occur, as\ndescribed in \u003ccode\u003eissue 2129\u003c/code\u003e_. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: in test suites that change sys.path, coverage.py could fail with\n\u0026quot;RuntimeError: Set changed size during iteration\u0026quot; as described and fixed in\n\u003ccode\u003epull 2130\u003c/code\u003e_. Thanks, Noah Fatsi.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWe now publish ppc64le wheels, thanks to \u003ccode\u003ePankhudi Jain \u0026lt;pull 2121_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2121: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2121\"\u003ecoveragepy/coveragepy#2121\u003c/a\u003e\n.. _issue 2129: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2129\"\u003ecoveragepy/coveragepy#2129\u003c/a\u003e\n.. _pull 2130: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2130\"\u003ecoveragepy/coveragepy#2130\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-3:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/4f78d57f83ff8a4976043e8a8fcea24b91891840\"\u003e\u003ccode\u003e4f78d57\u003c/code\u003e\u003c/a\u003e build: no need to publish status.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/f8616ff5e6386648aa40300e36c6cecda79a1faa\"\u003e\u003ccode\u003ef8616ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/fcf8c68db986970e6000bf75ec3c3115ede867df\"\u003e\u003ccode\u003efcf8c68\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/189ecfd000867e5c74e7d74ee3bd75742d5d584d\"\u003e\u003ccode\u003e189ecfd\u003c/code\u003e\u003c/a\u003e docs: thanks Pankhudi Jain for ppc64le wheels \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2121\"\u003e#2121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/58aade0eb92d9d1e3755c65a5cf7a951e7bd6c6a\"\u003e\u003ccode\u003e58aade0\u003c/code\u003e\u003c/a\u003e build: add support for ppc64le architecture (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2121\"\u003e#2121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8ea42c874fbfc96535156300225bda22bc93ac68\"\u003e\u003ccode\u003e8ea42c8\u003c/code\u003e\u003c/a\u003e chore: bump actions/attest-build-provenance (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2131\"\u003e#2131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c09595f70758b78156efbd7c8f034799d09322aa\"\u003e\u003ccode\u003ec09595f\u003c/code\u003e\u003c/a\u003e docs: Janine put a lot of effort into debugging issue \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2128\"\u003e#2128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8ee1760f40b8822aa2b11ff95ab63481be68a8a0\"\u003e\u003ccode\u003e8ee1760\u003c/code\u003e\u003c/a\u003e docs: Greg wrote a great issue: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2129\"\u003e#2129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/76ba0437611fc2787cb0450dc94b02bc2848fdee\"\u003e\u003ccode\u003e76ba043\u003c/code\u003e\u003c/a\u003e docs: thanks, Noah Fatsi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/371fcc5727e9d8fba816061756af94646b4bcfbb\"\u003e\u003ccode\u003e371fcc5\u003c/code\u003e\u003c/a\u003e fix: set fixed paths_list in TreeMatcher init (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2130\"\u003e#2130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.3...7.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.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/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\u003c/blockquote\u003e\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\u003c/blockquote\u003e\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.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 `geoalchemy2` from 0.18.1 to 0.18.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: fix shapely import by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/588\"\u003egeoalchemy/geoalchemy2#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/589\"\u003egeoalchemy/geoalchemy2#589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Make Coveralls optional since the service is down at the moment by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/590\"\u003egeoalchemy/geoalchemy2#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: try the official Coveralls action by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/592\"\u003egeoalchemy/geoalchemy2#592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.4 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/591\"\u003egeoalchemy/geoalchemy2#591\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/584\"\u003egeoalchemy/geoalchemy2#584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.3 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/587\"\u003egeoalchemy/geoalchemy2#587\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/575\"\u003egeoalchemy/geoalchemy2#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/576\"\u003egeoalchemy/geoalchemy2#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/577\"\u003egeoalchemy/geoalchemy2#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/578\"\u003egeoalchemy/geoalchemy2#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/580\"\u003egeoalchemy/geoalchemy2#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Fix package discovery by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/581\"\u003egeoalchemy/geoalchemy2#581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.2 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/582\"\u003egeoalchemy/geoalchemy2#582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.2\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Move to the official Coveralls action - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Fix shapely import - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Fix package discovery - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/576\"\u003e#576\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/geoalchemy/geoalchemy2/commit/beb96c39754704a2ec712de3857d72b8a8ecc4d3\"\u003e\u003ccode\u003ebeb96c3\u003c/code\u003e\u003c/a\u003e Release: 0.18.4 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/6266c25a12b3d406c403db2112e7c55bf3739d97\"\u003e\u003ccode\u003e6266c25\u003c/code\u003e\u003c/a\u003e CI: Move to the official Coveralls action (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f402f6347454374b7719e612a5ebe5a1a766c8fa\"\u003e\u003ccode\u003ef402f63\u003c/code\u003e\u003c/a\u003e CI: Make Coveralls optional since the service is down at the moment (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/590\"\u003e#590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/36ebd0f650d1c60b2e24c896d4662818f0162414\"\u003e\u003ccode\u003e36ebd0f\u003c/code\u003e\u003c/a\u003e Fix: fix setuptools deprecation warning (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f11a1dadb94a31272cb58f3ef04f07490d174d34\"\u003e\u003ccode\u003ef11a1da\u003c/code\u003e\u003c/a\u003e Fix: Fix shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/943b456ee3726db7a4b890309d9e864866bd8614\"\u003e\u003ccode\u003e943b456\u003c/code\u003e\u003c/a\u003e Release: 0.18.3 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/55ab8737ae818b47c28a17fb6102b3eb94208c06\"\u003e\u003ccode\u003e55ab873\u003c/code\u003e\u003c/a\u003e Fix: Fix Shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/5e9680be84369cf64c90f70a0f2ddac6cd27f15f\"\u003e\u003ccode\u003e5e9680b\u003c/code\u003e\u003c/a\u003e Release: 0.18.2 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/582\"\u003e#582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/59440f1aa593917b4c27997b22cb9eac54b54040\"\u003e\u003ccode\u003e59440f1\u003c/code\u003e\u003c/a\u003e Build: Fix package discovery (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/b6440a2fe70dd0629d3b882c8fb0e7bfba13f922\"\u003e\u003ccode\u003eb6440a2\u003c/code\u003e\u003c/a\u003e Chore: Add more type hints in from_shape module (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `css-inline` from 0.19.1 to 0.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Stranger6667/css-inline/releases\"\u003ecss-inline's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[C] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapply_width_attributes\u003c/code\u003e and \u003ccode\u003eapply_height_attributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Java] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapplyWidthAttributes\u003c/code\u003e and \u003ccode\u003eapplyHeightAttributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[JavaScript] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapplyWidthAttributes\u003c/code\u003e and \u003ccode\u003eapplyHeightAttributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[PHP] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapplyWidthAttributes\u003c/code\u003e and \u003ccode\u003eapplyHeightAttributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Python] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapply_width_attributes\u003c/code\u003e and \u003ccode\u003eapply_height_attributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ePyO3\u003c/code\u003e to \u003ccode\u003e0.28.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Stranger6667/css-inline/blob/master/CHANGELOG.md\"\u003ecss-inline's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.20.0] - 2026-02-07\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eInlineOptions::apply_width_attributes\u003c/code\u003e and \u003ccode\u003eInlineOptions::apply_height_attributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/f1187da861cb5644f034e17f7279ebb35aa651fb\"\u003e\u003ccode\u003ef1187da\u003c/code\u003e\u003c/a\u003e chore(c): Release 0.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/044f555c5d6a3b1db5d4f825006e1e414f155466\"\u003e\u003ccode\u003e044f555\u003c/code\u003e\u003c/a\u003e chore(python): Release 0.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/3ae971da16e7cc3e39b360c0b3c16987096be493\"\u003e\u003ccode\u003e3ae971d\u003c/code\u003e\u003c/a\u003e chore(python): Update PyO3 to 0.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/a21fd68d7132e641094d34dcd82b91c7ef8bd541\"\u003e\u003ccode\u003ea21fd68\u003c/code\u003e\u003c/a\u003e chore(ruby): Update dependency on css-inline to 0.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/fb56972e9581b597db030d546d7f405b6d7eb16a\"\u003e\u003ccode\u003efb56972\u003c/code\u003e\u003c/a\u003e build(deps): bump bytes in /bindings/ruby/ext/css_inline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/9cca63a36b354e774dea1b9d0bbdf5a7a82bd00b\"\u003e\u003ccode\u003e9cca63a\u003c/code\u003e\u003c/a\u003e build(deps): bump bytes from 1.10.1 to 1.11.1 in /bindings/ruby\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/59c31809d91628fb6804dfd0d96cbe64d59a9541\"\u003e\u003ccode\u003e59c3180\u003c/code\u003e\u003c/a\u003e feat: Options to add dimension HTML attributes from CSS properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/74e9718821417e9ac5eec29c412efb8bc0975a95\"\u003e\u003ccode\u003e74e9718\u003c/code\u003e\u003c/a\u003e build(deps): update getrandom requirement in /bindings/javascript\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/8a48718b7f41cfc75672463af309a0ee2c30bc7d\"\u003e\u003ccode\u003e8a48718\u003c/code\u003e\u003c/a\u003e build(deps): bump tar from 7.5.6 to 7.5.7 in /bindings/javascript\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/069cf59819b5ee58ae0421f5588f06c4fe561781\"\u003e\u003ccode\u003e069cf59\u003c/code\u003e\u003c/a\u003e docs: Update README\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Stranger6667/css-inline/compare/c-v0.19.1...c-v0.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypdf` from 6.6.2 to 6.7.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/py-pdf/pypdf/releases\"\u003epypdf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.7.5, 2026-03-02\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.4...6.7.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.4, 2026-02-27\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.3...6.7.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e) by \u003ca href=\"https://github.com/rampageservices\"\u003e\u003ccode\u003e@​rampageservices\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of page boxes defined on \u003ccode\u003e/Pages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3650\"\u003e#3650\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.1...6.7.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.1, 2026-02-17\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDetect cyclic references when accessing TreeObject.children (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3645\"\u003e#3645\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit size of \u003ccode\u003e/ToUnicode\u003c/code\u003e entries (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3646\"\u003e#3646\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit FlateDecode recovery attempts (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3644\"\u003e#3644\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid own object replacement logic in \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3638\"\u003e#3638\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix UnboundLocalError when update_page_form_field_values with /Sig (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3634\"\u003e#3634\u003c/a\u003e) by \u003ca href=\"https://github.com/John-Sharp\"\u003e\u003ccode\u003e@​John-Sharp\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/py-pdf/pypdf/blob/main/CHANGELOG.md\"\u003epypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.7.5, 2026-03-02\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.4...6.7.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.4, 2026-02-27\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.3...6.7.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of page boxes defined on \u003ccode\u003e/Pages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3650\"\u003e#3650\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.1...6.7.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.1, 2026-02-17\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDetect cyclic references when accessing TreeObject.children (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3645\"\u003e#3645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLimit size of \u003ccode\u003e/ToUnicode\u003c/code\u003e entries (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3646\"\u003e#3646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLimit FlateDecode recovery attempts (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3644\"\u003e#3644\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid own object replacement logic in \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3638\"\u003e#3638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix UnboundLocalError when update_page_form_field_values with /Sig (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3634\"\u003e#3634\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid divison by zero when decoding FlateDecode PNG prediction (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3641\"\u003e#3641\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.0...6.7.1\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/7c2bcddd8e3c64903e23398d12b60ef432ff4531\"\u003e\u003ccode\u003e7c2bcdd\u003c/code\u003e\u003c/a\u003e REL: 6.7.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/648c627d2657447dfb1773412af05a0a5103b98f\"\u003e\u003ccode\u003e648c627\u003c/code\u003e\u003c/a\u003e SEC: Improve the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/1aef6fbbf4f138e40e9b68e11089393ea5b64421\"\u003e\u003ccode\u003e1aef6fb\u003c/code\u003e\u003c/a\u003e DEV: Update cache key handling in CI (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3665\"\u003e#3665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/1650bc31e807d8091464c228b7eabd6fef4c6c2a\"\u003e\u003ccode\u003e1650bc3\u003c/code\u003e\u003c/a\u003e REL: 6.7.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/f309c6003746414dc7b5048c19e6d879ff2dc858\"\u003e\u003ccode\u003ef309c60\u003c/code\u003e\u003c/a\u003e SEC: Allow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/993f052748ad7ce0a16d738260f43aa0a9c06872\"\u003e\u003ccode\u003e993f052\u003c/code\u003e\u003c/a\u003e DEV: Bump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3662\"\u003e#3662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/a3c996bffcb03a49e790e540e9229c8d75ff3da5\"\u003e\u003ccode\u003ea3c996b\u003c/code\u003e\u003c/a\u003e DEV: Bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3663\"\u003e#3663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/37de32022e76018a48523795669e95432ba6191e\"\u003e\u003ccode\u003e37de320\u003c/code\u003e\u003c/a\u003e ROB: Deal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/05e6d3c03deaec6b16b53825465537ac9e7a1a14\"\u003e\u003ccode\u003e05e6d3c\u003c/code\u003e\u003c/a\u003e REL: 6.7.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/7a4c8246ed48d9d328fb596942271da47b6d109c\"\u003e\u003ccode\u003e7a4c824\u003c/code\u003e\u003c/a\u003e SEC: Use zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.6.2...6.7.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `clickhouse-connect` from 0.10.0 to 0.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/releases\"\u003eclickhouse-connect's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eBREAKING CHANGE\u003c/strong\u003e: Implement native write path for \u003ccode\u003eVariant\u003c/code\u003e data type with type-aware dispatching. Previously, all values inserted into a \u003ccode\u003eVariant\u003c/code\u003e column were stringified and sent to the server, which would store them in the \u003ccode\u003eString\u003c/code\u003e member if present, or attempt server-side conversion otherwise. Values are now serialized using their native ClickHouse types client-side (e.g. inserting \u003ccode\u003e100\u003c/code\u003e into \u003ccode\u003eVariant(Int64, String)\u003c/code\u003e stores \u003ccode\u003eInt64(100)\u003c/code\u003e instead of \u003ccode\u003eString(\u0026quot;100\u0026quot;)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003eKey changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eValues that don't match any variant member now raise \u003ccode\u003eDataError\u003c/code\u003e instead of being stringified and\ndelegated to the server.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003etyped_variant(value, 'TypeName')\u003c/code\u003e helper is provided for cases where automatic dispatch\ncannot resolve the target type, such as when multiple variant members map to the same Python\ntype (e.g. \u003ccode\u003eArray(UInt32)\u003c/code\u003e vs \u003ccode\u003eArray(String)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eutc_tz_aware=\u0026quot;schema\u0026quot;\u003c/code\u003e mode which returns timezone-aware datetimes only when the server's column schema explicitly defines a timezone (e.g. \u003ccode\u003eDateTime('UTC')\u003c/code\u003e), and naive datetimes for bare \u003ccode\u003eDateTime\u003c/code\u003e columns. This matches the ClickHouse schema definition exactly. Not yet supported for Arrow-based query methods. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/645\"\u003e#645\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type annotations to public API methods in \u003ccode\u003eClient\u003c/code\u003e, \u003ccode\u003eAsyncClient\u003c/code\u003e, \u003ccode\u003eHttpClient\u003c/code\u003e, and \u003ccode\u003eQueryResult\u003c/code\u003e. Ref \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/567\"\u003e#567\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edict_add\u003c/code\u003e parameter typed as builtin \u003ccode\u003eany\u003c/code\u003e instead of \u003ccode\u003etyping.Any\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRecognize \u003ccode\u003eUPDATE\u003c/code\u003e as a command so lightweight updates work correctly via \u003ccode\u003eclient.query()\u003c/code\u003e and SQLAlchemy.\u003c/li\u003e\n\u003cli\u003eSQLAlchemy: \u003ccode\u003eGROUP BY\u003c/code\u003e now renders label aliases instead of full expressions which avoids circular reference errors when an alias shadows a source column name in ClickHouse.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/compare/v0.11.0...v0.13.0\"\u003ehttps://github.com/ClickHouse/clickhouse-connect/compare/v0.11.0...v0.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.12.0rc1\u003c/h2\u003e\n\u003ch1\u003eNative Async Client (Pre-release)\u003c/h1\u003e\n\u003cp\u003eThis is a pre-release for testing and feedback on the new native async client built on \u003ca href=\"https://github.com/aio-libs/aiohttp\"\u003eaiohttp\u003c/a\u003e. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/141\"\u003e#141\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eIf you're using the sync client and have been looking for a reason to go async, this is a good opportunity to give it a shot. If you're already using \u003ccode\u003eAsyncClient\u003c/code\u003e, this is a drop-in upgrade. The API surface is identical but under the hood it's completely redesigned.\u003c/p\u003e\n\u003cp\u003ePreviously, the \u003ccode\u003eAsyncClient\u003c/code\u003e was just the sync \u003ccode\u003eurllib3\u003c/code\u003e client wrapped in a thread executor. This is a from-scratch async implementation with real async I/O, proper connection pooling, and a pipelined architecture that streams and processes response data concurrently rather than a read-then-parse pattern, providing a potentially significant performance increase depending on your workload. The old executor-based path still works but is now deprecated and will be removed after release candidate testing and benchmarking is completed.\u003c/p\u003e\n\u003ch2\u003eInstall\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eaiohttp\u003c/code\u003e is now a required dependency for using the native async client, but its installation is not included by default. To install this release candidate with the required \u003ccode\u003eaiohttp\u003c/code\u003e for async use, install \u003ccode\u003eclickhouse_connect\u003c/code\u003e as follows:\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003epip install clickhouse-connect[async]==0.12.0rc1\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003eUsage\u003c/h2\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eimport asyncio\r\n\u003cp\u003eimport clickhouse_connect\u003c/p\u003e\n\u003cp\u003easync def main():\nasync with await clickhouse_connect.get_async_client(host=\u0026quot;localhost\u0026quot;) as client:\n# create a test table\nawait client.command(\n\u0026quot;CREATE TABLE IF NOT EXISTS test_example \u0026quot;\n\u0026quot;(id UInt32, name String) \u0026quot;\n\u0026quot;ENGINE MergeTree ORDER BY id\u0026quot;\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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/ClickHouse/clickhouse-connect/blob/main/CHANGELOG.md\"\u003eclickhouse-connect's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.0, 2026-02-26\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBREAKING CHANGE: Implement native write path for \u003ccode\u003eVariant\u003c/code\u003e data type with type-aware dispatching.\nPreviously, all values inserted into a \u003ccode\u003eVariant\u003c/code\u003e column were stringified and sent to the server, which\nwould store them in the \u003ccode\u003eString\u003c/code\u003e member if present, or attempt server-side conversion otherwise. Values\nare now serialized using their native ClickHouse types client-side (e.g. inserting \u003ccode\u003e100\u003c/code\u003e into\n\u003ccode\u003eVariant(Int64, String)\u003c/code\u003e stores \u003ccode\u003eInt64(100)\u003c/code\u003e instead of \u003ccode\u003eString(\u0026quot;100\u0026quot;)\u003c/code\u003e). Key changes:\n\u003cul\u003e\n\u003cli\u003eValues that don't match any variant member now raise \u003ccode\u003eDataError\u003c/code\u003e instead of being stringified and\ndelegated to the server.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003etyped_variant(value, 'TypeName')\u003c/code\u003e helper is provided for cases where automatic dispatch\ncannot resolve the target type, such as when multiple variant members map to the same Python\ntype (e.g. \u003ccode\u003eArray(UInt32)\u003c/code\u003e vs \u003ccode\u003eArray(String)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eutc_tz_aware=\u0026quot;schema\u0026quot;\u003c/code\u003e mode which returns timezone-aware datetimes only when the server's column schema explicitly defines a timezone (e.g. \u003ccode\u003eDateTime('UTC')\u003c/code\u003e), and naive datetimes for bare \u003ccode\u003eDateTime\u003c/code\u003e columns. This matches the ClickHouse schema definition exactly. Not yet supported for Arrow-based query methods. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/645\"\u003e#645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd type annotations to public API methods in \u003ccode\u003eClient\u003c/code\u003e, \u003ccode\u003eAsyncClient\u003c/code\u003e, \u003ccode\u003eHttpClient\u003c/code\u003e, and \u003ccode\u003eQueryResult\u003c/code\u003e. Ref \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/567\"\u003e#567\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edict_add\u003c/code\u003e parameter typed as builtin \u003ccode\u003eany\u003c/code\u003e instead of \u003ccode\u003etyping.Any\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRecognize \u003ccode\u003eUPDATE\u003c/code\u003e as a command so lightweight updates work correctly via \u003ccode\u003eclient.query()\u003c/code\u003e and SQLAlchemy.\u003c/li\u003e\n\u003cli\u003eSQLAlchemy: \u003ccode\u003eGROUP BY\u003c/code\u003e now renders label aliases instead of full expressions which avoids circular reference errors when an alias shadows a source column name in ClickHouse.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.11.0, 2026-02-10\u003c/h2\u003e\n\u003ch3\u003ePython 3.9 Deprecation\u003c/h3\u003e\n\u003cp\u003ePython 3.9 EOL'd Oct 2025. Support for Python 3.9 is now softly deprecated and has been removed from our CI test matrix but\ndistribution wheels will continue to be built until the 1.0 release or until the builds naturally fail, whichever comes first.\nA \u003ccode\u003eDeprecationWarning\u003c/code\u003e will now be displayed when initializing the client on Python 3.9. Users should plan to upgrade to\nPython 3.10+ as 3.9 compatibility may break unexpectedly in future updates.\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise OperationalError when ResponseSource hits network failure before any data is received. Previously, empty result would be returned. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/620\"\u003e#620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue with DROP table in client temp table test.\u003c/li\u003e\n\u003cli\u003eFixed a bug where InsertContext state was not reset on insert failure, leading to reuse errors when data was passed separately.\u003c/li\u003e\n\u003cli\u003eFixed UTC-equivalent timezone recognition issue where servers returning \u003ccode\u003eEtc/UCT\u003c/code\u003e, \u003ccode\u003eGMT\u003c/code\u003e, or other UTC-equivalent timezone names caused inconsistent behavior with \u003ccode\u003eutc_tz_aware=False\u003c/code\u003e. DateTime columns with explicit UTC timezones now correctly return naive datetimes when \u003ccode\u003eutc_tz_aware=False\u003c/code\u003e regardless of the specific UTC-equivalent timezone name returned by the server. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/629\"\u003e#629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed percent sign (\u003ccode\u003e%\u003c/code\u003e) double encoding in SQLAlchemy string literals when using \u003ccode\u003etext()\u003c/code\u003e queries with \u003ccode\u003eformatDateTime\u003c/code\u003e and similar functions. The cursor now correctly unescapes \u003ccode\u003e%%\u003c/code\u003e back to \u003ccode\u003e%\u003c/code\u003e for non-parameterized queries. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/297\"\u003e#297\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for mid-stream exceptions. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/626\"\u003e#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for QBit data type. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/570\"\u003e#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the ability to create table from PyArrow objects. Addresses \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/588\"\u003e#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlways generate query_id from the client side as a UUID4 if it is not explicitly set. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/596\"\u003e#596\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtend support for creating tables from PyArrow objects to include datetime/timestamp types. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/605\"\u003e#605\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pre-commit hooks for auto-linting contributions at commit time. Addresses \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing type annotation. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/567\"\u003e#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAuto-enable \u003ccode\u003ecancel_http_readonly_queries_on_client_close\u003c/code\u003e setting for HTTP clients to ensure SELECT queries are cancelled on the server when the client disconnects. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/641\"\u003e#641\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/ClickHouse/clickhouse-connect/commit/6bc0c8618397e519b8393ccb0426d64a708e45bd\"\u003e\u003ccode\u003e6bc0c86\u003c/code\u003e\u003c/a\u003e 0.13.0 release prep (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/657\"\u003e#657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/44db0421d6df887ac4c5d0fab7328832beab6311\"\u003e\u003ccode\u003e44db042\u003c/code\u003e\u003c/a\u003e Add GROUP BY alias rendering to ClickHouse SQLAlchemy compiler (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/e2ba0e58a416c1fe620462b4d77db2316c64c190\"\u003e\u003ccode\u003ee2ba0e5\u003c/code\u003e\u003c/a\u003e Add type annotations to public API methods (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/649\"\u003e#649\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/2fc3b5f5aa15934a706423e79053edac68af8670\"\u003e\u003ccode\u003e2fc3b5f\u003c/code\u003e\u003c/a\u003e Fix percent sign double encoding in SQLAlchemy string literals (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/644\"\u003e#644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/4224621e0d9570cc02024598a4d3b1512bc50e5e\"\u003e\u003ccode\u003e4224621\u003c/code\u003e\u003c/a\u003e Implement Variant write path with type-aware dispatching (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/534\"\u003e#534\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/2444667f42ebc4150da49885c9142225676324ff\"\u003e\u003ccode\u003e2444667\u003c/code\u003e\u003c/a\u003e Add utc_tz_aware=\u0026quot;schema\u0026quot; mode for schema-matching datetime output (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/653\"\u003e#653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/9772b8e021c7aa98a12f9f8cdb0b19e758ba4ed1\"\u003e\u003ccode\u003e9772b8e\u003c/code\u003e\u003c/a\u003e Fix errors when doing lightweight UPDATE with execute (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/648\"\u003e#648\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/68a7fa29f7eda008f246d84ff3ac81bbbb72d124\"\u003e\u003ccode\u003e68a7fa2\u003c/code\u003e\u003c/a\u003e update cloud test server info (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/650\"\u003e#650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/eef09a90b8b46375335f9a5a42a52bf7b8f8328e\"\u003e\u003ccode\u003eeef09a9\u003c/code\u003e\u003c/a\u003e 0.11.0 release prep (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/647\"\u003e#647\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/b08a4296b2b34480abf7295cc7c239f1e74d93b4\"\u003e\u003ccode\u003eb08a429\u003c/code\u003e\u003c/a\u003e Fix mypy typing errors by explicitly exporting Client (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/643\"\u003e#643\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/compare/v0.10.0...v0.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prefect` from 3.6.9 to 3.6.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PrefectHQ/prefect/releases\"\u003eprefect's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.6.20 - new cli, who dis?\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements ➕➕\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate CLI from \u003ccode\u003etyper\u003c/code\u003e to \u003ccode\u003ecyclopts\u003c/code\u003e, remove toggle and delegation machinery by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20821\"\u003e#20821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRoute \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e subprocess events and logs through a single parent queue, improving per-task performance by ~28% in log-heavy workloads by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20864\"\u003e#20864\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd configurable subprocess message processors to \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e for custom event/log handling in the parent forwarder by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20869\"\u003e#20869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse distinct FK scan for orphaned log/artifact vacuum queries, reducing cycle time from ~3.6s to ~0.5s on large databases by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20868\"\u003e#20868\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug Fixes 🐞\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid \u003ccode\u003eNone\u003c/code\u003e asset descriptions in events by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20840\"\u003e#20840\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLower default DB vacuum \u003ccode\u003ebatch_size\u003c/code\u003e from 1000 to 200 to prevent query timeouts on Postgres by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20857\"\u003e#20857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix subprocess events silently lost in \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e when task completes before async event forwarding by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20876\"\u003e#20876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix page header breadcrumb truncation for long entity names by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20870\"\u003e#20870\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd truncation to card breadcrumbs and locale format automation count by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20871\"\u003e#20871\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDevelopment \u0026amp; Tidiness 🧹\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePromote \u003ccode\u003e_cyclopts/\u003c/code\u003e to \u003ccode\u003esrc/prefect/cli/\u003c/code\u003e, remove \u003ccode\u003etyper\u003c/code\u003e dependency by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20838\"\u003e#20838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003envm\u003c/code\u003e from clobbering \u003ccode\u003esetup-node\u003c/code\u003e in pre-commit CI by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20854\"\u003e#20854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test timeout to fix flaky concurrency slot release test by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20843\"\u003e#20843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace inline SQLite compilation with pre-built Docker image for faster builds by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20824\"\u003e#20824\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation 📓\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate rate limit docs for unified two-bucket system by \u003ca href=\"https://github.com/zangell44\"\u003e\u003ccode\u003e@​zangell44\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20828\"\u003e#20828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate docs logos and favicon by \u003ca href=\"https://github.com/znicholasbrown\"\u003e\u003ccode\u003e@​znicholasbrown\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20858\"\u003e#20858\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.19...3.6.20\"\u003ehttps://github.com/PrefectHQ/prefect/compare/3.6.19...3.6.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.6.20.dev5: Nightly Development Release\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eDevelopment \u0026amp; Tidiness 🧹\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix subprocess events silently lost in \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20876\"\u003ePrefectHQ/prefect#20876\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.20.dev4...3.6.20.dev5\"\u003ehttps://github.com/PrefectHQ/prefect/compare/3.6.20.dev4...3.6.20.dev5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.6.20.dev4: Nightly Development Release\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eUncategorized\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRoute \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e subprocess events/logs through parent queue by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20864\"\u003ePrefectHQ/prefect#20864\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf(db-vacuum): use distinct FK scan for orphaned log/artifact queries by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20868\"\u003ePrefectHQ/prefect#20868\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.20.dev3...3.6.20.dev4\"\u003ehttps://github.com/PrefectHQ/prefect/compare/3.6.20.dev3...3.6.20.dev4\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/395392ae259a6ff2ab26a3fb1a75969fd897a09b\"\u003e\u003ccode\u003e395392a\u003c/code\u003e\u003c/a\u003e docs: Add release notes for 3.6.20 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20877\"\u003e#20877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/26045e1843b29c76817b4bfdc7340ff010662757\"\u003e\u003ccode\u003e26045e1\u003c/code\u003e\u003c/a\u003e Add hook for \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e subprocess message processing and dbt lo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/a9c5b257d7856889d252ef479db66ccadb129d57\"\u003e\u003ccode\u003ea9c5b25\u003c/code\u003e\u003c/a\u003e chore(deps): bump minimatch in /ui-v2 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20884\"\u003e#20884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/cb7337b6e25a6fc32884a3d6f276ce48e3a75b5e\"\u003e\u003ccode\u003ecb7337b\u003c/code\u003e\u003c/a\u003e perf(docker): replace inline SQLite compilation with pre-built image (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20824\"\u003e#20824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/1dd051e0336b7b805df861e910c9ec1e3f5f4ff8\"\u003e\u003ccode\u003e1dd051e\u003c/code\u003e\u003c/a\u003e chore(deps): bump minimatch, \u003ccode\u003e@​typescript-eslint/eslint-plugin\u003c/code\u003e and \u003ca href=\"https://github.com/typescript\"\u003e\u003ccode\u003e@​typescript\u003c/code\u003e\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/57cc0ec83ab53fce045f7924cc0f80a630810283\"\u003e\u003ccode\u003e57cc0ec\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20882\"\u003e#20882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/11a555615f2fd4cd23fce398e40f87f6cfcad940\"\u003e\u003ccode\u003e11a5556\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20880\"\u003e#20880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/1d02e98e733f4c58d7127d3ade29a38be71161c2\"\u003e\u003ccode\u003e1d02e98\u003c/code\u003e\u003c/a\u003e fix(13-04): apply locale formatting to all count and pagination displays (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20\"\u003e#20\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/15781ee84ddad3ab4f68e20c4cb709ee952e1827\"\u003e\u003ccode\u003e15781ee\u003c/code\u003e\u003c/a\u003e fix(13-03): standardize null indicators to None, concurrency to ∞, fix parame...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/380a0d73ea3a71323b1a1f7fca5549190e926c53\"\u003e\u003ccode\u003e380a0d7\u003c/code\u003e\u003c/a\u003e Fix subprocess events silently lost in \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20876\"\u003e#20876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.9...3.6.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `plotly` from 6.5.2 to 6.6.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.6.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unneeded \u003ccode\u003etype=\u0026quot;text/javascript\u0026quot;\u003c/code\u003e attribute from \u003ccode\u003e\u0026lt;style\u0026gt;\u003c/code\u003e tag [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5454\"\u003e#5454\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/hannob\"\u003e\u003ccode\u003e@​hannob\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eRemove global warning format side effect [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5481\"\u003e#5481\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/emmanuel-ferdman\"\u003e\u003ccode\u003e@​emmanuel-ferdman\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix spurious engine deprecation warning in write_image [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5517\"\u003e#5517\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/mosh3eb\"\u003e\u003ccode\u003e@​mosh3eb\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.3.1 to version 3.4.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v3.4.0\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5527\"\u003e#5527\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd support for clicking legend titles to toggle visibility of all traces in legend [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7698\"\u003e#7698\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd support for shapes to reference multiple axes [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7666\"\u003e#7666\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd support for dashed marker lines in scatter plots [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7673\"\u003e#7673\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eIncrease axis autorange when bar charts have outside text labels, to avoid labels being clipped [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7675\"\u003e#7675\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\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.5.2...v6.6.0\"\u003ehttps://github.com/plotly/plotly.py/compare/v6.5.2...v6.6.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/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.6.0] - 2026-03-02\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unneeded \u003ccode\u003etype=\u0026quot;text/javascript\u0026quot;\u003c/code\u003e attribute from \u003ccode\u003e\u0026lt;style\u0026gt;\u003c/code\u003e tag [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5454\"\u003e#5454\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/hannob\"\u003e\u003ccode\u003e@​hannob\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eRemove global warning format side effect [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5481\"\u003e#5481\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/emmanuel-ferdman\"\u003e\u003ccode\u003e@​emmanuel-ferdman\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix spurious engine deprecation warning in write_image [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5517\"\u003e#5517\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/mosh3eb\"\u003e\u003ccode\u003e@​mosh3eb\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.3.1 to version 3.4.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v3.4.0\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5527\"\u003e#5527\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd support for clicking legend titles to toggle visibility of all traces in legend [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7698\"\u003e#7698\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd support for shapes to reference multiple axes [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7666\"\u003e#7666\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd support for dashed marker lines in scatter plots [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7673\"\u003e#7673\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eIncrease axis autorange when bar charts have outside text labels, to avoid labels being clipped [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7675\"\u003e#7675\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/837d27ec070275f4a18c321defcb24c4ecf5b20f\"\u003e\u003ccode\u003e837d27e\u003c/code\u003e\u003c/a\u003e changes for v6.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/e0278b3dee031cd634806a49b65a7dd7bba61dfe\"\u003e\u003ccode\u003ee0278b3\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/bb783da8cfd54a06794642490a25e1dfc504bc4b\"\u003e\u003ccode\u003ebb783da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5516\"\u003e#5516\u003c/a\u003e from plotly/new-charts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/5aabff0817817cce330260b7f0e759f7fab75f36\"\u003e\u003ccode\u003e5aabff0\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into new-charts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/03fd2ed4dedcf9135e87bf01fee206bc7cac9142\"\u003e\u003ccode\u003e03fd2ed\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5527\"\u003e#5527\u003c/a\u003e from plotly/update-plotlyjs-3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/aee4c33edf5554694cc9b7371e188bda02c90c24\"\u003e\u003ccode\u003eaee4c33\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/46a8aa297ca7158103fc9d4f43feee44fa3ef297\"\u003e\u003ccode\u003e46a8aa2\u003c/code\u003e\u003c/a\u003e update js artifacts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/7dc360cd1f42e997ebef09d2eeb30a6029edc2fa\"\u003e\u003ccode\u003e7dc360c\u003c/code\u003e\u003c/a\u003e update package-lock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotl...\n\n_Description has been truncated_","html_url":"https://github.com/MTES-MCT/monitorfish/pull/4878","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MTES-MCT%2Fmonitorfish/issues/4878","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4878/packages"},{"uuid":"4014045990","node_id":"PR_kwDOLI_1J87HeZuh","number":661,"state":"closed","title":"Bump geoalchemy2 from 0.18.1 to 0.18.4","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-16T12:30:14.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-03T00:36:07.000Z","updated_at":"2026-03-16T12:30:16.000Z","time_to_close":1166047,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"geoalchemy2","old_version":"0.18.1","new_version":"0.18.4","repository_url":"https://github.com/geoalchemy/geoalchemy2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) from 0.18.1 to 0.18.4.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: fix shapely import by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/588\"\u003egeoalchemy/geoalchemy2#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/589\"\u003egeoalchemy/geoalchemy2#589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Make Coveralls optional since the service is down at the moment by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/590\"\u003egeoalchemy/geoalchemy2#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: try the official Coveralls action by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/592\"\u003egeoalchemy/geoalchemy2#592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.4 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/591\"\u003egeoalchemy/geoalchemy2#591\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/584\"\u003egeoalchemy/geoalchemy2#584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.3 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/587\"\u003egeoalchemy/geoalchemy2#587\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/575\"\u003egeoalchemy/geoalchemy2#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/576\"\u003egeoalchemy/geoalchemy2#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/577\"\u003egeoalchemy/geoalchemy2#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/578\"\u003egeoalchemy/geoalchemy2#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/580\"\u003egeoalchemy/geoalchemy2#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Fix package discovery by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/581\"\u003egeoalchemy/geoalchemy2#581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.2 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/582\"\u003egeoalchemy/geoalchemy2#582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.2\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Move to the official Coveralls action - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Fix shapely import - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Fix package discovery - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/576\"\u003e#576\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/geoalchemy/geoalchemy2/commit/beb96c39754704a2ec712de3857d72b8a8ecc4d3\"\u003e\u003ccode\u003ebeb96c3\u003c/code\u003e\u003c/a\u003e Release: 0.18.4 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/6266c25a12b3d406c403db2112e7c55bf3739d97\"\u003e\u003ccode\u003e6266c25\u003c/code\u003e\u003c/a\u003e CI: Move to the official Coveralls action (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f402f6347454374b7719e612a5ebe5a1a766c8fa\"\u003e\u003ccode\u003ef402f63\u003c/code\u003e\u003c/a\u003e CI: Make Coveralls optional since the service is down at the moment (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/590\"\u003e#590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/36ebd0f650d1c60b2e24c896d4662818f0162414\"\u003e\u003ccode\u003e36ebd0f\u003c/code\u003e\u003c/a\u003e Fix: fix setuptools deprecation warning (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f11a1dadb94a31272cb58f3ef04f07490d174d34\"\u003e\u003ccode\u003ef11a1da\u003c/code\u003e\u003c/a\u003e Fix: Fix shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/943b456ee3726db7a4b890309d9e864866bd8614\"\u003e\u003ccode\u003e943b456\u003c/code\u003e\u003c/a\u003e Release: 0.18.3 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/55ab8737ae818b47c28a17fb6102b3eb94208c06\"\u003e\u003ccode\u003e55ab873\u003c/code\u003e\u003c/a\u003e Fix: Fix Shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/5e9680be84369cf64c90f70a0f2ddac6cd27f15f\"\u003e\u003ccode\u003e5e9680b\u003c/code\u003e\u003c/a\u003e Release: 0.18.2 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/582\"\u003e#582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/59440f1aa593917b4c27997b22cb9eac54b54040\"\u003e\u003ccode\u003e59440f1\u003c/code\u003e\u003c/a\u003e Build: Fix package discovery (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/b6440a2fe70dd0629d3b882c8fb0e7bfba13f922\"\u003e\u003ccode\u003eb6440a2\u003c/code\u003e\u003c/a\u003e Chore: Add more type hints in from_shape module (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.4\"\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=geoalchemy2\u0026package-manager=pip\u0026previous-version=0.18.1\u0026new-version=0.18.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Amsterdam/meldingen/pull/661","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amsterdam%2Fmeldingen/issues/661","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/661/packages"},{"uuid":"4008113802","node_id":"PR_kwDOG5WtHM7HLGvm","number":2762,"state":"open","title":"[Tech] Bump the non-major-dependencies group in /pipeline with 4 updates","user":"dependabot[bot]","labels":["tech. enhancement","dependencies"],"assignees":["VincentAntoine"],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-01T19:43:11.000Z","updated_at":"2026-03-01T19:44:02.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[Tech] Bump","group_name":"non-major-dependencies","update_count":4,"packages":[{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"geoalchemy2","old_version":"0.18.1","new_version":"0.18.3","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"prefect","old_version":"3.6.9","new_version":"3.6.20","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"sqlalchemy","old_version":"2.0.46","new_version":"2.0.47","repository_url":"https://github.com/sqlalchemy/sqlalchemy"}],"path":"/pipeline","ecosystem":"pip"},"body":"Bumps the non-major-dependencies group in /pipeline with 4 updates: [python-dotenv](https://github.com/theskumar/python-dotenv), [geoalchemy2](https://github.com/geoalchemy/geoalchemy2), [prefect](https://github.com/PrefectHQ/prefect) and [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy).\n\nUpdates `python-dotenv` 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/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\u003c/blockquote\u003e\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\u003c/blockquote\u003e\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.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 `geoalchemy2` from 0.18.1 to 0.18.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/584\"\u003egeoalchemy/geoalchemy2#584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.3 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/587\"\u003egeoalchemy/geoalchemy2#587\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/575\"\u003egeoalchemy/geoalchemy2#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/576\"\u003egeoalchemy/geoalchemy2#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/577\"\u003egeoalchemy/geoalchemy2#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/578\"\u003egeoalchemy/geoalchemy2#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/580\"\u003egeoalchemy/geoalchemy2#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Fix package discovery by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/581\"\u003egeoalchemy/geoalchemy2#581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.2 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/582\"\u003egeoalchemy/geoalchemy2#582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.2\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Fix package discovery - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/576\"\u003e#576\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/geoalchemy/geoalchemy2/commit/943b456ee3726db7a4b890309d9e864866bd8614\"\u003e\u003ccode\u003e943b456\u003c/code\u003e\u003c/a\u003e Release: 0.18.3 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/55ab8737ae818b47c28a17fb6102b3eb94208c06\"\u003e\u003ccode\u003e55ab873\u003c/code\u003e\u003c/a\u003e Fix: Fix Shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/5e9680be84369cf64c90f70a0f2ddac6cd27f15f\"\u003e\u003ccode\u003e5e9680b\u003c/code\u003e\u003c/a\u003e Release: 0.18.2 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/582\"\u003e#582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/59440f1aa593917b4c27997b22cb9eac54b54040\"\u003e\u003ccode\u003e59440f1\u003c/code\u003e\u003c/a\u003e Build: Fix package discovery (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/b6440a2fe70dd0629d3b882c8fb0e7bfba13f922\"\u003e\u003ccode\u003eb6440a2\u003c/code\u003e\u003c/a\u003e Chore: Add more type hints in from_shape module (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/a44b0dcdfec43af8b53d02875b6edf2d43f9bc70\"\u003e\u003ccode\u003ea44b0dc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/checkout from 4 to 6 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/578\"\u003e#578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/523dd53616e37fb77e8afc4f394074844e8cc6ec\"\u003e\u003ccode\u003e523dd53\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/577\"\u003e#577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/c2a1e17efa69d555c25bfa58a6663419db084c6d\"\u003e\u003ccode\u003ec2a1e17\u003c/code\u003e\u003c/a\u003e Build: Upgrade packaging and formatting tools (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/576\"\u003e#576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/1b4b141aa1ee4fdd8ff03071f025282e29012d35\"\u003e\u003ccode\u003e1b4b141\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/575\"\u003e#575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prefect` from 3.6.9 to 3.6.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PrefectHQ/prefect/releases\"\u003eprefect's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.6.20 - new cli, who dis?\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements ➕➕\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate CLI from \u003ccode\u003etyper\u003c/code\u003e to \u003ccode\u003ecyclopts\u003c/code\u003e, remove toggle and delegation machinery by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20821\"\u003e#20821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRoute \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e subprocess events and logs through a single parent queue, improving per-task performance by ~28% in log-heavy workloads by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20864\"\u003e#20864\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd configurable subprocess message processors to \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e for custom event/log handling in the parent forwarder by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20869\"\u003e#20869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse distinct FK scan for orphaned log/artifact vacuum queries, reducing cycle time from ~3.6s to ~0.5s on large databases by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20868\"\u003e#20868\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug Fixes 🐞\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid \u003ccode\u003eNone\u003c/code\u003e asset descriptions in events by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20840\"\u003e#20840\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLower default DB vacuum \u003ccode\u003ebatch_size\u003c/code\u003e from 1000 to 200 to prevent query timeouts on Postgres by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20857\"\u003e#20857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix subprocess events silently lost in \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e when task completes before async event forwarding by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20876\"\u003e#20876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix page header breadcrumb truncation for long entity names by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20870\"\u003e#20870\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd truncation to card breadcrumbs and locale format automation count by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20871\"\u003e#20871\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDevelopment \u0026amp; Tidiness 🧹\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePromote \u003ccode\u003e_cyclopts/\u003c/code\u003e to \u003ccode\u003esrc/prefect/cli/\u003c/code\u003e, remove \u003ccode\u003etyper\u003c/code\u003e dependency by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20838\"\u003e#20838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003envm\u003c/code\u003e from clobbering \u003ccode\u003esetup-node\u003c/code\u003e in pre-commit CI by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20854\"\u003e#20854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test timeout to fix flaky concurrency slot release test by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20843\"\u003e#20843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace inline SQLite compilation with pre-built Docker image for faster builds by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20824\"\u003e#20824\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation 📓\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate rate limit docs for unified two-bucket system by \u003ca href=\"https://github.com/zangell44\"\u003e\u003ccode\u003e@​zangell44\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20828\"\u003e#20828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate docs logos and favicon by \u003ca href=\"https://github.com/znicholasbrown\"\u003e\u003ccode\u003e@​znicholasbrown\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20858\"\u003e#20858\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.19...3.6.20\"\u003ehttps://github.com/PrefectHQ/prefect/compare/3.6.19...3.6.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.6.20.dev5: Nightly Development Release\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eDevelopment \u0026amp; Tidiness 🧹\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix subprocess events silently lost in \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20876\"\u003ePrefectHQ/prefect#20876\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.20.dev4...3.6.20.dev5\"\u003ehttps://github.com/PrefectHQ/prefect/compare/3.6.20.dev4...3.6.20.dev5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.6.20.dev4: Nightly Development Release\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eUncategorized\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRoute \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e subprocess events/logs through parent queue by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20864\"\u003ePrefectHQ/prefect#20864\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf(db-vacuum): use distinct FK scan for orphaned log/artifact queries by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20868\"\u003ePrefectHQ/prefect#20868\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.20.dev3...3.6.20.dev4\"\u003ehttps://github.com/PrefectHQ/prefect/compare/3.6.20.dev3...3.6.20.dev4\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/395392ae259a6ff2ab26a3fb1a75969fd897a09b\"\u003e\u003ccode\u003e395392a\u003c/code\u003e\u003c/a\u003e docs: Add release notes for 3.6.20 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20877\"\u003e#20877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/26045e1843b29c76817b4bfdc7340ff010662757\"\u003e\u003ccode\u003e26045e1\u003c/code\u003e\u003c/a\u003e Add hook for \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e subprocess message processing and dbt lo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/a9c5b257d7856889d252ef479db66ccadb129d57\"\u003e\u003ccode\u003ea9c5b25\u003c/code\u003e\u003c/a\u003e chore(deps): bump minimatch in /ui-v2 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20884\"\u003e#20884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/cb7337b6e25a6fc32884a3d6f276ce48e3a75b5e\"\u003e\u003ccode\u003ecb7337b\u003c/code\u003e\u003c/a\u003e perf(docker): replace inline SQLite compilation with pre-built image (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20824\"\u003e#20824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/1dd051e0336b7b805df861e910c9ec1e3f5f4ff8\"\u003e\u003ccode\u003e1dd051e\u003c/code\u003e\u003c/a\u003e chore(deps): bump minimatch, \u003ccode\u003e@​typescript-eslint/eslint-plugin\u003c/code\u003e and \u003ca href=\"https://github.com/typescript\"\u003e\u003ccode\u003e@​typescript\u003c/code\u003e\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/57cc0ec83ab53fce045f7924cc0f80a630810283\"\u003e\u003ccode\u003e57cc0ec\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20882\"\u003e#20882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/11a555615f2fd4cd23fce398e40f87f6cfcad940\"\u003e\u003ccode\u003e11a5556\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20880\"\u003e#20880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/1d02e98e733f4c58d7127d3ade29a38be71161c2\"\u003e\u003ccode\u003e1d02e98\u003c/code\u003e\u003c/a\u003e fix(13-04): apply locale formatting to all count and pagination displays (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20\"\u003e#20\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/15781ee84ddad3ab4f68e20c4cb709ee952e1827\"\u003e\u003ccode\u003e15781ee\u003c/code\u003e\u003c/a\u003e fix(13-03): standardize null indicators to None, concurrency to ∞, fix parame...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/380a0d73ea3a71323b1a1f7fca5549190e926c53\"\u003e\u003ccode\u003e380a0d7\u003c/code\u003e\u003c/a\u003e Fix subprocess events silently lost in \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20876\"\u003e#20876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.9...3.6.20\"\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.46 to 2.0.47\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.47\u003c/h1\u003e\n\u003cp\u003eReleased: February 24, 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 when using ORM mappings with Python 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e feature\nthat no longer requires \u0026quot;future annotations\u0026quot;, where the ORM's introspection\nof the \u003ccode\u003e__init__\u003c/code\u003e method of mapped classes would fail if non-present\nidentifiers in annotations were present.  The vendored \u003ccode\u003egetfullargspec()\u003c/code\u003e\nmethod has been amended to use \u003ccode\u003eFormat.FORWARDREF\u003c/code\u003e under Python 3.14 to\nprevent resolution of names that aren't present.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13104\"\u003e#13104\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [usecase]\u003c/strong\u003e The connection object returned by \u003ccode\u003e_engine.Engine.raw_connection()\u003c/code\u003e\nnow supports the context manager protocol, automatically returning the\nconnection to the pool when exiting the context.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13116\"\u003e#13116\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed an issue in the PostgreSQL dialect where foreign key constraint\nreflection would incorrectly swap or fail to capture \u003ccode\u003eonupdate\u003c/code\u003e and\n\u003ccode\u003eondelete\u003c/code\u003e values when these clauses appeared in a different order than\nexpected in the constraint definition. This issue primarily affected\nPostgreSQL-compatible databases such as CockroachDB, which may return \u003ccode\u003eON DELETE\u003c/code\u003e before \u003ccode\u003eON UPDATE\u003c/code\u003e in the constraint definition string. The\nreflection logic now correctly parses both clauses regardless of their\nordering.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13105\"\u003e#13105\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed issue in the \u003ccode\u003eengine_insertmanyvalues\u003c/code\u003e feature where using\nPostgreSQL's \u003ccode\u003eON CONFLICT\u003c/code\u003e clause with\n\u003ccode\u003e_dml.Insert.returning.sort_by_parameter_order\u003c/code\u003e enabled would\ngenerate invalid SQL when the insert used an implicit sentinel (server-side\nautoincrement primary key). The generated SQL would incorrectly declare a\nsentinel counter column in the \u003ccode\u003eimp_sen\u003c/code\u003e table alias without providing\ncorresponding values in the \u003ccode\u003eVALUES\u003c/code\u003e clause, leading to a\n\u003ccode\u003eProgrammingError\u003c/code\u003e indicating column count mismatch. The fix allows batch\nexecution mode when \u003ccode\u003eembed_values_counter\u003c/code\u003e is active, as the embedded\ncounter provides the ordering capability needed even with upsert behaviors,\nrather than unnecessarily downgrading to row-at-a-time execution.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\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/MTES-MCT/monitorenv/pull/2762","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MTES-MCT%2Fmonitorenv/issues/2762","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2762/packages"},{"uuid":"3987127135","node_id":"PR_kwDOEcrRgc7GG9p8","number":4861,"state":"closed","title":"[Tech] Python - Bump the non-major-dependencies group across 1 directory with 8 updates","user":"dependabot[bot]","labels":["tech. enhancement","dependencies"],"assignees":["VincentAntoine"],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-03-04T04:24:32.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-25T04:22:46.000Z","updated_at":"2026-03-04T04:24:34.000Z","time_to_close":604906,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[Tech] Python - Bump","group_name":"non-major-dependencies","update_count":8,"packages":[{"name":"coverage","old_version":"7.13.3","new_version":"7.13.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"geoalchemy2","old_version":"0.18.1","new_version":"0.18.3","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"css-inline","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/Stranger6667/css-inline"},{"name":"pypdf","old_version":"6.6.2","new_version":"6.7.3","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"clickhouse-connect","old_version":"0.10.0","new_version":"0.11.0","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"prefect","old_version":"3.6.9","new_version":"3.6.19","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"sphinx-autoapi","old_version":"3.6.1","new_version":"3.7.0","repository_url":"https://github.com/readthedocs/sphinx-autoapi"}],"path":null,"ecosystem":"pip"},"body":"Bumps the non-major-dependencies group with 8 updates in the /pipeline directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.3` | `7.13.4` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.18.1` | `0.18.3` |\n| [css-inline](https://github.com/Stranger6667/css-inline) | `0.19.1` | `0.20.0` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.6.2` | `6.7.3` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.10.0` | `0.11.0` |\n| [prefect](https://github.com/PrefectHQ/prefect) | `3.6.9` | `3.6.19` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `3.0.2` | `3.1.0` |\n| [sphinx-autoapi](https://github.com/readthedocs/sphinx-autoapi) | `3.6.1` | `3.7.0` |\n\n\nUpdates `coverage` from 7.13.3 to 7.13.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.4 — 2026-02-09\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the third-party code fix in 7.13.3 required examining the parent\ndirectories where coverage was run. In the unusual situation that one of the\nparent directories is unreadable, a PermissionError would occur, as\ndescribed in \u003ccode\u003eissue 2129\u003c/code\u003e_. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: in test suites that change sys.path, coverage.py could fail with\n\u0026quot;RuntimeError: Set changed size during iteration\u0026quot; as described and fixed in\n\u003ccode\u003epull 2130\u003c/code\u003e_. Thanks, Noah Fatsi.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWe now publish ppc64le wheels, thanks to \u003ccode\u003ePankhudi Jain \u0026lt;pull 2121_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2121: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2121\"\u003ecoveragepy/coveragepy#2121\u003c/a\u003e\n.. _issue 2129: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2129\"\u003ecoveragepy/coveragepy#2129\u003c/a\u003e\n.. _pull 2130: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2130\"\u003ecoveragepy/coveragepy#2130\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-3:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/4f78d57f83ff8a4976043e8a8fcea24b91891840\"\u003e\u003ccode\u003e4f78d57\u003c/code\u003e\u003c/a\u003e build: no need to publish status.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/f8616ff5e6386648aa40300e36c6cecda79a1faa\"\u003e\u003ccode\u003ef8616ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/fcf8c68db986970e6000bf75ec3c3115ede867df\"\u003e\u003ccode\u003efcf8c68\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/189ecfd000867e5c74e7d74ee3bd75742d5d584d\"\u003e\u003ccode\u003e189ecfd\u003c/code\u003e\u003c/a\u003e docs: thanks Pankhudi Jain for ppc64le wheels \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2121\"\u003e#2121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/58aade0eb92d9d1e3755c65a5cf7a951e7bd6c6a\"\u003e\u003ccode\u003e58aade0\u003c/code\u003e\u003c/a\u003e build: add support for ppc64le architecture (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2121\"\u003e#2121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8ea42c874fbfc96535156300225bda22bc93ac68\"\u003e\u003ccode\u003e8ea42c8\u003c/code\u003e\u003c/a\u003e chore: bump actions/attest-build-provenance (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2131\"\u003e#2131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c09595f70758b78156efbd7c8f034799d09322aa\"\u003e\u003ccode\u003ec09595f\u003c/code\u003e\u003c/a\u003e docs: Janine put a lot of effort into debugging issue \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2128\"\u003e#2128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8ee1760f40b8822aa2b11ff95ab63481be68a8a0\"\u003e\u003ccode\u003e8ee1760\u003c/code\u003e\u003c/a\u003e docs: Greg wrote a great issue: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2129\"\u003e#2129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/76ba0437611fc2787cb0450dc94b02bc2848fdee\"\u003e\u003ccode\u003e76ba043\u003c/code\u003e\u003c/a\u003e docs: thanks, Noah Fatsi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/371fcc5727e9d8fba816061756af94646b4bcfbb\"\u003e\u003ccode\u003e371fcc5\u003c/code\u003e\u003c/a\u003e fix: set fixed paths_list in TreeMatcher init (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2130\"\u003e#2130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.3...7.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geoalchemy2` from 0.18.1 to 0.18.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/584\"\u003egeoalchemy/geoalchemy2#584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.3 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/587\"\u003egeoalchemy/geoalchemy2#587\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/575\"\u003egeoalchemy/geoalchemy2#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/576\"\u003egeoalchemy/geoalchemy2#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/577\"\u003egeoalchemy/geoalchemy2#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/578\"\u003egeoalchemy/geoalchemy2#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/580\"\u003egeoalchemy/geoalchemy2#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Fix package discovery by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/581\"\u003egeoalchemy/geoalchemy2#581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.2 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/582\"\u003egeoalchemy/geoalchemy2#582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.2\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Fix package discovery - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/576\"\u003e#576\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/geoalchemy/geoalchemy2/commit/943b456ee3726db7a4b890309d9e864866bd8614\"\u003e\u003ccode\u003e943b456\u003c/code\u003e\u003c/a\u003e Release: 0.18.3 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/55ab8737ae818b47c28a17fb6102b3eb94208c06\"\u003e\u003ccode\u003e55ab873\u003c/code\u003e\u003c/a\u003e Fix: Fix Shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/5e9680be84369cf64c90f70a0f2ddac6cd27f15f\"\u003e\u003ccode\u003e5e9680b\u003c/code\u003e\u003c/a\u003e Release: 0.18.2 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/582\"\u003e#582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/59440f1aa593917b4c27997b22cb9eac54b54040\"\u003e\u003ccode\u003e59440f1\u003c/code\u003e\u003c/a\u003e Build: Fix package discovery (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/b6440a2fe70dd0629d3b882c8fb0e7bfba13f922\"\u003e\u003ccode\u003eb6440a2\u003c/code\u003e\u003c/a\u003e Chore: Add more type hints in from_shape module (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/a44b0dcdfec43af8b53d02875b6edf2d43f9bc70\"\u003e\u003ccode\u003ea44b0dc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/checkout from 4 to 6 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/578\"\u003e#578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/523dd53616e37fb77e8afc4f394074844e8cc6ec\"\u003e\u003ccode\u003e523dd53\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/577\"\u003e#577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/c2a1e17efa69d555c25bfa58a6663419db084c6d\"\u003e\u003ccode\u003ec2a1e17\u003c/code\u003e\u003c/a\u003e Build: Upgrade packaging and formatting tools (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/576\"\u003e#576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/1b4b141aa1ee4fdd8ff03071f025282e29012d35\"\u003e\u003ccode\u003e1b4b141\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/575\"\u003e#575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `css-inline` from 0.19.1 to 0.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Stranger6667/css-inline/releases\"\u003ecss-inline's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[C] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapply_width_attributes\u003c/code\u003e and \u003ccode\u003eapply_height_attributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Java] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapplyWidthAttributes\u003c/code\u003e and \u003ccode\u003eapplyHeightAttributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[JavaScript] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapplyWidthAttributes\u003c/code\u003e and \u003ccode\u003eapplyHeightAttributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[PHP] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapplyWidthAttributes\u003c/code\u003e and \u003ccode\u003eapplyHeightAttributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Python] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapply_width_attributes\u003c/code\u003e and \u003ccode\u003eapply_height_attributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ePyO3\u003c/code\u003e to \u003ccode\u003e0.28.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Stranger6667/css-inline/blob/master/CHANGELOG.md\"\u003ecss-inline's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.20.0] - 2026-02-07\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eInlineOptions::apply_width_attributes\u003c/code\u003e and \u003ccode\u003eInlineOptions::apply_height_attributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/f1187da861cb5644f034e17f7279ebb35aa651fb\"\u003e\u003ccode\u003ef1187da\u003c/code\u003e\u003c/a\u003e chore(c): Release 0.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/044f555c5d6a3b1db5d4f825006e1e414f155466\"\u003e\u003ccode\u003e044f555\u003c/code\u003e\u003c/a\u003e chore(python): Release 0.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/3ae971da16e7cc3e39b360c0b3c16987096be493\"\u003e\u003ccode\u003e3ae971d\u003c/code\u003e\u003c/a\u003e chore(python): Update PyO3 to 0.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/a21fd68d7132e641094d34dcd82b91c7ef8bd541\"\u003e\u003ccode\u003ea21fd68\u003c/code\u003e\u003c/a\u003e chore(ruby): Update dependency on css-inline to 0.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/fb56972e9581b597db030d546d7f405b6d7eb16a\"\u003e\u003ccode\u003efb56972\u003c/code\u003e\u003c/a\u003e build(deps): bump bytes in /bindings/ruby/ext/css_inline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/9cca63a36b354e774dea1b9d0bbdf5a7a82bd00b\"\u003e\u003ccode\u003e9cca63a\u003c/code\u003e\u003c/a\u003e build(deps): bump bytes from 1.10.1 to 1.11.1 in /bindings/ruby\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/59c31809d91628fb6804dfd0d96cbe64d59a9541\"\u003e\u003ccode\u003e59c3180\u003c/code\u003e\u003c/a\u003e feat: Options to add dimension HTML attributes from CSS properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/74e9718821417e9ac5eec29c412efb8bc0975a95\"\u003e\u003ccode\u003e74e9718\u003c/code\u003e\u003c/a\u003e build(deps): update getrandom requirement in /bindings/javascript\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/8a48718b7f41cfc75672463af309a0ee2c30bc7d\"\u003e\u003ccode\u003e8a48718\u003c/code\u003e\u003c/a\u003e build(deps): bump tar from 7.5.6 to 7.5.7 in /bindings/javascript\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/069cf59819b5ee58ae0421f5588f06c4fe561781\"\u003e\u003ccode\u003e069cf59\u003c/code\u003e\u003c/a\u003e docs: Update README\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Stranger6667/css-inline/compare/c-v0.19.1...c-v0.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypdf` from 6.6.2 to 6.7.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/py-pdf/pypdf/releases\"\u003epypdf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e) by \u003ca href=\"https://github.com/rampageservices\"\u003e\u003ccode\u003e@​rampageservices\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of page boxes defined on \u003ccode\u003e/Pages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3650\"\u003e#3650\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.1...6.7.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.1, 2026-02-17\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDetect cyclic references when accessing TreeObject.children (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3645\"\u003e#3645\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit size of \u003ccode\u003e/ToUnicode\u003c/code\u003e entries (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3646\"\u003e#3646\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit FlateDecode recovery attempts (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3644\"\u003e#3644\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid own object replacement logic in \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3638\"\u003e#3638\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix UnboundLocalError when update_page_form_field_values with /Sig (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3634\"\u003e#3634\u003c/a\u003e) by \u003ca href=\"https://github.com/John-Sharp\"\u003e\u003ccode\u003e@​John-Sharp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid divison by zero when decoding FlateDecode PNG prediction (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3641\"\u003e#3641\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.0...6.7.1\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.0, 2026-02-08\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eDeprecations (DEP)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate support for abbreviations in decode_stream_data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3617\"\u003e#3617\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ability to add font resources for 14 Adobe Core fonts in text widget annotations (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3624\"\u003e#3624\u003c/a\u003e) by \u003ca href=\"https://github.com/PJBrs\"\u003e\u003ccode\u003e@​PJBrs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid invalid load for ICCBased FlateDecode images in mode 1 (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3619\"\u003e#3619\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md\"\u003epypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of page boxes defined on \u003ccode\u003e/Pages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3650\"\u003e#3650\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.1...6.7.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.1, 2026-02-17\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDetect cyclic references when accessing TreeObject.children (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3645\"\u003e#3645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLimit size of \u003ccode\u003e/ToUnicode\u003c/code\u003e entries (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3646\"\u003e#3646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLimit FlateDecode recovery attempts (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3644\"\u003e#3644\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid own object replacement logic in \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3638\"\u003e#3638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix UnboundLocalError when update_page_form_field_values with /Sig (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3634\"\u003e#3634\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid divison by zero when decoding FlateDecode PNG prediction (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3641\"\u003e#3641\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.0...6.7.1\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.0, 2026-02-08\u003c/h2\u003e\n\u003ch3\u003eDeprecations (DEP)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate support for abbreviations in decode_stream_data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3617\"\u003e#3617\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ability to add font resources for 14 Adobe Core fonts in text widget annotations (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3624\"\u003e#3624\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid invalid load for ICCBased FlateDecode images in mode 1 (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3619\"\u003e#3619\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix AESV2 decryption when /Length missing in encrypt dict (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3629\"\u003e#3629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix merging when annotations point to NullObject (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3613\"\u003e#3613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCheck for \u003ccode\u003eself._info\u003c/code\u003e being None in \u003ccode\u003ecompress_identical_objects\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3612\"\u003e#3612\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/py-pdf/pypdf/commit/05e6d3c03deaec6b16b53825465537ac9e7a1a14\"\u003e\u003ccode\u003e05e6d3c\u003c/code\u003e\u003c/a\u003e REL: 6.7.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/7a4c8246ed48d9d328fb596942271da47b6d109c\"\u003e\u003ccode\u003e7a4c824\u003c/code\u003e\u003c/a\u003e SEC: Use zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/4f1260f1d0c0c7c307f03e88257f8eeb229d5954\"\u003e\u003ccode\u003e4f1260f\u003c/code\u003e\u003c/a\u003e REL: 6.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/6ef86cbb3c6e7d0afc146fba92f0a90351bfcdbc\"\u003e\u003ccode\u003e6ef86cb\u003c/code\u003e\u003c/a\u003e DOC: Sync release process with current status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/f0a462d36971cf077d74492a348d0d06fd60ea4d\"\u003e\u003ccode\u003ef0a462d\u003c/code\u003e\u003c/a\u003e SEC: Prevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/c707d3c2c770b429bcf8e0893fdc099808856da4\"\u003e\u003ccode\u003ec707d3c\u003c/code\u003e\u003c/a\u003e DOC: Encourage contributors to not use our CI for debugging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/46705137f1eb10181841b4f490994571151ae826\"\u003e\u003ccode\u003e4670513\u003c/code\u003e\u003c/a\u003e BUG: Fix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/801353ad77cb9869a32fd2a7c65dc8d1dc025901\"\u003e\u003ccode\u003e801353a\u003c/code\u003e\u003c/a\u003e MAINT: Spelling corrections (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3647\"\u003e#3647\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/4d578363d65f97f5ea0e7b6f2a91f4b4a3d6c908\"\u003e\u003ccode\u003e4d57836\u003c/code\u003e\u003c/a\u003e BUG: Fix handling of page boxes defined on \u003ccode\u003e/Pages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3650\"\u003e#3650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/ad2a45d769d56038af8747195cae097bbdb68eee\"\u003e\u003ccode\u003ead2a45d\u003c/code\u003e\u003c/a\u003e REL: 6.7.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.6.2...6.7.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `clickhouse-connect` from 0.10.0 to 0.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/releases\"\u003eclickhouse-connect's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for mid-stream exceptions. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/626\"\u003e#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for QBit data type. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/570\"\u003e#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the ability to create table from PyArrow objects. Addresses \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/588\"\u003e#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlways generate \u003ccode\u003equery_id\u003c/code\u003e from the client side as a \u003ccode\u003eUUID4\u003c/code\u003e if it is not explicitly set. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/596\"\u003e#596\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtend support for creating tables from PyArrow objects to include datetime/timestamp types. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/605\"\u003e#605\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pre-commit hooks for auto-linting contributions at commit time. Addresses \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAuto-enable \u003ccode\u003ecancel_http_readonly_queries_on_client_close\u003c/code\u003e setting for HTTP clients to ensure SELECT queries are cancelled on the server when the client disconnects. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/641\"\u003e#641\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise \u003ccode\u003eOperationalError\u003c/code\u003e when \u003ccode\u003eResponseSource\u003c/code\u003e hits network failure before any data is received. Previously, empty result would be returned. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/620\"\u003e#620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a bug where \u003ccode\u003eInsertContext\u003c/code\u003e state was not reset on insert failure, leading to reuse errors when data was passed separately. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/616\"\u003e#616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed UTC-equivalent timezone recognition issue where servers returning \u003ccode\u003eEtc/UCT\u003c/code\u003e, \u003ccode\u003eGMT\u003c/code\u003e, or other UTC-equivalent timezone names caused inconsistent behavior with \u003ccode\u003eutc_tz_aware=False\u003c/code\u003e. DateTime columns with explicit UTC timezones now correctly return naive datetimes when \u003ccode\u003eutc_tz_aware=False\u003c/code\u003e regardless of the specific UTC-equivalent timezone name returned by the server. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/629\"\u003e#629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtend UTC-equivalence checks to Arrow queries.\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/akkik04\"\u003e\u003ccode\u003e@​akkik04\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/597\"\u003eClickHouse/clickhouse-connect#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/m-dziuba\"\u003e\u003ccode\u003e@​m-dziuba\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/613\"\u003eClickHouse/clickhouse-connect#613\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/abhisheksurve45\"\u003e\u003ccode\u003e@​abhisheksurve45\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/618\"\u003eClickHouse/clickhouse-connect#618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dave-shawley\"\u003e\u003ccode\u003e@​dave-shawley\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/611\"\u003eClickHouse/clickhouse-connect#611\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Milias\"\u003e\u003ccode\u003e@​Milias\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/621\"\u003eClickHouse/clickhouse-connect#621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/643\"\u003eClickHouse/clickhouse-connect#643\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/compare/v0.10.0...v0.11.0\"\u003ehttps://github.com/ClickHouse/clickhouse-connect/compare/v0.10.0...v0.11.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/ClickHouse/clickhouse-connect/blob/main/CHANGELOG.md\"\u003eclickhouse-connect's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.11.0, 2026-02-10\u003c/h2\u003e\n\u003ch3\u003ePython 3.9 Deprecation\u003c/h3\u003e\n\u003cp\u003ePython 3.9 EOL'd Oct 2025. Support for Python 3.9 is now softly deprecated and has been removed from our CI test matrix but\ndistribution wheels will continue to be built until the 1.0 release or until the builds naturally fail, whichever comes first.\nA \u003ccode\u003eDeprecationWarning\u003c/code\u003e will now be displayed when initializing the client on Python 3.9. Users should plan to upgrade to\nPython 3.10+ as 3.9 compatibility may break unexpectedly in future updates.\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise OperationalError when ResponseSource hits network failure before any data is received. Previously, empty result would be returned. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/620\"\u003e#620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue with DROP table in client temp table test.\u003c/li\u003e\n\u003cli\u003eFixed a bug where InsertContext state was not reset on insert failure, leading to reuse errors when data was passed separately.\u003c/li\u003e\n\u003cli\u003eFixed UTC-equivalent timezone recognition issue where servers returning \u003ccode\u003eEtc/UCT\u003c/code\u003e, \u003ccode\u003eGMT\u003c/code\u003e, or other UTC-equivalent timezone names caused inconsistent behavior with \u003ccode\u003eutc_tz_aware=False\u003c/code\u003e. DateTime columns with explicit UTC timezones now correctly return naive datetimes when \u003ccode\u003eutc_tz_aware=False\u003c/code\u003e regardless of the specific UTC-equivalent timezone name returned by the server. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/629\"\u003e#629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed percent sign (\u003ccode\u003e%\u003c/code\u003e) double encoding in SQLAlchemy string literals when using \u003ccode\u003etext()\u003c/code\u003e queries with \u003ccode\u003eformatDateTime\u003c/code\u003e and similar functions. The cursor now correctly unescapes \u003ccode\u003e%%\u003c/code\u003e back to \u003ccode\u003e%\u003c/code\u003e for non-parameterized queries. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/297\"\u003e#297\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for mid-stream exceptions. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/626\"\u003e#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for QBit data type. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/570\"\u003e#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the ability to create table from PyArrow objects. Addresses \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/588\"\u003e#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlways generate query_id from the client side as a UUID4 if it is not explicitly set. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/596\"\u003e#596\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtend support for creating tables from PyArrow objects to include datetime/timestamp types. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/605\"\u003e#605\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pre-commit hooks for auto-linting contributions at commit time. Addresses \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing type annotation. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/567\"\u003e#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAuto-enable \u003ccode\u003ecancel_http_readonly_queries_on_client_close\u003c/code\u003e setting for HTTP clients to ensure SELECT queries are cancelled on the server when the client disconnects. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/641\"\u003e#641\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/ClickHouse/clickhouse-connect/commit/eef09a90b8b46375335f9a5a42a52bf7b8f8328e\"\u003e\u003ccode\u003eeef09a9\u003c/code\u003e\u003c/a\u003e 0.11.0 release prep (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/647\"\u003e#647\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/b08a4296b2b34480abf7295cc7c239f1e74d93b4\"\u003e\u003ccode\u003eb08a429\u003c/code\u003e\u003c/a\u003e Fix mypy typing errors by explicitly exporting Client (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/643\"\u003e#643\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/fe36fd99f533d8dafddce5daef5dcad8e4af8383\"\u003e\u003ccode\u003efe36fd9\u003c/code\u003e\u003c/a\u003e raise operationalerror when hitting network failure prior to receiving data i...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/713c9b4d1f43dc35362e82527469b885294a74aa\"\u003e\u003ccode\u003e713c9b4\u003c/code\u003e\u003c/a\u003e Joe/626 add support for mid stream exception detection via x clickhouse excep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/5d89074fcd97d3c515d674dc4e481583d12d390a\"\u003e\u003ccode\u003e5d89074\u003c/code\u003e\u003c/a\u003e auto enable cancel readonly queries on client close (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/642\"\u003e#642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/f5934ab33a968b59c6e679f9344214e6501c6a11\"\u003e\u003ccode\u003ef5934ab\u003c/code\u003e\u003c/a\u003e fix: handle Etc/UTC timezone equivalence for naive datetime conversion (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/621\"\u003e#621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/ff094f788c82520d14e0ce124d1ca8421e8385d4\"\u003e\u003ccode\u003eff094f7\u003c/code\u003e\u003c/a\u003e ensure utc-equivalent timezones are recognized (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/630\"\u003e#630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/5990dc562c604bc17e1a2f1cfaffd2c3cbcfd62d\"\u003e\u003ccode\u003e5990dc5\u003c/code\u003e\u003c/a\u003e Joe/610 drop python39 support (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/628\"\u003e#628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/fe1654f50008a716cbe710c4da3246a6f054c43b\"\u003e\u003ccode\u003efe1654f\u003c/code\u003e\u003c/a\u003e Misc. test workflow cleanup/improvements (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/631\"\u003e#631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/c0f7bde3e5aa91042bcee102acd79b2d6f47c3b7\"\u003e\u003ccode\u003ec0f7bde\u003c/code\u003e\u003c/a\u003e update test matrix (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/627\"\u003e#627\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/compare/v0.10.0...v0.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prefect` from 3.6.9 to 3.6.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PrefectHQ/prefect/releases\"\u003eprefect's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.6.19 - This release sucks in the best way possible\u003c/h2\u003e\n\u003cp\u003eThis release introduces an optional database vacuum service that periodically deletes old flow runs and orphaned resources (logs, artifacts, artifact collections) to keep your database lean. It's \u003cstrong\u003edisabled by default\u003c/strong\u003e — enable it with \u003ccode\u003ePREFECT_SERVER_SERVICES_DB_VACUUM_ENABLED=true\u003c/code\u003e. Once enabled, it runs hourly and removes terminal top-level flow runs older than 90 days. Both the retention period and frequency are configurable via \u003ccode\u003ePREFECT_SERVER_SERVICES_DB_VACUUM_RETENTION_PERIOD\u003c/code\u003e (in seconds, minimum 1 hour) and \u003ccode\u003ePREFECT_SERVER_SERVICES_DB_VACUUM_LOOP_SECONDS\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements ➕➕\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd DB vacuum service in Docket by \u003ca href=\"https://github.com/tom21100227\"\u003e\u003ccode\u003e@​tom21100227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20746\"\u003e#20746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Docker images for \u003ccode\u003eprefect-gcp\u003c/code\u003e and \u003ccode\u003eprefect-azure\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20771\"\u003e#20771\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug Fixes 🐞\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd SSRF protection to \u003ccode\u003eCustomWebhookNotificationBlock\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20781\"\u003e#20781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix scheduler to check per-schedule run counts for multi-schedule deployments by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20699\"\u003e#20699\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix FastAPI 0.132.0 compatibility by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20822\"\u003e#20822\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDevelopment \u0026amp; Tidiness 🧹\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd UI v2 unit tests and E2E tests to Devin flaky test workflow by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20774\"\u003e#20774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate work-pool command to cyclopts by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20766\"\u003e#20766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate transfer command to cyclopts by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20767\"\u003e#20767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate cloud command to cyclopts by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20780\"\u003e#20780\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate deploy command to cyclopts by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20783\"\u003e#20783\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove bogus alias from cyclopts deployment command by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20793\"\u003e#20793\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deploy to cyclopts routing and remove dead delegation code by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20794\"\u003e#20794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate automation command to cyclopts and register init at root level by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20802\"\u003e#20802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit database and orchestration tests into separate jobs by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20803\"\u003e#20803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up cyclopts phase 2 — server status, stdin handling, watch monkeypatch by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20807\"\u003e#20807\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation 📓\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eImportString\u003c/code\u003e section to form-building guide by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20768\"\u003e#20768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix MDX rendering issues in prefect-databricks API reference docs by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20792\"\u003e#20792\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.18...3.6.19\"\u003ehttps://github.com/PrefectHQ/prefect/compare/3.6.18...3.6.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.6.19.dev3: Nightly Development Release\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eEnhancements ➕➕\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Docker image build and publish workflows for \u003ccode\u003eprefect-gcp\u003c/code\u003e and \u003ccode\u003eprefect-azure\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20771\"\u003ePrefectHQ/prefect#20771\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDevelopment \u0026amp; Tidiness 🧹\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update coolname requirement from \u0026lt;4.0.0,\u0026gt;=1.0.4 to \u0026gt;=1.0.4,\u0026lt;5.0.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/PrefectHQ/prefect/pull/20797\"\u003ePrefectHQ/prefect#20797\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): migrate automation command + register init at root level in cyclopts by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20802\"\u003ePrefectHQ/prefect#20802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: split database and orchestration tests into separate jobs by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20803\"\u003ePrefectHQ/prefect#20803\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUncategorized\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(cli): add deploy to cyclopts routing + remove dead delegation code by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20794\"\u003ePrefectHQ/prefect#20794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(prefect-dbt): add DbtCloudExecutor for per-node cloud orchestration by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20784\"\u003ePrefectHQ/prefect#20784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Optional DB Vaccum Service in Docket by \u003ca href=\"https://github.com/tom21100227\"\u003e\u003ccode\u003e@​tom21100227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20746\"\u003ePrefectHQ/prefect#20746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: cyclopts phase 2 cleanup — server status, stdin handling, watch monkeypatch by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20807\"\u003ePrefectHQ/prefect#20807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(10-03): state color consistency and regression prevention by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20809\"\u003ePrefectHQ/prefect#20809\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/PrefectHQ/prefect/commit/1c3149c73c91b61e068b3fb1d1a61cb6fa45a6d3\"\u003e\u003ccode\u003e1c3149c\u003c/code\u003e\u003c/a\u003e Add release notes for 3.6.19 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20823\"\u003e#20823\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/96254d2809d420c3fc0930075c7181447d0df660\"\u003e\u003ccode\u003e96254d2\u003c/code\u003e\u003c/a\u003e fix(11-02): targeted responsive grid fixes for filter bars (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20815\"\u003e#20815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/278a2419782e025a3685f843cbd55f8e835bcf9c\"\u003e\u003ccode\u003e278a241\u003c/code\u003e\u003c/a\u003e fix: FastAPI 0.132.0 compatibility (content-type and ORJSONResponse) (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20822\"\u003e#20822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/122216da17d61d61f46e13899bd4e5722e47d05d\"\u003e\u003ccode\u003e122216d\u003c/code\u003e\u003c/a\u003e feat(11-04): well layout standardization — LayoutWellSidebar for deployment a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/d80f003056f65b9ded02bd43d0900830f8ec4cd0\"\u003e\u003ccode\u003ed80f003\u003c/code\u003e\u003c/a\u003e feat(11-03): spacing, header structure, and horizontal padding standardizatio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/1c7409f9fce97d1ead584701326753deab03e2cb\"\u003e\u003ccode\u003e1c7409f\u003c/code\u003e\u003c/a\u003e feat(11-01): foundation bug fixes — DataTable overflow, LayoutWell min-h, Sid...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/33c6c4c811cd5bc30112615678fb2a7bce4359ba\"\u003e\u003ccode\u003e33c6c4c\u003c/code\u003e\u003c/a\u003e feat(10-03): state color consistency and regression prevention (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20809\"\u003e#20809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/56d71e423b3891d7b496ab37d1e207b71aa34686\"\u003e\u003ccode\u003e56d71e4\u003c/code\u003e\u003c/a\u003e fix: cyclopts phase 2 cleanup — server status, stdin handling, watch monkeypa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/853c40b5ccc31c38207e1a0ff35fd0ea52e07a16\"\u003e\u003ccode\u003e853c40b\u003c/code\u003e\u003c/a\u003e feat(10-02): replace hardcoded colors with semantic tokens (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20808\"\u003e#20808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/53b2a87b381991f30bb24475bc184921cdea9aea\"\u003e\u003ccode\u003e53b2a87\u003c/code\u003e\u003c/a\u003e feat(10-01): CSS token foundation for dark mode (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20805\"\u003e#20805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.9...3.6.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-rtd-theme` from 3.0.2 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst\"\u003esphinx-rtd-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc2:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc1:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.0.2:\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/readthedocs/sphinx_rtd_theme/commit/795de79c8b311592f5863a25307d85924bf52164\"\u003e\u003ccode\u003e795de79\u003c/code\u003e\u003c/a\u003e Release 3.1.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1676\"\u003e#1676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/66d0fdd910e142d058c20b474338051b0751f03c\"\u003e\u003ccode\u003e66d0fdd\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to the test suite (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1668\"\u003e#1668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/fbe5e6004195a1e75654eface1884485c57eb68e\"\u003e\u003ccode\u003efbe5e60\u003c/code\u003e\u003c/a\u003e 3.1.0rc2 with support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/a76174c0bb0af755718f3cbdffbf97d19d0ac0ec\"\u003e\u003ccode\u003ea76174c\u003c/code\u003e\u003c/a\u003e Add support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1671\"\u003e#1671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/20733c3bcc60df8eda23512a0f3ccb2861486110\"\u003e\u003ccode\u003e20733c3\u003c/code\u003e\u003c/a\u003e Add support for Sphinx 9.0.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1666\"\u003e#1666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/71aacd35048c8bc2ab646ed4e3e9af1075034387\"\u003e\u003ccode\u003e71aacd3\u003c/code\u003e\u003c/a\u003e Update Code of Conduct URL (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1664\"\u003e#1664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/5a263753d52c1628c88392fbf52c729f5a8e79b5\"\u003e\u003ccode\u003e5a26375\u003c/code\u003e\u003c/a\u003e Run tests and build docs with Sphinx 8.2 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1640\"\u003e#1640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/8d4d394dad2d55cf9a4db880effac6aa5c7b12e6\"\u003e\u003ccode\u003e8d4d394\u003c/code\u003e\u003c/a\u003e Sidebar should not be floating on mobile (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1622\"\u003e#1622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/compare/3.0.2...3.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autoapi` from 3.6.1 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/readthedocs/sphinx-autoapi/releases\"\u003esphinx-autoapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.7.0\u003c/h2\u003e\n\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded autoapi.import warning for when AutoAPI directives are given non-existent objects\u003c/li\u003e\n\u003cli\u003eAdding autoapi_follow_symlinks, which allows api to traverse into symlinked directories when generating the API documentation.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and officially support Python 3.14\u003c/li\u003e\n\u003cli\u003eSupport rendering PEP-695 type parameters\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRender typing_extensions.TypeAlias like other type aliases (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PythonFunction.overloads typing when source code overload(s) do not provide a return type (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eMisc\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003eHandling case where match returns None to fix mypy unit test.\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/readthedocs/sphinx-autoapi/blob/main/CHANGELOG.rst\"\u003esphinx-autoapi's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.7.0 (2026-02-10)\u003c/h2\u003e\n\u003cp\u003eFeatures\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded autoapi.import warning for when AutoAPI directives are given non-existent objects\u003c/li\u003e\n\u003cli\u003eAdding \u003ccode\u003eautoapi_follow_symlinks\u003c/code\u003e, which allows api to traverse into symlinked directories when generating the API documentation.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and officially support Python 3.14\u003c/li\u003e\n\u003cli\u003eSupport rendering PEP-695 type parameters\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRender typing_extensions.TypeAlias like other type aliases (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ePythonFunction.overloads\u003c/code\u003e typing when source code overload(s) do not provide a return type (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMisc\n^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003eHandling case where match returns None to fix mypy unit test.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/0917ed2d4a42fa4ddd3668247d10ca6d902d7ada\"\u003e\u003ccode\u003e0917ed2\u003c/code\u003e\u003c/a\u003e Version 3.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/394beb453256c9c15a30cb5851682fed2a844fc4\"\u003e\u003ccode\u003e394beb4\u003c/code\u003e\u003c/a\u003e Add warning for missing import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/96cd74d1a015a05bf4409a73b173dcdf8421902a\"\u003e\u003ccode\u003e96cd74d\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/c248b85d66c233a4673c64944bdeeb394be5116a\"\u003e\u003ccode\u003ec248b85\u003c/code\u003e\u003c/a\u003e Render typing_extensions.TypeAlias like other type aliases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/a2f49c9689ba76d5518c33fb509c57b5141342df\"\u003e\u003ccode\u003ea2f49c9\u003c/code\u003e\u003c/a\u003e Fix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/5ed0cd5c5172befdbea5b28ea30a4d7a79583e03\"\u003e\u003ccode\u003e5ed0cd5\u003c/code\u003e\u003c/a\u003e Update supported Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/0f7b1ab7b6e6b016b649bc0fb1e5ccffebaa140d\"\u003e\u003ccode\u003e0f7b1ab\u003c/code\u003e\u003c/a\u003e Render type params by default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/42b315cf9168c6ab5375b84a984e4c73df43d5d8\"\u003e\u003ccode\u003e42b315c\u003c/code\u003e\u003c/a\u003e fix: add missing release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/026acde58cc3967b8a3597eda6481bf48f1918a0\"\u003e\u003ccode\u003e026acde\u003c/code\u003e\u003c/a\u003e fix: User may not have provided return annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/cd62d872d1f77dec8ba4fb94b3bd7591fc57428d\"\u003e\u003ccode\u003ecd62d87\u003c/code\u003e\u003c/a\u003e [refactor]: match statement to ifs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/compare/v3.6.1...v3.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/MTES-MCT/monitorfish/pull/4861","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MTES-MCT%2Fmonitorfish/issues/4861","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4861/packages"},{"uuid":"3963202659","node_id":"PR_kwDOROLWo87E5Cmn","number":23,"state":"open","title":"chore(deps): Bump the python-minor group with 15 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-02-19T14:13:25.000Z","updated_at":"2026-02-19T14:13:26.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python-minor","update_count":15,"packages":[{"name":"uvicorn","old_version":"0.32.0","new_version":"0.41.0"},{"name":"pydantic","old_version":"2.10.0","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.6.0","new_version":"2.13.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"sqlalchemy","old_version":"2.0.36","new_version":"2.0.46"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"alembic","old_version":"1.14.0","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"geoalchemy2","old_version":"0.15.0","new_version":"0.18.1","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"apscheduler","old_version":"3.10.4","new_version":"3.11.2","repository_url":"https://github.com/agronholm/apscheduler"},{"name":"httpx","old_version":"0.27.0","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"sentry-sdk","old_version":"2.19.0","new_version":"2.53.0"},{"name":"testcontainers","old_version":"4.8.0","new_version":"4.14.1"},{"name":"respx","old_version":"0.21.0","new_version":"0.22.0","repository_url":"https://github.com/lundberg/respx"},{"name":"coverage","old_version":"7.6.0","new_version":"7.13.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"ruff","old_version":"0.8.0","new_version":"0.15.1","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor group with 15 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.32.0` | `0.41.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.10.0` | `2.12.5` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.6.0` | `2.13.1` |\n| [sqlalchemy[asyncio]](https://github.com/sqlalchemy/sqlalchemy) | `2.0.36` | `2.0.46` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.14.0` | `1.18.4` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.15.0` | `0.18.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.0` |\n| [apscheduler](https://github.com/agronholm/apscheduler) | `3.10.4` | `3.11.2` |\n| [httpx](https://github.com/encode/httpx) | `0.27.0` | `0.28.1` |\n| [sentry-sdk[fastapi]](https://github.com/getsentry/sentry-python) | `2.19.0` | `2.53.0` |\n| [testcontainers[postgres,redis]](https://github.com/testcontainers/testcontainers-python) | `4.8.0` | `4.14.1` |\n| [respx](https://github.com/lundberg/respx) | `0.21.0` | `0.22.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.6.0` | `7.13.4` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.0` | `0.15.1` |\n\nUpdates `uvicorn[standard]` from 0.32.0 to 0.41.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[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.41.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/t-kawasumi\"\u003e\u003ccode\u003e@​t-kawasumi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2776\"\u003eKludex/uvicorn#2776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fardyn\"\u003e\u003ccode\u003e@​fardyn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2800\"\u003eKludex/uvicorn#2800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewie\"\u003e\u003ccode\u003e@​ewie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2807\"\u003eKludex/uvicorn#2807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shevron\"\u003e\u003ccode\u003e@​shevron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2788\"\u003eKludex/uvicorn#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonashaag\"\u003e\u003ccode\u003e@​jonashaag\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2707\"\u003eKludex/uvicorn#2707\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.40.0...0.41.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 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/2772\"\u003eKludex/uvicorn#2772\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.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return 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/2769\"\u003eKludex/uvicorn#2769\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/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\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.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.41.0 (February 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.0 (September 20, 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/Kludex/uvicorn/commit/9283c0f15cfa82307f57daba4d1b1880902adfb2\"\u003e\u003ccode\u003e9283c0f\u003c/code\u003e\u003c/a\u003e Version 0.41.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2821\"\u003e#2821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a01a33eb8f3ac044cab5964421b9aa308a2bcfca\"\u003e\u003ccode\u003ea01a33e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2ce65bde1509faa958775df8153bdeb5dbaf6f58\"\u003e\u003ccode\u003e2ce65bd\u003c/code\u003e\u003c/a\u003e Ignore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/654f2ed7d7c1a014116d8662e6544f5309375137\"\u003e\u003ccode\u003e654f2ed\u003c/code\u003e\u003c/a\u003e Ensure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a03d9f6f0e99383c76934a82def5a83aeb6b0a47\"\u003e\u003ccode\u003ea03d9f6\u003c/code\u003e\u003c/a\u003e Reduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/e377de40d0a2a1b1d9f55483ee4c1cceb2474502\"\u003e\u003ccode\u003ee377de4\u003c/code\u003e\u003c/a\u003e Add socket path to scope[\u0026quot;server\u0026quot;] (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0779f7f8a4df1cc98433eb30d69027499a0cb7f8\"\u003e\u003ccode\u003e0779f7f\u003c/code\u003e\u003c/a\u003e Poll for readiness in \u003ccode\u003etest_multiprocess_health_check\u003c/code\u003e and \u003ccode\u003erun_server\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2816\"\u003e#2816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7e9ce2c974f1d78d192e81caa7890e2bbae8e711\"\u003e\u003ccode\u003e7e9ce2c\u003c/code\u003e\u003c/a\u003e Poll for PID changes in \u003ccode\u003etest_multiprocess_sighup\u003c/code\u003e instead of fixed sleep (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/99f0d8734d441bf4a1467093766c779a5a1c9868\"\u003e\u003ccode\u003e99f0d87\u003c/code\u003e\u003c/a\u003e Fix grep warning in scripts/sync-version (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2807\"\u003e#2807\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7ae2e6375a90b2e6a3370aa252f5ac2dc06ab892\"\u003e\u003ccode\u003e7ae2e63\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group with 18 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2801\"\u003e#2801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.32.0...0.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.10.0 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.10.0...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.6.0 to 2.13.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.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Deterministic alias selection when using validate_by_name by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/707\"\u003epydantic/pydantic-settings#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd deep merge functionality to config file sources by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for AWS Secrets Manager VersionId parameter by \u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix: Return \u003ccode\u003eNone\u003c/code\u003e for inaccessible GCP Secret Manager secrets by \u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix for cli_kebab_case=\u0026quot;all\u0026quot; and CliImplicitFlag[bool] by \u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnpack type alisases when looking for \u003ccode\u003eNoDecode\u003c/code\u003e by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/695\"\u003epydantic/pydantic-settings#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCliToggleFlag and CliDualFlag 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/717\"\u003epydantic/pydantic-settings#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix for CLI duplicate enum field values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/722\"\u003epydantic/pydantic-settings#722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed load nested config from env by \u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd non-Path files support (for example Traversable) and open files using Path.open method by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd one more traversable test by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/725\"\u003epydantic/pydantic-settings#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI fix fox external list args. 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/727\"\u003epydantic/pydantic-settings#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle case-insensitive retrieval in GoogleSecretManagerSettingsSource by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/730\"\u003epydantic/pydantic-settings#730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI test fixes for help text formatting. 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/735\"\u003epydantic/pydantic-settings#735\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid conflicts with the \u003ccode\u003eNAME\u003c/code\u003e environment variable in WSL by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: When restoring init kwargs, use deterministic order by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/746\"\u003epydantic/pydantic-settings#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd env_prefix_target by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/749\"\u003epydantic/pydantic-settings#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e(default: …)\u003c/code\u003e in the help message for \u003ccode\u003eCliToggleFlag\u003c/code\u003e by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/740\"\u003epydantic/pydantic-settings#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for CLI serialize styles. 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/755\"\u003epydantic/pydantic-settings#755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for overriding default help on CLI internal parser. 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/758\"\u003epydantic/pydantic-settings#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI format_help method support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/759\"\u003epydantic/pydantic-settings#759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(gcp): support SecretVersion annotation for per-field secret versioning by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/763\"\u003epydantic/pydantic-settings#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003esnake_case_conversion\u003c/code\u003e with \u003ccode\u003eenv_prefix\u003c/code\u003e for Azure Key Vault source by \u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Only override preferred_key when no value was found by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/767\"\u003epydantic/pydantic-settings#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/768\"\u003epydantic/pydantic-settings#768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI coerce numeric types. 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/769\"\u003epydantic/pydantic-settings#769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Union Discriminator Choices in Help 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/764\"\u003epydantic/pydantic-settings#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) by \u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.13.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/777\"\u003epydantic/pydantic-settings#777\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/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\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.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for enum kebab case. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/686\"\u003epydantic/pydantic-settings#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply source order: init \u0026gt; env \u0026gt; dotenv \u0026gt; secrets \u0026gt; defaults and pres… by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/688\"\u003epydantic/pydantic-settings#688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd NestedSecretsSettings source by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/690\"\u003epydantic/pydantic-settings#690\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/e87d12df0f42f7f72a3eb6d830cfbfb1d68b4496\"\u003e\u003ccode\u003ee87d12d\u003c/code\u003e\u003c/a\u003e v2.13.1 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/790\"\u003e#790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/acf8c14f5ec314799f5bd0d3f6a1591c4ed2ec97\"\u003e\u003ccode\u003eacf8c14\u003c/code\u003e\u003c/a\u003e Fix JSON decoding for parameterized PEP 695 type aliases (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/780\"\u003e#780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/58b236a36473e01bfe42e5f75d39d46721e0593d\"\u003e\u003ccode\u003e58b236a\u003c/code\u003e\u003c/a\u003e Fix AttributeError with nested env vars for dict fields (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/785\"\u003e#785\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/786\"\u003e#786\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4933f06402ed55e32bcdcefd6c8f59ffe1fefd24\"\u003e\u003ccode\u003e4933f06\u003c/code\u003e\u003c/a\u003e Fix CLI parsing error for set field types since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/787\"\u003e#787\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/788\"\u003e#788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/bd0ebe6215cf215d716e33d833cc2589a1d00a17\"\u003e\u003ccode\u003ebd0ebe6\u003c/code\u003e\u003c/a\u003e Fix RecursionError with self-referential models in CliApp (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/783\"\u003e#783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/eb7840e9f59a7969b23afdbcc4e5081e037736d8\"\u003e\u003ccode\u003eeb7840e\u003c/code\u003e\u003c/a\u003e Fix regression for bool fields since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/784\"\u003e#784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/198e71cf0cd570501535de7ae93a70953150f073\"\u003e\u003ccode\u003e198e71c\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/777\"\u003e#777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/de71e84057b63b251ec84883b5e2ae886f82084f\"\u003e\u003ccode\u003ede71e84\u003c/code\u003e\u003c/a\u003e Add nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0f8f951b89b137bd563ce74dac016ba2c4cdc7a2\"\u003e\u003ccode\u003e0f8f951\u003c/code\u003e\u003c/a\u003e CLI Union Discriminator Choices in Help (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/ce9804c4620d38f0c3b3c1e3ebe10d934fd4ba2e\"\u003e\u003ccode\u003ece9804c\u003c/code\u003e\u003c/a\u003e CLI coerce numeric types. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.6.0...v2.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy[asyncio]` from 2.0.36 to 2.0.46\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[asyncio]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.46\u003c/h1\u003e\n\u003cp\u003eReleased: January 21, 2026\u003c/p\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed typing issues where ORM mapped classes and aliased entities could not\nbe used as keys in result row mappings or as join targets in select\nstatements. Patterns such as \u003ccode\u003erow._mapping[User]\u003c/code\u003e,\n\u003ccode\u003erow._mapping[aliased(User)]\u003c/code\u003e, \u003ccode\u003erow._mapping[with_polymorphic(...)]\u003c/code\u003e\n(rejected by both mypy and Pylance), and \u003ccode\u003e.join(aliased(User))\u003c/code\u003e\n(rejected by Pylance) are documented and fully supported at runtime but\nwere previously rejected by type checkers. The type definitions for\n\u003ccode\u003e_KeyType\u003c/code\u003e and \u003ccode\u003e_FromClauseArgument\u003c/code\u003e have been updated to\naccept these ORM entity types.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13075\"\u003e#13075\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed issue where PostgreSQL JSONB operators\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_match()\u003c/code\u003e and\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_exists()\u003c/code\u003e were applying incorrect\n\u003ccode\u003eVARCHAR\u003c/code\u003e casts to the right-hand side operand when used with newer\nPostgreSQL drivers such as psycopg. The operators now indicate the\nright-hand type as \u003ccode\u003eJSONPATH\u003c/code\u003e, which currently results in no casting\ntaking place, but is also compatible with explicit casts if the\nimplementation were require it at a later point.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13059\"\u003e#13059\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed regression in PostgreSQL dialect where JSONB subscription syntax\nwould generate incorrect SQL for \u003ccode\u003ecast()\u003c/code\u003e expressions returning JSONB,\ncausing syntax errors. The dialect now properly wraps cast expressions in\nparentheses when using the \u003ccode\u003e[]\u003c/code\u003e subscription syntax, generating\n\u003ccode\u003e(CAST(...))[index]\u003c/code\u003e instead of \u003ccode\u003eCAST(...)[index]\u003c/code\u003e to comply with\nPostgreSQL syntax requirements. This extends the fix from \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12778\"\u003e#12778\u003c/a\u003e\nwhich addressed the same issue for function calls.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13067\"\u003e#13067\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Improved the foreign key reflection regular expression pattern used by the\nPostgreSQL dialect to be more permissive in matching identifier characters,\nallowing it to correctly handle unicode characters in table and column\nnames. This change improves compatibility with PostgreSQL variants such as\nCockroachDB that may use different quoting patterns in combination with\nunicode characters in their identifiers.  Pull request courtesy Gord\nThompson.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.14.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 `geoalchemy2` from 0.15.0 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect by \u003ca href=\"https://github.com/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/570\"\u003egeoalchemy/geoalchemy2#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string by \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/574\"\u003egeoalchemy/geoalchemy2#574\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/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/538\"\u003egeoalchemy/geoalchemy2#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/540\"\u003egeoalchemy/geoalchemy2#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCompile literal binds by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/543\"\u003egeoalchemy/geoalchemy2#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/544\"\u003egeoalchemy/geoalchemy2#544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore (mariadb): Stop converting WKB to WKT by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/545\"\u003egeoalchemy/geoalchemy2#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker containers by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/546\"\u003egeoalchemy/geoalchemy2#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/547\"\u003egeoalchemy/geoalchemy2#547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/553\"\u003egeoalchemy/geoalchemy2#553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/554\"\u003egeoalchemy/geoalchemy2#554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Improve readbility of benchmark results by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/556\"\u003egeoalchemy/geoalchemy2#556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/555\"\u003egeoalchemy/geoalchemy2#555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/557\"\u003egeoalchemy/geoalchemy2#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Remove warning message from MySQL/MariaDB reflection by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/560\"\u003egeoalchemy/geoalchemy2#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/561\"\u003egeoalchemy/geoalchemy2#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: correct doc strings by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/564\"\u003egeoalchemy/geoalchemy2#564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/565\"\u003egeoalchemy/geoalchemy2#565\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/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.17.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChore: Fix stubs for TableRowElement by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/534\"\u003egeoalchemy/geoalchemy2#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Pass through keyword args for create_geospatial_table(). Fixes: \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/532\"\u003e#532\u003c/a\u003e by \u003ca href=\"https://github.com/jurgispods\"\u003e\u003ccode\u003e@​jurgispods\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/533\"\u003egeoalchemy/geoalchemy2#533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.17.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/535\"\u003egeoalchemy/geoalchemy2#535\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/jurgispods\"\u003e\u003ccode\u003e@​jurgispods\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/533\"\u003egeoalchemy/geoalchemy2#533\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.0...0.17.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.0...0.17.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.17.0\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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string - \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Fix doc strings for cache enabled - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(papacodebear/master) Fix: Remove warning from MySQL/MariaDB reflection \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Improve readability of benchmark results \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/556\"\u003e#556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/553\"\u003e#553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker container \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf (mariadb): Stop converting WKB to WKT \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/544\"\u003e#544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Compile literal binds properly \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/540\"\u003e#540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.17.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Pass through keyword args for alembic_helpers.create_geospatial_table() \u003ca href=\"https://github.com/jurgispods\"\u003e\u003ccode\u003e@​jurgispods\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Fix stubs for TableRowElement \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/534\"\u003e#534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.17.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePerf: Enable cache for all types of GeoAlchemy2 \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Add new plugin to automatically attach events based on the engine dialect \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Disable SQLite for Pypy job \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/528\"\u003e#528\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.16.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTest: Add test in test_functional.py for custom Geometry that uses WKT elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to ensure all dialects are properly tested in CI \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/526\"\u003e#526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove MariaDB support \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Can handle negative coordinates with Spatialite \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/517\"\u003e#517\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/geoalchemy/geoalchemy2/commit/0c311122e5228a885e262d8f79b037cb74c0949b\"\u003e\u003ccode\u003e0c31112\u003c/code\u003e\u003c/a\u003e Release: 0.18.1 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/75f87fac699ed31579ef93dffc59cc25bda241a8\"\u003e\u003ccode\u003e75f87fa\u003c/code\u003e\u003c/a\u003e Fix: Allow scientific notation within WKT string (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8653df3a1b0236556f1c39c916f0fb717475a6d1\"\u003e\u003ccode\u003e8653df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/3d6099504023afda68137f0ac2d041986159dac9\"\u003e\u003ccode\u003e3d60995\u003c/code\u003e\u003c/a\u003e Fix (mysql): Fix failing test for MySQL dialect (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/60767082df9f4587fadd56ab94847ebc39df8295\"\u003e\u003ccode\u003e6076708\u003c/code\u003e\u003c/a\u003e Release: 0.18.0 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/565\"\u003e#565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/e13112177bdf79cae0d72a6e89d815dc272e3dc5\"\u003e\u003ccode\u003ee131121\u003c/code\u003e\u003c/a\u003e Feat: Add support of spatial indexes for Raster type for PostgreSQL (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0b432086a0c3b8ab160c5cc1864aa65e02f35362\"\u003e\u003ccode\u003e0b43208\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8791b2eec013f21f599ca060d9fee4aba72ec2a1\"\u003e\u003ccode\u003e8791b2e\u003c/code\u003e\u003c/a\u003e Docs: Fix doc strings for cache enabled (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/d3c1d04c8b462c61132403e44a7a4f04a487c142\"\u003e\u003ccode\u003ed3c1d04\u003c/code\u003e\u003c/a\u003e Chore: Move reflection type registering (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/24dc5d05d97fb9a2a57103c1823a58f06940a5e8\"\u003e\u003ccode\u003e24dc5d0\u003c/code\u003e\u003c/a\u003e Fix: Remove warning from MySQL/MariaDB reflection (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.15.0...0.18.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.0.0 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003ch2\u003e3.2.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce new type for RESP3 PUSH notifications (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRun integration workflow on version branches (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate hiredis to 1.3.0 (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/203\"\u003e#203\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis is a maintenance release that addresses issues in RESP3 parsing.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix memory leaks and segfaults in RESP3 map parsing (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/204\"\u003e#204\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/205\"\u003e#205\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/206\"\u003e#206\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate Python 3.13 compatibility (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/DeD1rk\"\u003e\u003ccode\u003e@​DeD1rk\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3e...\n\n_Description has been truncated_","html_url":"https://github.com/MK023/TorinoParking/pull/23","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MK023%2FTorinoParking/issues/23","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/23/packages"},{"uuid":"3951602215","node_id":"PR_kwDORE8PlM7ETFJR","number":10,"state":"closed","title":"build(deps): bump the python-deps group across 1 directory with 14 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-17T20:50:54.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-17T08:57:04.000Z","updated_at":"2026-02-17T20:50:56.000Z","time_to_close":42830,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"python-deps","update_count":14,"packages":[{"name":"fastapi","old_version":"0.115.14","new_version":"0.129.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.30.6","new_version":"0.41.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydantic-settings","old_version":"2.12.0","new_version":"2.13.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"asyncpg","old_version":"0.29.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"alembic","old_version":"1.18.3","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"geoalchemy2","old_version":"0.15.2","new_version":"0.18.1","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"pandas","old_version":"2.3.3","new_version":"3.0.0","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"prometheus-client","old_version":"0.20.0","new_version":"0.24.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"xarray","old_version":"2024.11.0","new_version":"2026.2.0","repository_url":"https://github.com/pydata/xarray"},{"name":"pytest-asyncio","old_version":"0.24.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"ruff","old_version":"0.7.4","new_version":"0.15.1","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pre-commit","old_version":"3.8.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pandas-stubs","old_version":"2.3.3.260113","new_version":"3.0.0.260204","repository_url":"https://github.com/pandas-dev/pandas-stubs"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 14 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.14` | `0.129.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.30.6` | `0.41.0` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.12.0` | `2.13.0` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.29.0` | `0.31.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.3` | `1.18.4` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.15.2` | `0.18.1` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.3` | `3.0.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.20.0` | `0.24.1` |\n| [xarray](https://github.com/pydata/xarray) | `2024.11.0` | `2026.2.0` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.24.0` | `1.3.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.7.4` | `0.15.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.8.0` | `4.5.1` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.3.260113` | `3.0.0.260204` |\n\n\nUpdates `fastapi` from 0.115.14 to 0.129.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.129.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Python 3.9. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14897\"\u003e#14897\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\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🎨 Update internal types for Python 3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14898\"\u003e#14898\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update highlights in webhooks docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14905\"\u003e#14905\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 source examples and docs from Python 3.9 to 3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14900\"\u003e#14900\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🔨 Update docs.py scripts to migrate Python 3.9 to Python 3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14906\"\u003e#14906\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.128.8\u003c/h2\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Fix grammar in \u003ccode\u003edocs/en/docs/tutorial/first-steps.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14708\"\u003e#14708\u003c/a\u003e by \u003ca href=\"https://github.com/SanjanaS10\"\u003e\u003ccode\u003e@​SanjanaS10\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 PDM hook script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14895\"\u003e#14895\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 build setup for \u003ccode\u003efastapi-slim\u003c/code\u003e, deprecate it, and make it only depend on \u003ccode\u003efastapi\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14894\"\u003e#14894\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.128.7\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Show a clear error on attempt to include router into itself. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14258\"\u003e#14258\u003c/a\u003e by \u003ca href=\"https://github.com/JavierSanchezCastro\"\u003e\u003ccode\u003e@​JavierSanchezCastro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Replace \u003ccode\u003edict\u003c/code\u003e by \u003ccode\u003eMapping\u003c/code\u003e on \u003ccode\u003eHTTPException.headers\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/12997\"\u003e#12997\u003c/a\u003e by \u003ca href=\"https://github.com/rijenkii\"\u003e\u003ccode\u003e@​rijenkii\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Simplify reading files in memory, do it sequentially instead of (fake) parallel. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14884\"\u003e#14884\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Use \u003ccode\u003edfn\u003c/code\u003e tag for definitions instead of \u003ccode\u003eabbr\u003c/code\u003e in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14744\"\u003e#14744\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Tweak comment in test to reference PR. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14885\"\u003e#14885\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 LLM-prompt for \u003ccode\u003eabbr\u003c/code\u003e and \u003ccode\u003edfn\u003c/code\u003e tags. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14747\"\u003e#14747\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✅ Test order for the submitted byte Files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14828\"\u003e#14828\u003c/a\u003e by \u003ca href=\"https://github.com/valentinDruzhinin\"\u003e\u003ccode\u003e@​valentinDruzhinin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Configure \u003ccode\u003etest\u003c/code\u003e workflow to run tests with \u003ccode\u003einline-snapshot=review\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14876\"\u003e#14876\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.128.6\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/fastapi/fastapi/commit/a2e51363c721ee6fccb148bff95ca328b4efdfed\"\u003e\u003ccode\u003ea2e5136\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.129.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b7ce02ae86ee466380d2db09be008cfe83a1ca35\"\u003e\u003ccode\u003eb7ce02a\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/31d9750aceaff347bd55be37880b7f36bc26c1b1\"\u003e\u003ccode\u003e31d9750\u003c/code\u003e\u003c/a\u003e 🔨 Update docs.py scripts to migrate Python 3.9 to Python 3.10 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14906\"\u003e#14906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/109cc8aff126b60971ec27d68d32b8713f0ec72a\"\u003e\u003ccode\u003e109cc8a\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c82a3d8a13af58e092ba95ffb4b8a64b9ca82726\"\u003e\u003ccode\u003ec82a3d8\u003c/code\u003e\u003c/a\u003e 📝 Update highlights in webhooks docs (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14905\"\u003e#14905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/0e460654af7101866b7d0f22735ef6337fe13d0c\"\u003e\u003ccode\u003e0e46065\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c9e2277d8b3b0feead4bdad97fca7cf05c9263fd\"\u003e\u003ccode\u003ec9e2277\u003c/code\u003e\u003c/a\u003e 📝 Update source examples and docs from Python 3.9 to 3.10 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14900\"\u003e#14900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d06ab3f5c7c1b6229e28af37905eb51ab4b4cdb7\"\u003e\u003ccode\u003ed06ab3f\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3da206c06df1283518a54b18f27bed33f2d22612\"\u003e\u003ccode\u003e3da206c\u003c/code\u003e\u003c/a\u003e 🎨 Update internal types for Python 3.10 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14898\"\u003e#14898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cc903bd440a4a443510c7b10ef7e9a1f88f44e0e\"\u003e\u003ccode\u003ecc903bd\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.115.14...0.129.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.30.6 to 0.41.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.41.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/t-kawasumi\"\u003e\u003ccode\u003e@​t-kawasumi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2776\"\u003eKludex/uvicorn#2776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fardyn\"\u003e\u003ccode\u003e@​fardyn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2800\"\u003eKludex/uvicorn#2800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewie\"\u003e\u003ccode\u003e@​ewie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2807\"\u003eKludex/uvicorn#2807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shevron\"\u003e\u003ccode\u003e@​shevron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2788\"\u003eKludex/uvicorn#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonashaag\"\u003e\u003ccode\u003e@​jonashaag\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2707\"\u003eKludex/uvicorn#2707\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.40.0...0.41.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 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/2772\"\u003eKludex/uvicorn#2772\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.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return 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/2769\"\u003eKludex/uvicorn#2769\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/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\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.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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.41.0 (February 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.0 (September 20, 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/Kludex/uvicorn/commit/9283c0f15cfa82307f57daba4d1b1880902adfb2\"\u003e\u003ccode\u003e9283c0f\u003c/code\u003e\u003c/a\u003e Version 0.41.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2821\"\u003e#2821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a01a33eb8f3ac044cab5964421b9aa308a2bcfca\"\u003e\u003ccode\u003ea01a33e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2ce65bde1509faa958775df8153bdeb5dbaf6f58\"\u003e\u003ccode\u003e2ce65bd\u003c/code\u003e\u003c/a\u003e Ignore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/654f2ed7d7c1a014116d8662e6544f5309375137\"\u003e\u003ccode\u003e654f2ed\u003c/code\u003e\u003c/a\u003e Ensure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a03d9f6f0e99383c76934a82def5a83aeb6b0a47\"\u003e\u003ccode\u003ea03d9f6\u003c/code\u003e\u003c/a\u003e Reduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/e377de40d0a2a1b1d9f55483ee4c1cceb2474502\"\u003e\u003ccode\u003ee377de4\u003c/code\u003e\u003c/a\u003e Add socket path to scope[\u0026quot;server\u0026quot;] (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0779f7f8a4df1cc98433eb30d69027499a0cb7f8\"\u003e\u003ccode\u003e0779f7f\u003c/code\u003e\u003c/a\u003e Poll for readiness in \u003ccode\u003etest_multiprocess_health_check\u003c/code\u003e and \u003ccode\u003erun_server\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2816\"\u003e#2816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7e9ce2c974f1d78d192e81caa7890e2bbae8e711\"\u003e\u003ccode\u003e7e9ce2c\u003c/code\u003e\u003c/a\u003e Poll for PID changes in \u003ccode\u003etest_multiprocess_sighup\u003c/code\u003e instead of fixed sleep (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/99f0d8734d441bf4a1467093766c779a5a1c9868\"\u003e\u003ccode\u003e99f0d87\u003c/code\u003e\u003c/a\u003e Fix grep warning in scripts/sync-version (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2807\"\u003e#2807\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7ae2e6375a90b2e6a3370aa252f5ac2dc06ab892\"\u003e\u003ccode\u003e7ae2e63\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group with 18 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2801\"\u003e#2801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.30.6...0.41.0\"\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.12.0 to 2.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Deterministic alias selection when using validate_by_name by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/707\"\u003epydantic/pydantic-settings#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd deep merge functionality to config file sources by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for AWS Secrets Manager VersionId parameter by \u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix: Return \u003ccode\u003eNone\u003c/code\u003e for inaccessible GCP Secret Manager secrets by \u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix for cli_kebab_case=\u0026quot;all\u0026quot; and CliImplicitFlag[bool] by \u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnpack type alisases when looking for \u003ccode\u003eNoDecode\u003c/code\u003e by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/695\"\u003epydantic/pydantic-settings#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCliToggleFlag and CliDualFlag 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/717\"\u003epydantic/pydantic-settings#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix for CLI duplicate enum field values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/722\"\u003epydantic/pydantic-settings#722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed load nested config from env by \u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd non-Path files support (for example Traversable) and open files using Path.open method by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd one more traversable test by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/725\"\u003epydantic/pydantic-settings#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI fix fox external list args. 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/727\"\u003epydantic/pydantic-settings#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle case-insensitive retrieval in GoogleSecretManagerSettingsSource by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/730\"\u003epydantic/pydantic-settings#730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI test fixes for help text formatting. 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/735\"\u003epydantic/pydantic-settings#735\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid conflicts with the \u003ccode\u003eNAME\u003c/code\u003e environment variable in WSL by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: When restoring init kwargs, use deterministic order by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/746\"\u003epydantic/pydantic-settings#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd env_prefix_target by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/749\"\u003epydantic/pydantic-settings#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e(default: …)\u003c/code\u003e in the help message for \u003ccode\u003eCliToggleFlag\u003c/code\u003e by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/740\"\u003epydantic/pydantic-settings#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for CLI serialize styles. 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/755\"\u003epydantic/pydantic-settings#755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for overriding default help on CLI internal parser. 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/758\"\u003epydantic/pydantic-settings#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI format_help method support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/759\"\u003epydantic/pydantic-settings#759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(gcp): support SecretVersion annotation for per-field secret versioning by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/763\"\u003epydantic/pydantic-settings#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003esnake_case_conversion\u003c/code\u003e with \u003ccode\u003eenv_prefix\u003c/code\u003e for Azure Key Vault source by \u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Only override preferred_key when no value was found by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/767\"\u003epydantic/pydantic-settings#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/768\"\u003epydantic/pydantic-settings#768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI coerce numeric types. 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/769\"\u003epydantic/pydantic-settings#769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Union Discriminator Choices in Help 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/764\"\u003epydantic/pydantic-settings#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) by \u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.13.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/777\"\u003epydantic/pydantic-settings#777\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/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\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.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/198e71cf0cd570501535de7ae93a70953150f073\"\u003e\u003ccode\u003e198e71c\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/777\"\u003e#777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/de71e84057b63b251ec84883b5e2ae886f82084f\"\u003e\u003ccode\u003ede71e84\u003c/code\u003e\u003c/a\u003e Add nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0f8f951b89b137bd563ce74dac016ba2c4cdc7a2\"\u003e\u003ccode\u003e0f8f951\u003c/code\u003e\u003c/a\u003e CLI Union Discriminator Choices in Help (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/ce9804c4620d38f0c3b3c1e3ebe10d934fd4ba2e\"\u003e\u003ccode\u003ece9804c\u003c/code\u003e\u003c/a\u003e CLI coerce numeric types. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/e460f0b4d8e8dd0916562d3390b9eec960736bb6\"\u003e\u003ccode\u003ee460f0b\u003c/code\u003e\u003c/a\u003e Update deps (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/768\"\u003e#768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/a04b03450e62f583cdaee2d93df693b991aeb319\"\u003e\u003ccode\u003ea04b034\u003c/code\u003e\u003c/a\u003e fix: Only override preferred_key when no value was found (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/767\"\u003e#767\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/f6ddaee324a6f35e418505a0222bd26f1894446e\"\u003e\u003ccode\u003ef6ddaee\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003esnake_case_conversion\u003c/code\u003e with \u003ccode\u003eenv_prefix\u003c/code\u003e for Azure Key Vault source (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/6ce78bcfb737ddc552b077dcfcc3586f153bcaeb\"\u003e\u003ccode\u003e6ce78bc\u003c/code\u003e\u003c/a\u003e feat(gcp): support SecretVersion annotation for per-field secret versioning (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/21c709383721610992bcd34de04386b7d911089b\"\u003e\u003ccode\u003e21c7093\u003c/code\u003e\u003c/a\u003e CLI format_help method support (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/759\"\u003e#759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0e96e9c27eb73599054b83959bb938c82bbebde7\"\u003e\u003ccode\u003e0e96e9c\u003c/code\u003e\u003c/a\u003e Add support for overriding default help on CLI internal parser. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asyncpg` from 0.29.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.30.0\u003c/h2\u003e\n\u003cp\u003eSupport Python 3.13 and PostgreSQL 17.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImplement GSSAPI authentication\n(by \u003ca href=\"https://github.com/eltoder\"\u003e\u003ccode\u003e@​eltoder\u003c/code\u003e\u003c/a\u003e in 1d4e5680 for \u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1122\"\u003e#1122\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement SSPI authentication\n(by \u003ca href=\"https://github.com/eltoder\"\u003e\u003ccode\u003e@​eltoder\u003c/code\u003e\u003c/a\u003e in 1aab2094 for \u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1128\"\u003e#1128\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd initial typings\n(by \u003ca href=\"https://github.com/bryanforbes\"\u003e\u003ccode\u003e@​bryanforbes\u003c/code\u003e\u003c/a\u003e in d42432bf for \u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1127\"\u003e#1127\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow building with Cython 3\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/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.29.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.18.3 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\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geoalchemy2` from 0.15.2 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect by \u003ca href=\"https://github.com/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/570\"\u003egeoalchemy/geoalchemy2#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string by \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/574\"\u003egeoalchemy/geoalchemy2#574\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/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/538\"\u003egeoalchemy/geoalchemy2#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/540\"\u003egeoalchemy/geoalchemy2#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCompile literal binds by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/543\"\u003egeoalchemy/geoalchemy2#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/544\"\u003egeoalchemy/geoalchemy2#544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore (mariadb): Stop converting WKB to WKT by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/545\"\u003egeoalchemy/geoalchemy2#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker containers by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/546\"\u003egeoalchemy/geoalchemy2#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/547\"\u003egeoalchemy/geoalchemy2#547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/553\"\u003egeoalchemy/geoalchemy2#553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/554\"\u003egeoalchemy/geoalchemy2#554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Improve readbility of benchmark results by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/556\"\u003egeoalchemy/geoalchemy2#556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/555\"\u003egeoalchemy/geoalchemy2#555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/557\"\u003egeoalchemy/geoalchemy2#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Remove warning message from MySQL/MariaDB reflection by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/560\"\u003egeoalchemy/geoalchemy2#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/561\"\u003egeoalchemy/geoalchemy2#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: correct doc strings by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/564\"\u003egeoalchemy/geoalchemy2#564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/565\"\u003egeoalchemy/geoalchemy2#565\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/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.17.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChore: Fix stubs for TableRowElement by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/534\"\u003egeoalchemy/geoalchemy2#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Pass through keyword args for create_geospatial_table(). Fixes: \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/532\"\u003e#532\u003c/a\u003e by \u003ca href=\"https://github.com/jurgispods\"\u003e\u003ccode\u003e@​jurgispods\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/533\"\u003egeoalchemy/geoalchemy2#533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.17.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/535\"\u003egeoalchemy/geoalchemy2#535\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/jurgispods\"\u003e\u003ccode\u003e@​jurgispods\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/533\"\u003egeoalchemy/geoalchemy2#533\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.0...0.17.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.0...0.17.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.17.0\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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string - \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Fix doc strings for cache enabled - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(papacodebear/master) Fix: Remove warning from MySQL/MariaDB reflection \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Improve readability of benchmark results \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/556\"\u003e#556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/553\"\u003e#553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker container \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf (mariadb): Stop converting WKB to WKT \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/544\"\u003e#544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Compile literal binds properly \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/540\"\u003e#540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.17.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Pass through keyword args for alembic_helpers.create_geospatial_table() \u003ca href=\"https://github.com/jurgispods\"\u003e\u003ccode\u003e@​jurgispods\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Fix stubs for TableRowElement \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/534\"\u003e#534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.17.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePerf: Enable cache for all types of GeoAlchemy2 \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Add new plugin to automatically attach events based on the engine dialect \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Disable SQLite for Pypy job \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/528\"\u003e#528\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.16.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTest: Add test in test_functional.py for custom Geometry that uses WKT elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to ensure all dialects are properly tested in CI \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/526\"\u003e#526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove MariaDB support \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0c311122e5228a885e262d8f79b037cb74c0949b\"\u003e\u003ccode\u003e0c31112\u003c/code\u003e\u003c/a\u003e Release: 0.18.1 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/75f87fac699ed31579ef93dffc59cc25bda241a8\"\u003e\u003ccode\u003e75f87fa\u003c/code\u003e\u003c/a\u003e Fix: Allow scientific notation within WKT string (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8653df3a1b0236556f1c39c916f0fb717475a6d1\"\u003e\u003ccode\u003e8653df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/3d6099504023afda68137f0ac2d041986159dac9\"\u003e\u003ccode\u003e3d60995\u003c/code\u003e\u003c/a\u003e Fix (mysql): Fix failing test for MySQL dialect (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/60767082df9f4587fadd56ab94847ebc39df8295\"\u003e\u003ccode\u003e6076708\u003c/code\u003e\u003c/a\u003e Release: 0.18.0 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/565\"\u003e#565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/e13112177bdf79cae0d72a6e89d815dc272e3dc5\"\u003e\u003ccode\u003ee131121\u003c/code\u003e\u003c/a\u003e Feat: Add support of spatial indexes for Raster type for PostgreSQL (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0b432086a0c3b8ab160c5cc1864aa65e02f35362\"\u003e\u003ccode\u003e0b43208\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8791b2eec013f21f599ca060d9fee4aba72ec2a1\"\u003e\u003ccode\u003e8791b2e\u003c/code\u003e\u003c/a\u003e Docs: Fix doc strings for cache enabled (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/d3c1d04c8b462c61132403e44a7a4f04a487c142\"\u003e\u003ccode\u003ed3c1d04\u003c/code\u003e\u003c/a\u003e Chore: Move reflection type registering (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/24dc5d05d97fb9a2a57103c1823a58f06940a5e8\"\u003e\u003ccode\u003e24dc5d0\u003c/code\u003e\u003c/a\u003e Fix: Remove warning from MySQL/MariaDB reflection (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.15.2...0.18.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.3.3 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.0\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.0, a major release from the pandas 2.x series. This release includes various new features, bug fixes, and performance improvements, as well as possible breaking changes.\u003c/p\u003e\n\u003cp\u003eThe pandas 3.0 release removed a functionality that was deprecated in previous releases. It is recommended to first upgrade to pandas 2.3 and to ensure your code is working without warnings, before upgrading to pandas 3.0.\u003c/p\u003e\n\u003cp\u003eHighlights include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.0.html#whatsnew-300-enhancements-string-dtype\"\u003eDedicated string data type by default\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.0.html#whatsnew-300-enhancements-copy_on_write\"\u003eConsistent copy/view behaviour with Copy-on-Write\u003c/a\u003e (CoW) (a.k.a. getting rid of the SettingWithCopyWarning)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.0.html#whatsnew-300-api-breaking-datetime-resolution-inference\"\u003eNew default resolution for datetime-like data\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.0.html#whatsnew-300-enhancements-col\"\u003eInitial support for the new \u003ccode\u003epd.col\u003c/code\u003e syntax\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/community/blog/pandas-3.0.html\"\u003eannouncement blog post\u003c/a\u003e and the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.0.html\"\u003edetailed release notes\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues/new/choose\"\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 3.0.0rc2\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ePandas 3.0.0rc1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ePandas 3.0.0rc0\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce a first release candidate for pandas 3.0.0. If all goes well, we'll release pandas 3.0.0 in a few weeks.\u003c/p\u003e\n\u003cp\u003eSee the [whatsnew][0] for a list of all the changes.\u003c/p\u003e\n\u003cp\u003eThe release is available on conda-forge and PyPI.\u003c/p\u003e\n\u003cp\u003eThe release can be installed from PyPI\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade --pre pandas==3.0.0rc0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge/label/pandas_rc pandas==3.0.0rc0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release candidate on the pandas issue tracker.\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/366ccdfcd8ed1e5543bfb6d4ee0c9bc519898670\"\u003e\u003ccode\u003e366ccdf\u003c/code\u003e\u003c/a\u003e RLS: 3.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/139f4d0acedec0eee85c08262f878dd9f1eab63b\"\u003e\u003ccode\u003e139f4d0\u003c/code\u003e\u003c/a\u003e DOC: split/reorder other enhancements section in 3.0.0 whatsnew notes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/63762\"\u003e#63762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/fd2a4f41fa453d74de6a7e031f4fcdcafa506c1b\"\u003e\u003ccode\u003efd2a4f4\u003c/code\u003e\u003c/a\u003e TST: assert reading of legacy pickles against current data (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/61792\"\u003e#61792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/cc0bcaa1d2cf7607079df18d8b91f6d76a2f37ca\"\u003e\u003ccode\u003ecc0bcaa\u003c/code\u003e\u003c/a\u003e DOC: update whatsnew section on datetimelike resolution (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/63780\"\u003e#63780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3ddbb49fe5e39c98981d08162b3ffe39e3e1fd21\"\u003e\u003ccode\u003e3ddbb49\u003c/code\u003e\u003c/a\u003e DOC: remove 2.3.4 whatsnew file from released 3.0 docs (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/63779\"\u003e#63779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/ee63532112ec4be7cc84a04c50f6c948c75ee168\"\u003e\u003ccode\u003eee63532\u003c/code\u003e\u003c/a\u003e CLN: Create temporary HDF5 file path and HDFStore for pytables tests (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/63492\"\u003e#63492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9512e990ffbaf35208dc5d4693c70d3ebb64baea\"\u003e\u003ccode\u003e9512e99\u003c/code\u003e\u003c/a\u003e CoW: better chained assignment warning message for update() method (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/63500\"\u003e#63500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/1db90d50ea43129d407c0dadb5921a1ba6b1410e\"\u003e\u003ccode\u003e1db90d5\u003c/code\u003e\u003c/a\u003e API: rename read_iceberg selected_fields keyword to columns (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/63748\"\u003e#63748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c9b51fae32dbff354663dc25e79fbd22a7afd59f\"\u003e\u003ccode\u003ec9b51fa\u003c/code\u003e\u003c/a\u003e BUG: .str methods failing on PyArrow using regex with \\Z (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/63705\"\u003e#63705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/7cff0f4fdef81094588f4f0b23246a9f6b33a47a\"\u003e\u003ccode\u003e7cff0f4\u003c/code\u003e\u003c/a\u003e API: Period.to_timestamp default to microsecond unit (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/63760\"\u003e#63760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.3.3...v3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `httpx` from 0.27.2 to 0.28.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/httpx/releases\"\u003ehttpx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.28.1\u003c/h2\u003e\n\u003ch2\u003e0.28.1 (6th December, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL case where \u003ccode\u003everify=False\u003c/code\u003e together with client side certificates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.28.0\u003c/h2\u003e\n\u003ch2\u003e0.28.0 (28th November, 2024)\u003c/h2\u003e\n\u003cp\u003eThe 0.28 release includes a limited set of deprecations.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003eWe are working towards a simplified SSL configuration API.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFor users of the standard \u003ccode\u003everify=True\u003c/code\u003e or \u003ccode\u003everify=False\u003c/code\u003e cases, or \u003ccode\u003everify=\u0026lt;ssl_context\u0026gt;\u003c/code\u003e case this should require no changes. The following cases have been deprecated...\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003everify\u003c/code\u003e argument as a string argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ecert\u003c/code\u003e argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOur revised \u003ca href=\"https://github.com/encode/httpx/blob/HEAD/docs/advanced/ssl.md\"\u003eSSL documentation\u003c/a\u003e covers how to implement the same behaviour with a more constrained API.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe following changes are also included\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eproxies\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eapp\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eJSON request bodies use a compact representation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReview URL percent escape sets, based on WHATWG spec. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3371\"\u003e#3371\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/encode/httpx/issues/3373\"\u003e#3373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ecertifi\u003c/code\u003e and \u003ccode\u003ehttpcore\u003c/code\u003e are only imported if required. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003esocks5h\u003c/code\u003e as a valid proxy scheme. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3178\"\u003e#3178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCleanup \u003ccode\u003eRequest()\u003c/code\u003e method signature in line with \u003ccode\u003eclient.request()\u003c/code\u003e and \u003ccode\u003ehttpx.request()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: When passing \u003ccode\u003eparams={}\u003c/code\u003e, always strictly update rather than merge with an existing querystring. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/httpx/blob/master/CHANGELOG.md\"\u003ehttpx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.28.1 (6th December, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL case where \u003ccode\u003everify=False\u003c/code\u003e together with client side certificates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.28.0 (28th November, 2024)\u003c/h2\u003e\n\u003cp\u003eBe aware that the default \u003cem\u003eJSON request bodies now use a more compact representation\u003c/em\u003e. This is generally considered a prefered style, tho may require updates to test suites.\u003c/p\u003e\n\u003cp\u003eThe 0.28 release includes a limited set of deprecations...\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003eWe are working towards a simplified SSL configuration API.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFor users of the standard \u003ccode\u003everify=True\u003c/code\u003e or \u003ccode\u003everify=False\u003c/code\u003e cases, or \u003ccode\u003everify=\u0026lt;ssl_context\u0026gt;\u003c/code\u003e case this should require no changes. The following cases have been deprecated...\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003everify\u003c/code\u003e argument as a string argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ecert\u003c/code\u003e argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOur revised \u003ca href=\"https://github.com/encode/httpx/blob/master/docs/advanced/ssl.md\"\u003eSSL documentation\u003c/a\u003e covers how to implement the same behaviour with a more constrained API.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe following changes are also included\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eproxies\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eapp\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eJSON request bodies use a compact representation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReview URL percent escape sets, based on WHATWG spec. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3371\"\u003e#3371\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/encode/httpx/issues/3373\"\u003e#3373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ecertifi\u003c/code\u003e and \u003ccode\u003ehttpcore\u003c/code\u003e are only imported if required. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003esocks5h\u003c/code\u003e as a valid proxy scheme. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3178\"\u003e#3178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCleanup \u003ccode\u003eRequest()\u003c/code\u003e method signature in line with \u003ccode\u003eclient.request()\u003c/code\u003e and \u003ccode\u003ehttpx.request()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: When passing \u003ccode\u003eparams={}\u003c/code\u003e, always strictly update rather than merge with an existing querystring. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/26d48e0634e6ee9cdc0533996db289ce4b430177\"\u003e\u003ccode\u003e26d48e0\u003c/code\u003e\u003c/a\u003e Version 0.28.1 (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3445\"\u003e#3445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/89599a9541af14bcf906fc4ed58ccbdf403802ba\"\u003e\u003ccode\u003e89599a9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003everify=False\u003c/code\u003e, \u003ccode\u003ecert=...\u003c/code\u003e case. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3442\"\u003e#3442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/8ecb86f0d74ffc52d4663214fae9526bee89358d\"\u003e\u003ccode\u003e8ecb86f\u003c/code\u003e\u003c/a\u003e Add test for request params behavior changes (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3440\"\u003e#3440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/0cb7e5a2e736628e2f506d259fcf0d48cd2bde82\"\u003e\u003ccode\u003e0cb7e5a\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 11 updates (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3434\"\u003e#3434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/15e21e9ea3cad4f06e22a7e704aabefdf43d2e29\"\u003e\u003ccode\u003e15e21e9\u003c/code\u003e\u003c/a\u003e Updating deprecated docstring Client() class (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3426\"\u003e#3426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/80960fa31918d7663c3f4c3ad61661cf0e80628f\"\u003e\u003ccode\u003e80960fa\u003c/code\u003e\u003c/a\u003e Version 0.28.0. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3419\"\u003e#3419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/a33c87852b8a0dddc65e5f739af1e0a6fca4b91f\"\u003e\u003ccode\u003ea33c878\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eextensions\u003c/code\u003e type annotation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3380\"\u003e#3380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/ce7e14da27abba6574be9b3ea7cd5990556a9343\"\u003e\u003ccode\u003ece7e14d\u003c/code\u003e\u003c/a\u003e Error on verify as str. (\u003ca href=\"https://red...\n\n_Description has been truncated_","html_url":"https://github.com/DiogoRibeiro7/city-flood-mvp/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiogoRibeiro7%2Fcity-flood-mvp/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"},{"uuid":"3929655000","node_id":"PR_kwDOHTdvBs7DKmC2","number":1422,"state":"closed","title":"deps(ibis): bump the all group across 1 directory with 31 updates","user":"dependabot[bot]","labels":["ibis","dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-10T09:37:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-12T03:20:10.000Z","updated_at":"2026-03-10T09:37:45.000Z","time_to_close":2269053,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(ibis): bump","group_name":"all","update_count":31,"packages":[{"name":"fastapi","old_version":"0.120.1","new_version":"0.128.8","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.10.6","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"google-auth","old_version":"2.38.0","new_version":"2.48.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"geoalchemy2","old_version":"0.17.1","new_version":"0.18.1","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"gql","old_version":"3.5.2","new_version":"4.0.0","repository_url":"https://github.com/graphql-python/gql"},{"name":"anyio","old_version":"4.10.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"duckdb","old_version":"1.3.2","new_version":"1.4.4","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"oracledb","old_version":"3.3.0","new_version":"3.4.2","repository_url":"https://github.com/oracle/python-oracledb"},{"name":"mysqlclient","old_version":"2.2.7","new_version":"2.2.8","repository_url":"https://github.com/PyMySQL/mysqlclient"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.0.3","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"uvicorn-worker","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/Kludex/uvicorn-worker"},{"name":"redshift-connector","old_version":"2.1.7","new_version":"2.1.11","repository_url":"https://github.com/aws/amazon-redshift-python-driver"},{"name":"datafusion","old_version":"47.0.0","new_version":"51.0.0","repository_url":"https://github.com/apache/datafusion-python"},{"name":"starlette","old_version":"0.49.3","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"databricks-sql-connector","old_version":"4.2.3","new_version":"4.2.5","repository_url":"https://github.com/databricks/databricks-sql-python"},{"name":"databricks-sdk","old_version":"0.73.0","new_version":"0.87.0","repository_url":"https://github.com/databricks/databricks-sdk-py"},{"name":"pyspark","old_version":"3.5.7","new_version":"4.1.1","repository_url":"https://github.com/apache/spark"},{"name":"jupyterlab","old_version":"4.5.1","new_version":"4.5.4","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"ipykernel","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"plotly","old_version":"6.5.0","new_version":"6.5.2","repository_url":"https://github.com/plotly/plotly.py"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"testcontainers","old_version":"4.9.2","new_version":"4.14.1","repository_url":"https://github.com/testcontainers/testcontainers-python"},{"name":"sqlalchemy","old_version":"2.0.39","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.11.2","new_version":"0.15.0","repository_url":"https://github.com/astral-sh/ruff"},{"name":"trino","old_version":"0.335.0","new_version":"0.336.0","repository_url":"https://github.com/trinodb/trino-python-client"},{"name":"clickhouse-connect","old_version":"0.8.15","new_version":"0.11.0","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"polars","old_version":"1.36.1","new_version":"1.38.1","repository_url":"https://github.com/pola-rs/polars"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all group with 31 updates in the /ibis-server directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.120.1` | `0.128.8` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.10.6` | `2.12.5` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.38.0` | `2.48.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.1` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.17.1` | `0.18.1` |\n| [gql](https://github.com/graphql-python/gql) | `3.5.2` | `4.0.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.12.1` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.3.2` | `1.4.4` |\n| [oracledb](https://github.com/oracle/python-oracledb) | `3.3.0` | `3.4.2` |\n| [mysqlclient](https://github.com/PyMySQL/mysqlclient) | `2.2.7` | `2.2.8` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.40.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.0.3` |\n| [uvicorn-worker](https://github.com/Kludex/uvicorn-worker) | `0.3.0` | `0.4.0` |\n| [redshift-connector](https://github.com/aws/amazon-redshift-python-driver) | `2.1.7` | `2.1.11` |\n| [datafusion](https://github.com/apache/datafusion-python) | `47.0.0` | `51.0.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.3` | `0.52.1` |\n| [databricks-sql-connector](https://github.com/databricks/databricks-sql-python) | `4.2.3` | `4.2.5` |\n| [databricks-sdk](https://github.com/databricks/databricks-sdk-py) | `0.73.0` | `0.87.0` |\n| [pyspark](https://github.com/apache/spark) | `3.5.7` | `4.1.1` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.5.1` | `4.5.4` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `7.1.0` | `7.2.0` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.5.0` | `6.5.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [testcontainers](https://github.com/testcontainers/testcontainers-python) | `4.9.2` | `4.14.1` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.39` | `2.0.46` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.2` | `0.15.0` |\n| [trino](https://github.com/trinodb/trino-python-client) | `0.335.0` | `0.336.0` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.8.15` | `0.11.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.36.1` | `1.38.1` |\n\n\nUpdates `fastapi` from 0.120.1 to 0.128.8\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.128.8\u003c/h2\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Fix grammar in \u003ccode\u003edocs/en/docs/tutorial/first-steps.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14708\"\u003e#14708\u003c/a\u003e by \u003ca href=\"https://github.com/SanjanaS10\"\u003e\u003ccode\u003e@​SanjanaS10\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 PDM hook script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14895\"\u003e#14895\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 build setup for \u003ccode\u003efastapi-slim\u003c/code\u003e, deprecate it, and make it only depend on \u003ccode\u003efastapi\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14894\"\u003e#14894\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.128.7\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Show a clear error on attempt to include router into itself. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14258\"\u003e#14258\u003c/a\u003e by \u003ca href=\"https://github.com/JavierSanchezCastro\"\u003e\u003ccode\u003e@​JavierSanchezCastro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Replace \u003ccode\u003edict\u003c/code\u003e by \u003ccode\u003eMapping\u003c/code\u003e on \u003ccode\u003eHTTPException.headers\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/12997\"\u003e#12997\u003c/a\u003e by \u003ca href=\"https://github.com/rijenkii\"\u003e\u003ccode\u003e@​rijenkii\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Simplify reading files in memory, do it sequentially instead of (fake) parallel. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14884\"\u003e#14884\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Use \u003ccode\u003edfn\u003c/code\u003e tag for definitions instead of \u003ccode\u003eabbr\u003c/code\u003e in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14744\"\u003e#14744\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Tweak comment in test to reference PR. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14885\"\u003e#14885\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 LLM-prompt for \u003ccode\u003eabbr\u003c/code\u003e and \u003ccode\u003edfn\u003c/code\u003e tags. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14747\"\u003e#14747\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✅ Test order for the submitted byte Files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14828\"\u003e#14828\u003c/a\u003e by \u003ca href=\"https://github.com/valentinDruzhinin\"\u003e\u003ccode\u003e@​valentinDruzhinin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Configure \u003ccode\u003etest\u003c/code\u003e workflow to run tests with \u003ccode\u003einline-snapshot=review\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14876\"\u003e#14876\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.128.6\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003eon_startup\u003c/code\u003e and \u003ccode\u003eon_shutdown\u003c/code\u003e parameters of \u003ccode\u003eAPIRouter\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14873\"\u003e#14873\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14843\"\u003e#14843\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✅ Fix parameterized tests with snapshots. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14875\"\u003e#14875\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.128.5\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Refactor and simplify Pydantic v2 (and v1) compatibility internal utils. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14862\"\u003e#14862\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\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/bdd20051c42d08762b2cdcc6571e4356014de572\"\u003e\u003ccode\u003ebdd2005\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1ed9bd49230b192bb531f4195d3d6a309261a777\"\u003e\u003ccode\u003e1ed9bd4\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/aac30fd7071d79798130137728aeb363c8c5f695\"\u003e\u003ccode\u003eaac30fd\u003c/code\u003e\u003c/a\u003e 🔨 Tweak PDM hook script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14895\"\u003e#14895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/417f1ee07825c6f4e983629bee6039857197112f\"\u003e\u003ccode\u003e417f1ee\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ffb8965260c71657f26644673f218b99b1315cc7\"\u003e\u003ccode\u003effb8965\u003c/code\u003e\u003c/a\u003e ♻️ Update build setup for \u003ccode\u003efastapi-slim\u003c/code\u003e, deprecate it, and make it only depe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93fa935fb8ac1c40488da7bf9b134466588ffaee\"\u003e\u003ccode\u003e93fa935\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/f0f3e7a113b7771388aef6d4a4cb863ce3890d9c\"\u003e\u003ccode\u003ef0f3e7a\u003c/code\u003e\u003c/a\u003e 📝 Fix grammar in \u003ccode\u003edocs/en/docs/tutorial/first-steps.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14708\"\u003e#14708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8f82c94de0ff641a239db59e58dfdc6010a4b26a\"\u003e\u003ccode\u003e8f82c94\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/5bb3423205daf98f88f14d696d104fea2221028a\"\u003e\u003ccode\u003e5bb3423\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6ce5e3e961876c39d8a60a3a2cb4147a6748d116\"\u003e\u003ccode\u003e6ce5e3e\u003c/code\u003e\u003c/a\u003e ✅ Tweak comment in test to reference PR (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14885\"\u003e#14885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.120.1...0.128.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.10.6 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.10.6...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.38.0 to 2.48.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth 2.48.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0\"\u003e2.48.0\u003c/a\u003e (2026-01-21)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ehonor \u003ccode\u003eNO_GCE_CHECK\u003c/code\u003e environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827\"\u003e383c9827\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b\"\u003e454b441b\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2\"\u003e52558ae2\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport the mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1\"\u003e8dcf91a1\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eresolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064\"\u003e25c1b064\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003euser_verification=preferred\u003c/code\u003e for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a240\"\u003e3f88a240\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eremoves \u003ccode\u003econtent-header\u003c/code\u003e from AWS IMDS get request (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e\"\u003e97bfea9e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edetect correct auth when ADC env var is set but empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e10\"\u003ebfc07e10\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20c\"\u003ee431f20c\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.48.0rc0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0rc0\"\u003e2.48.0rc0\u003c/a\u003e (2026-01-20)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ehonor NO_GCE_CHECK environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827536d9376e8248370ce4c2b83e468d027\"\u003e383c98\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\"\u003e454b44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1b05c85fbbd0bcee78d66e498099102ab\"\u003e8dcf91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2881b1e6555f6f5c0d76365c15807ead9\"\u003e52558a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse user_verification=preferred for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a24089c4ee6822d510de0db210b54260d873\"\u003e3f88a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20cf73ccac71926a23ec454468cea92e053\"\u003ee431f2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edetect correct auth when ADC env var is set by empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\"\u003ebfc07e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremoved content-header from AWS IMDS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\"\u003e97bfea\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eresolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064545702cbef087cfcd15fbbb6ef1af74f\"\u003e25c1b0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.47.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0\"\u003e2.48.0\u003c/a\u003e (2026-01-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2881b1e6555f6f5c0d76365c15807ead9\"\u003e52558ae2881b1e6555f6f5c0d76365c15807ead9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport the mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1b05c85fbbd0bcee78d66e498099102ab\"\u003e8dcf91a1b05c85fbbd0bcee78d66e498099102ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\"\u003e454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ehonor \u003ccode\u003eNO_GCE_CHECK\u003c/code\u003e environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827536d9376e8248370ce4c2b83e468d027\"\u003e383c9827536d9376e8248370ce4c2b83e468d027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eresolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064545702cbef087cfcd15fbbb6ef1af74f\"\u003e25c1b064545702cbef087cfcd15fbbb6ef1af74f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremoves \u003ccode\u003econtent-header\u003c/code\u003e from AWS IMDS get request (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\"\u003e97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edetect correct auth when ADC env var is set but empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\"\u003ebfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20cf73ccac71926a23ec454468cea92e053\"\u003ee431f20cf73ccac71926a23ec454468cea92e053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003euser_verification=preferred\u003c/code\u003e for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a24089c4ee6822d510de0db210b54260d873\"\u003e3f88a24089c4ee6822d510de0db210b54260d873\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1590\"\u003e#1590\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\"\u003e5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\"\u003e60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.45.0...v2.46.0\"\u003e2.46.0\u003c/a\u003e (2026-01-05)\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate urllib3 docstrings for v2 compatibility (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1903\"\u003e#1903\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f1aeea2d1014ea1d244a4c3470e52d74d55404b\"\u003e3f1aeea2d1014ea1d244a4c3470e52d74d55404b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecognize workload certificate config in has_default_client_cert_source for mTLS for Agentic Identities (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1907\"\u003e#1907\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d573123e358c347ffa067637f992af61b4\"\u003e0b9107d573123e358c347ffa067637f992af61b4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd types to default and verify_token and Request \u003cstrong\u003einit\u003c/strong\u003e based on comments in the source code. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1588\"\u003e#1588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/59a5f588f7793b59d923a4185c8c07738da618f7\"\u003e59a5f588f7793b59d923a4185c8c07738da618f7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix the document of secure_authorized_session (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1536\"\u003e#1536\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5d0014707fc359782df5ccfcaa75fd372fe9dce3\"\u003e5d0014707fc359782df5ccfcaa75fd372fe9dce3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1693\"\u003e#1693\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c767531ce05a89002d109f595187aff1fcaacfb7\"\u003ec767531ce05a89002d109f595187aff1fcaacfb7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse .read() instead of .content.read() in aiohttp transport (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1899\"\u003e#1899\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/12f4470f808809e8abf1141f98d88ab720c3899b\"\u003e12f4470f808809e8abf1141f98d88ab720c3899b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/6a982be06e513a3182069cd910466e743fa7db6a\"\u003e\u003ccode\u003e6a982be\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260121T162706Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1946\"\u003e#1946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/526d6c63d70aabcfbb69d1d5277831269aac28c1\"\u003e\u003ccode\u003e526d6c6\u003c/code\u003e\u003c/a\u003e chore(tests): add cryptography to constraints file (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1944\"\u003e#1944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2881b1e6555f6f5c0d76365c15807ead9\"\u003e\u003ccode\u003e52558ae\u003c/code\u003e\u003c/a\u003e feat: add cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1b05c85fbbd0bcee78d66e498099102ab\"\u003e\u003ccode\u003e8dcf91a\u003c/code\u003e\u003c/a\u003e feat(iam): Support the mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/db17a641a2866e1016fde939567facdfd9935a41\"\u003e\u003ccode\u003edb17a64\u003c/code\u003e\u003c/a\u003e chore(tests): add sleep mocks (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1943\"\u003e#1943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064545702cbef087cfcd15fbbb6ef1af74f\"\u003e\u003ccode\u003e25c1b06\u003c/code\u003e\u003c/a\u003e fix: resolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e5a28b590192d1280c5de3c023e221b70df5e26f\"\u003e\u003ccode\u003ee5a28b5\u003c/code\u003e\u003c/a\u003e tests: system tests for expired User Credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1937\"\u003e#1937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/4292ab0226dae86e0885cbeb83be39ec6c91ee36\"\u003e\u003ccode\u003e4292ab0\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency google-cloud-compute to v1.42.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1939\"\u003e#1939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/4848ac4fff4d458d797edb938077e348650539d0\"\u003e\u003ccode\u003e4848ac4\u003c/code\u003e\u003c/a\u003e chore: extracts unit tests to individual github actions (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1941\"\u003e#1941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/71e6e8e5da89f096655a4d61fbf35b8e215b0ad5\"\u003e\u003ccode\u003e71e6e8e\u003c/code\u003e\u003c/a\u003e chore: dedent deprecation warning message (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1932\"\u003e#1932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.38.0...v2.48.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.0.1 to 1.2.1\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.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport reading .env 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/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI to use trusted publishing on PyPI\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/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\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.0...v1.2.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: upgrade to use ruff 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/567\"\u003etheskumar/python-dotenv#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.exit() instead of exit() 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/568\"\u003etheskumar/python-dotenv#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:  add \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e flag to disable load_dotenv (fixes \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/510\"\u003e#510\u003c/a\u003e) 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/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python@3.14: Github CI \u0026amp; tox.ini 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/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eocs: clarify what load_dotenv() does in README by \u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory 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/theskumar/python-dotenv/pull/577\"\u003etheskumar/python-dotenv#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove project metadata and config to pyproject.toml 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/pull/583\"\u003etheskumar/python-dotenv#583\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/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\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.1.1...v1.2.0\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv 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/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a security policy 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/512\"\u003etheskumar/python-dotenv#512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep GitHub Actions up to date with GitHub's Dependabot by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/506\"\u003etheskumar/python-dotenv#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: fix multiline string in test.yml \u0026amp; use fail-fast strategy by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/514\"\u003etheskumar/python-dotenv#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance dotenv run: Switch to execvpe for better resource management and signal handling by \u003ca href=\"https://github.com/eekstunt\"\u003e\u003ccode\u003e@​eekstunt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/523\"\u003etheskumar/python-dotenv#523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add py3.13 to test.yml by \u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/527\"\u003etheskumar/python-dotenv#527\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 trove classifier by \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/535\"\u003etheskumar/python-dotenv#535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/529\"\u003etheskumar/python-dotenv#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.13 and drop 3.8 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/551\"\u003etheskumar/python-dotenv#551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update README.md by \u003ca href=\"https://github.com/chapeupreto\"\u003e\u003ccode\u003e@​chapeupreto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/516\"\u003etheskumar/python-dotenv#516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSome more s/Python-dotenv/python-dotenv/ 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/552\"\u003etheskumar/python-dotenv#552\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/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.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/pull/563\"\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/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.0] - 2025-03-25\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFeature\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.13\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003edotenv run\u003c/code\u003e, switch to \u003ccode\u003eexecvpe\u003c/code\u003e for better resource management and signal handling (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/523\"\u003e#523\u003c/a\u003e) by [\u003ca href=\"https://github.com/eekstunt\"\u003e\u003ccode\u003e@​eekstunt\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efind_dotenv\u003c/code\u003e and \u003ccode\u003eload_dotenv\u003c/code\u003e now correctly looks up at the current directory when running in debugger or pdb (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/553\"\u003e#553\u003c/a\u003e by [\u003ca href=\"https://github.com/randomseed42\"\u003e\u003ccode\u003e@​randomseed42\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMisc\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/eaf2a9129ccec6febda0f741eb3bb852c3f947bd\"\u003e\u003ccode\u003eeaf2a91\u003c/code\u003e\u003c/a\u003e Do not remove .coverage file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8716196891532eeb67d24a513e8d975437f5e8b7\"\u003e\u003ccode\u003e8716196\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.0 → 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/b87807fcad6e74332c3c63a75c92ce5814fa7a55\"\u003e\u003ccode\u003eb87807f\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/3af77d3029eb717aeec0a3c25f751b6a614a6d3c\"\u003e\u003ccode\u003e3af77d3\u003c/code\u003e\u003c/a\u003e Support reading .env from FIFOs (Unix) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/467ee22fccb2fb7ccda71a0d9e37c6ea3cb8d993\"\u003e\u003ccode\u003e467ee22\u003c/code\u003e\u003c/a\u003e Fix test failures after moving config to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/76999e741d87e958ebd74e3ae9834c0514e77a59\"\u003e\u003ccode\u003e76999e7\u003c/code\u003e\u003c/a\u003e Move more config pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/222ce2cc58ebc82ba78da8781269267b9f585932\"\u003e\u003ccode\u003e222ce2c\u003c/code\u003e\u003c/a\u003e Update to use trusted publisher on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ed4f79d202eba582b44bdf1f5deb726dd68783d\"\u003e\u003ccode\u003e8ed4f79\u003c/code\u003e\u003c/a\u003e Update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/5bf882241c607445bf02cf5b241535d62e2b99c1\"\u003e\u003ccode\u003e5bf8822\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.1 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1fe11cc737ee4399e9c51d1b69b0dd858f6b4669\"\u003e\u003ccode\u003e1fe11cc\u003c/code\u003e\u003c/a\u003e upadate changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.0.1...v1.2.1\"\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 `geoalchemy2` from 0.17.1 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect by \u003ca href=\"https://github.com/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/570\"\u003egeoalchemy/geoalchemy2#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string by \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/574\"\u003egeoalchemy/geoalchemy2#574\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/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/538\"\u003egeoalchemy/geoalchemy2#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/540\"\u003egeoalchemy/geoalchemy2#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCompile literal binds by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/543\"\u003egeoalchemy/geoalchemy2#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/544\"\u003egeoalchemy/geoalchemy2#544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore (mariadb): Stop converting WKB to WKT by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/545\"\u003egeoalchemy/geoalchemy2#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker containers by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/546\"\u003egeoalchemy/geoalchemy2#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/547\"\u003egeoalchemy/geoalchemy2#547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/553\"\u003egeoalchemy/geoalchemy2#553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/554\"\u003egeoalchemy/geoalchemy2#554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Improve readbility of benchmark results by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/556\"\u003egeoalchemy/geoalchemy2#556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/555\"\u003egeoalchemy/geoalchemy2#555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/557\"\u003egeoalchemy/geoalchemy2#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Remove warning message from MySQL/MariaDB reflection by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/560\"\u003egeoalchemy/geoalchemy2#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/561\"\u003egeoalchemy/geoalchemy2#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: correct doc strings by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/564\"\u003egeoalchemy/geoalchemy2#564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/565\"\u003egeoalchemy/geoalchemy2#565\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/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string - \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Fix doc strings for cache enabled - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(papacodebear/master) Fix: Remove warning from MySQL/MariaDB reflection \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Improve readability of benchmark results \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/556\"\u003e#556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/553\"\u003e#553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker container \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf (mariadb): Stop converting WKB to WKT \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/544\"\u003e#544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Compile literal binds properly \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/540\"\u003e#540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0c311122e5228a885e262d8f79b037cb74c0949b\"\u003e\u003ccode\u003e0c31112\u003c/code\u003e\u003c/a\u003e Release: 0.18.1 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/75f87fac699ed31579ef93dffc59cc25bda241a8\"\u003e\u003ccode\u003e75f87fa\u003c/code\u003e\u003c/a\u003e Fix: Allow scientific notation within WKT string (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8653df3a1b0236556f1c39c916f0fb717475a6d1\"\u003e\u003ccode\u003e8653df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/3d6099504023afda68137f0ac2d041986159dac9\"\u003e\u003ccode\u003e3d60995\u003c/code\u003e\u003c/a\u003e Fix (mysql): Fix failing test for MySQL dialect (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/60767082df9f4587fadd56ab94847ebc39df8295\"\u003e\u003ccode\u003e6076708\u003c/code\u003e\u003c/a\u003e Release: 0.18.0 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/565\"\u003e#565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/e13112177bdf79cae0d72a6e89d815dc272e3dc5\"\u003e\u003ccode\u003ee131121\u003c/code\u003e\u003c/a\u003e Feat: Add support of spatial indexes for Raster type for PostgreSQL (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0b432086a0c3b8ab1...\n\n_Description has been truncated_","html_url":"https://github.com/Canner/wren-engine/pull/1422","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Canner%2Fwren-engine/issues/1422","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1422/packages"},{"uuid":"3795330434","node_id":"PR_kwDOHTdvBs68P6-_","number":1401,"state":"open","title":"deps(ibis): bump the all group across 1 directory with 27 updates","user":"dependabot[bot]","labels":["ibis","dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-09T03:32:46.000Z","updated_at":"2026-01-12T07:14:12.529Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(ibis): bump","group_name":"all","update_count":27,"packages":[{"name":"fastapi","old_version":"0.120.1","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.10.6","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"google-auth","old_version":"2.38.0","new_version":"2.47.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"orjson","old_version":"3.10.16","new_version":"3.11.5","repository_url":"https://github.com/ijl/orjson"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"geoalchemy2","old_version":"0.17.1","new_version":"0.18.1","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"gql","old_version":"3.5.2","new_version":"4.0.0","repository_url":"https://github.com/graphql-python/gql"},{"name":"anyio","old_version":"4.10.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"duckdb","old_version":"1.3.2","new_version":"1.4.3","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"oracledb","old_version":"3.3.0","new_version":"3.4.1","repository_url":"https://github.com/oracle/python-oracledb"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"uvicorn-worker","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/Kludex/uvicorn-worker"},{"name":"redshift-connector","old_version":"2.1.7","new_version":"2.1.10","repository_url":"https://github.com/aws/amazon-redshift-python-driver"},{"name":"datafusion","old_version":"47.0.0","new_version":"50.1.0","repository_url":"https://github.com/apache/datafusion-python"},{"name":"starlette","old_version":"0.49.3","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"databricks-sql-connector","old_version":"4.2.3","new_version":"4.2.4","repository_url":"https://github.com/databricks/databricks-sql-python"},{"name":"databricks-sdk","old_version":"0.73.0","new_version":"0.77.0","repository_url":"https://github.com/databricks/databricks-sdk-py"},{"name":"pyspark","old_version":"3.5.7","new_version":"4.1.0","repository_url":"https://github.com/apache/spark"},{"name":"plotly","old_version":"6.5.0","new_version":"6.5.1","repository_url":"https://github.com/plotly/plotly.py"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"testcontainers","old_version":"4.9.2","new_version":"4.14.0","repository_url":"https://github.com/testcontainers/testcontainers-python"},{"name":"sqlalchemy","old_version":"2.0.39","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.11.2","new_version":"0.14.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"trino","old_version":"0.335.0","new_version":"0.336.0","repository_url":"https://github.com/trinodb/trino-python-client"},{"name":"clickhouse-connect","old_version":"0.8.15","new_version":"0.10.0","repository_url":"https://github.com/ClickHouse/clickhouse-connect"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all group with 27 updates in the /ibis-server directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.120.1` | `0.128.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.10.6` | `2.12.5` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.38.0` | `2.47.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.1` |\n| [orjson](https://github.com/ijl/orjson) | `3.10.16` | `3.11.5` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.17.1` | `0.18.1` |\n| [gql](https://github.com/graphql-python/gql) | `3.5.2` | `4.0.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.12.1` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.3.2` | `1.4.3` |\n| [oracledb](https://github.com/oracle/python-oracledb) | `3.3.0` | `3.4.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.40.0` |\n| [uvicorn-worker](https://github.com/Kludex/uvicorn-worker) | `0.3.0` | `0.4.0` |\n| [redshift-connector](https://github.com/aws/amazon-redshift-python-driver) | `2.1.7` | `2.1.10` |\n| [datafusion](https://github.com/apache/datafusion-python) | `47.0.0` | `50.1.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.3` | `0.50.0` |\n| [databricks-sql-connector](https://github.com/databricks/databricks-sql-python) | `4.2.3` | `4.2.4` |\n| [databricks-sdk](https://github.com/databricks/databricks-sdk-py) | `0.73.0` | `0.77.0` |\n| [pyspark](https://github.com/apache/spark) | `3.5.7` | `4.1.0` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.5.0` | `6.5.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [testcontainers](https://github.com/testcontainers/testcontainers-python) | `4.9.2` | `4.14.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.39` | `2.0.45` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.2` | `0.14.11` |\n| [trino](https://github.com/trinodb/trino-python-client) | `0.335.0` | `0.336.0` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.8.15` | `0.10.0` |\n\n\nUpdates `fastapi` from 0.120.1 to 0.128.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\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✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\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 missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\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👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\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👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\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 scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\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 LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\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⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.120.1...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.10.6 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.10.6...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.38.0 to 2.47.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth 2.47.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1590\"\u003e#1590\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4\"\u003e5c07e1c4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc2001\"\u003e60dc2001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.46.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.45.0...v2.46.0\"\u003e2.46.0\u003c/a\u003e (2026-01-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecognize workload certificate config in has_default_client_cert_source for mTLS for Agentic Identities (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1907\"\u003e#1907\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d5\"\u003e0b9107d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix test coverage for mtls_helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1886\"\u003e#1886\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/02e71631\"\u003e02e71631\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003euse .read() instead of .content.read() in aiohttp transport (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1899\"\u003e#1899\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/12f4470f\"\u003e12f4470f\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd types to default and verify_token and Request \u003cstrong\u003einit\u003c/strong\u003e based on comments in the source code. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1588\"\u003e#1588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/59a5f588\"\u003e59a5f588\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix the document of secure_authorized_session (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1536\"\u003e#1536\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5d001470\"\u003e5d001470\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eraise RefreshError for missing token in impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1897\"\u003e#1897\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/94d04e09\"\u003e94d04e09\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1693\"\u003e#1693\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c767531c\"\u003ec767531c\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate urllib3 docstrings for v2 compatibility (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1903\"\u003e#1903\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f1aeea2\"\u003e3f1aeea2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.45.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e\"\u003eb32c934e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.44.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-12)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95\"\u003e0387bb95\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1590\"\u003e#1590\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\"\u003e5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\"\u003e60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.45.0...v2.46.0\"\u003e2.46.0\u003c/a\u003e (2026-01-05)\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate urllib3 docstrings for v2 compatibility (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1903\"\u003e#1903\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f1aeea2d1014ea1d244a4c3470e52d74d55404b\"\u003e3f1aeea2d1014ea1d244a4c3470e52d74d55404b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecognize workload certificate config in has_default_client_cert_source for mTLS for Agentic Identities (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1907\"\u003e#1907\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d573123e358c347ffa067637f992af61b4\"\u003e0b9107d573123e358c347ffa067637f992af61b4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd types to default and verify_token and Request \u003cstrong\u003einit\u003c/strong\u003e based on comments in the source code. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1588\"\u003e#1588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/59a5f588f7793b59d923a4185c8c07738da618f7\"\u003e59a5f588f7793b59d923a4185c8c07738da618f7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix the document of secure_authorized_session (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1536\"\u003e#1536\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5d0014707fc359782df5ccfcaa75fd372fe9dce3\"\u003e5d0014707fc359782df5ccfcaa75fd372fe9dce3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1693\"\u003e#1693\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c767531ce05a89002d109f595187aff1fcaacfb7\"\u003ec767531ce05a89002d109f595187aff1fcaacfb7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse .read() instead of .content.read() in aiohttp transport (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1899\"\u003e#1899\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/12f4470f808809e8abf1141f98d88ab720c3899b\"\u003e12f4470f808809e8abf1141f98d88ab720c3899b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eraise RefreshError for missing token in impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1897\"\u003e#1897\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/94d04e090fdfc61926dd32bc1d65f8820b9cede5\"\u003e94d04e090fdfc61926dd32bc1d65f8820b9cede5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix test coverage for mtls_helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1886\"\u003e#1886\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/02e71631fe275d93825c2e957e830773e75133f7\"\u003e02e71631fe275d93825c2e957e830773e75133f7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e6b0d09b94c467cd432a0a635e8b05f5c\"\u003eb32c934e6b0d09b94c467cd432a0a635e8b05f5c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e78f247665b6ef0287d482033f7be2ed6d\"\u003e0f7097e78f247665b6ef0287d482033f7be2ed6d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5f6881b590025f36d333d12eff8dc60fc\"\u003e39c381a5f6881b590025f36d333d12eff8dc60fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95713653d47e846cad3a010eb55ef2db4c\"\u003e0387bb95713653d47e846cad3a010eb55ef2db4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986ca03ee95bfffa9ad821124ed7e903e63\"\u003ed5638986ca03ee95bfffa9ad821124ed7e903e63\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/f32301a03372eb72a8b5542a4cc223e01ee1e33b\"\u003e\u003ccode\u003ef32301a\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260106T130342Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1922\"\u003e#1922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25f4ca658c1880c7a27ed817ded4c17d84c26854\"\u003e\u003ccode\u003e25f4ca6\u003c/code\u003e\u003c/a\u003e chore: remove Python 3.7 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1919\"\u003e#1919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\"\u003e\u003ccode\u003e60dc200\u003c/code\u003e\u003c/a\u003e fix: Python 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\"\u003e\u003ccode\u003e5c07e1c\u003c/code\u003e\u003c/a\u003e feat: drop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2cbc2a2e2e75e8797bf3709eb1e624ad39e7e7d4\"\u003e\u003ccode\u003e2cbc2a2\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260105T122553Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5b7b5d83adafe275351989a96328472b1845c4be\"\u003e\u003ccode\u003e5b7b5d8\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260105T112538Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1912\"\u003e#1912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/7dbf05a56c5c8f1c01f985af140dc8c5ea29656a\"\u003e\u003ccode\u003e7dbf05a\u003c/code\u003e\u003c/a\u003e chore: rename _refresh_token to _perform_refresh_token (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1900\"\u003e#1900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/855a45af913a5d099e30036b80d8ba3b0c324a62\"\u003e\u003ccode\u003e855a45a\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1894\"\u003e#1894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/77c8bc48b5638cbe8c4415fdd378853e9db6e156\"\u003e\u003ccode\u003e77c8bc4\u003c/code\u003e\u003c/a\u003e tests: make the TLS tests skip when pyopenssl isn't available (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1873\"\u003e#1873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d573123e358c347ffa067637f992af61b4\"\u003e\u003ccode\u003e0b9107d\u003c/code\u003e\u003c/a\u003e feat: Recognize workload certificate config in has_default_client_cert_source...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.38.0...v2.47.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.0.1 to 1.2.1\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.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport reading .env 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/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI to use trusted publishing on PyPI\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/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\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.0...v1.2.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: upgrade to use ruff 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/567\"\u003etheskumar/python-dotenv#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.exit() instead of exit() 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/568\"\u003etheskumar/python-dotenv#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:  add \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e flag to disable load_dotenv (fixes \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/510\"\u003e#510\u003c/a\u003e) 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/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python@3.14: Github CI \u0026amp; tox.ini 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/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eocs: clarify what load_dotenv() does in README by \u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory 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/theskumar/python-dotenv/pull/577\"\u003etheskumar/python-dotenv#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove project metadata and config to pyproject.toml 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/pull/583\"\u003etheskumar/python-dotenv#583\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/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\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.1.1...v1.2.0\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv 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/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a security policy 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/512\"\u003etheskumar/python-dotenv#512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep GitHub Actions up to date with GitHub's Dependabot by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/506\"\u003etheskumar/python-dotenv#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: fix multiline string in test.yml \u0026amp; use fail-fast strategy by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/514\"\u003etheskumar/python-dotenv#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance dotenv run: Switch to execvpe for better resource management and signal handling by \u003ca href=\"https://github.com/eekstunt\"\u003e\u003ccode\u003e@​eekstunt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/523\"\u003etheskumar/python-dotenv#523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add py3.13 to test.yml by \u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/527\"\u003etheskumar/python-dotenv#527\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 trove classifier by \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/535\"\u003etheskumar/python-dotenv#535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/529\"\u003etheskumar/python-dotenv#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.13 and drop 3.8 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/551\"\u003etheskumar/python-dotenv#551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update README.md by \u003ca href=\"https://github.com/chapeupreto\"\u003e\u003ccode\u003e@​chapeupreto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/516\"\u003etheskumar/python-dotenv#516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSome more s/Python-dotenv/python-dotenv/ 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/552\"\u003etheskumar/python-dotenv#552\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/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.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/pull/563\"\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/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.0] - 2025-03-25\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFeature\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.13\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003edotenv run\u003c/code\u003e, switch to \u003ccode\u003eexecvpe\u003c/code\u003e for better resource management and signal handling (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/523\"\u003e#523\u003c/a\u003e) by [\u003ca href=\"https://github.com/eekstunt\"\u003e\u003ccode\u003e@​eekstunt\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efind_dotenv\u003c/code\u003e and \u003ccode\u003eload_dotenv\u003c/code\u003e now correctly looks up at the current directory when running in debugger or pdb (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/553\"\u003e#553\u003c/a\u003e by [\u003ca href=\"https://github.com/randomseed42\"\u003e\u003ccode\u003e@​randomseed42\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMisc\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/eaf2a9129ccec6febda0f741eb3bb852c3f947bd\"\u003e\u003ccode\u003eeaf2a91\u003c/code\u003e\u003c/a\u003e Do not remove .coverage file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8716196891532eeb67d24a513e8d975437f5e8b7\"\u003e\u003ccode\u003e8716196\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.0 → 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/b87807fcad6e74332c3c63a75c92ce5814fa7a55\"\u003e\u003ccode\u003eb87807f\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/3af77d3029eb717aeec0a3c25f751b6a614a6d3c\"\u003e\u003ccode\u003e3af77d3\u003c/code\u003e\u003c/a\u003e Support reading .env from FIFOs (Unix) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/467ee22fccb2fb7ccda71a0d9e37c6ea3cb8d993\"\u003e\u003ccode\u003e467ee22\u003c/code\u003e\u003c/a\u003e Fix test failures after moving config to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/76999e741d87e958ebd74e3ae9834c0514e77a59\"\u003e\u003ccode\u003e76999e7\u003c/code\u003e\u003c/a\u003e Move more config pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/222ce2cc58ebc82ba78da8781269267b9f585932\"\u003e\u003ccode\u003e222ce2c\u003c/code\u003e\u003c/a\u003e Update to use trusted publisher on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ed4f79d202eba582b44bdf1f5deb726dd68783d\"\u003e\u003ccode\u003e8ed4f79\u003c/code\u003e\u003c/a\u003e Update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/5bf882241c607445bf02cf5b241535d62e2b99c1\"\u003e\u003ccode\u003e5bf8822\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.1 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1fe11cc737ee4399e9c51d1b69b0dd858f6b4669\"\u003e\u003ccode\u003e1fe11cc\u003c/code\u003e\u003c/a\u003e upadate changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.0.1...v1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `orjson` from 3.10.16 to 3.11.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ijl/orjson/releases\"\u003eorjson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.5\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow simple error message instead of traceback when attempting to\nbuild on unsupported Python versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.4\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eABI compatibility with CPython 3.15 alpha 1.\u003c/li\u003e\n\u003cli\u003ePublish PyPI wheels for 3.14 and manylinux i686, manylinux arm7,\nmanylinux ppc64le, manylinux s390x.\u003c/li\u003e\n\u003cli\u003eBuild now requires a C compiler.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix PyPI project metadata when using maturin 1.9.2 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix build using Rust 1.89 on amd64.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.85 or later instead of 1.82.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish PyPI wheels for CPython 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003estr\u003c/code\u003e on big-endian architectures.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse a deserialization buffer allocated per request instead of a shared buffer allocated on import.\u003c/li\u003e\n\u003cli\u003eABI compatibility with CPython 3.14 beta 4.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect escaping of the vertical tabulation character. This was\nintroduced in 3.10.17.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.17\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/ijl/orjson/blob/master/CHANGELOG.md\"\u003eorjson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.5 - 2025-12-06\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow simple error message instead of traceback when attempting to\nbuild on unsupported Python versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.4 - 2025-10-24\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eABI compatibility with CPython 3.15 alpha 1.\u003c/li\u003e\n\u003cli\u003ePublish PyPI wheels for 3.14 and manylinux i686, manylinux arm7,\nmanylinux ppc64le, manylinux s390x.\u003c/li\u003e\n\u003cli\u003eBuild now requires a C compiler.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.3 - 2025-08-26\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix PyPI project metadata when using maturin 1.9.2 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.2 - 2025-08-12\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix build using Rust 1.89 on amd64.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.85 or later instead of 1.82.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.1 - 2025-07-25\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish PyPI wheels for CPython 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003estr\u003c/code\u003e on big-endian architectures. This was introduced in 3.11.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.0 - 2025-07-15\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/fb3eb1f729c7e7b019f780af5695722c99c7c695\"\u003e\u003ccode\u003efb3eb1f\u003c/code\u003e\u003c/a\u003e 3.11.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/52688e02c51c845cde24a46cd1011a6010d10eb8\"\u003e\u003ccode\u003e52688e0\u003c/code\u003e\u003c/a\u003e Record contributors in headers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/dc083e87d5262e7dde3ba4b1d2a377b5b065a27c\"\u003e\u003ccode\u003edc083e8\u003c/code\u003e\u003c/a\u003e Further compatibility and build misc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/18f0186d47fbadd53c9db4e39a442d5b04225418\"\u003e\u003ccode\u003e18f0186\u003c/code\u003e\u003c/a\u003e Compatibility and build misc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/a4fdeb3aff125d501ec0dd0577f9b38b2b977b4f\"\u003e\u003ccode\u003ea4fdeb3\u003c/code\u003e\u003c/a\u003e 3.11.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/2e80d68afacafca8751e6a64ca05d0d4087dbd15\"\u003e\u003ccode\u003e2e80d68\u003c/code\u003e\u003c/a\u003e unlikely to cold_path, remove intrinsics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/27edea92f8da2fdfc3f1342474e2f1686f1edf55\"\u003e\u003ccode\u003e27edea9\u003c/code\u003e\u003c/a\u003e FFI through crate::ffi, partial non-CPython compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/416a8c9578da780d0d58b5e6b751793deafc610d\"\u003e\u003ccode\u003e416a8c9\u003c/code\u003e\u003c/a\u003e Unconditionally build yyjson\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/c8c1a17dca8436a2fee05ca060febd096e653d98\"\u003e\u003ccode\u003ec8c1a17\u003c/code\u003e\u003c/a\u003e edition 2024\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/af4179a1fa0aafffd0f867203b6c36e9a522f165\"\u003e\u003ccode\u003eaf4179a\u003c/code\u003e\u003c/a\u003e build maintenance, panic_immediate_abort break, test 3.15\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ijl/orjson/compare/3.10.16...3.11.5\"\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 `geoalchemy2` from 0.17.1 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect by \u003ca href=\"https://github.com/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/570\"\u003egeoalchemy/geoalchemy2#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string by \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/574\"\u003egeoalchemy/geoalchemy2#574\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/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/538\"\u003egeoalchemy/geoalchemy2#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/540\"\u003egeoalchemy/geoalchemy2#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCompile literal binds by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/543\"\u003egeoalchemy/geoalchemy2#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/544\"\u003egeoalchemy/geoalchemy2#544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore (mariadb): Stop converting WKB to WKT by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/545\"\u003egeoalchemy/geoalchemy2#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker containers by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/546\"\u003egeoalchemy/geoalchemy2#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/547\"\u003egeoalchemy/geoalchemy2#547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/553\"\u003egeoalchemy/geoalchemy2#553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/554\"\u003egeoalchemy/geoalchemy2#554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Improve readbility of benchmark results by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/556\"\u003egeoalchemy/geoalchemy2#556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/555\"\u003egeoalchemy/geoalchemy2#555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/557\"\u003egeoalchemy/geoalchemy2#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Remove warning message from MySQL/MariaDB reflection by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/560\"\u003egeoalchemy/geoalchemy2#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/561\"\u003egeoalchemy/geoalchemy2#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: correct doc strings by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/564\"\u003egeoalchemy/geoalchemy2#564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/565\"\u003egeoalchemy/geoalchemy2#565\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/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.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/geoalchemy/geoalchemy2/blob/master/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string - \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Fix doc strings for cache enabled - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(papacodebear/master) Fix: Remove warning from MySQL/MariaDB reflection \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Improve readability of benchmark results \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/556\"\u003e#556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/553\"\u003e#553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker container \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf (mariadb): Stop converting WKB to WKT \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issu...\n\n_Description has been truncated_","html_url":"https://github.com/Canner/wren-engine/pull/1401","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Canner%2Fwren-engine/issues/1401","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1401/packages"},{"uuid":"3784517827","node_id":"PR_kwDOEcrRgc67sGuz","number":4722,"state":"closed","title":"[Tech] Python - Bump the non-major-dependencies group across 1 directory with 22 updates","user":"dependabot[bot]","labels":["tech. enhancement","dependencies"],"assignees":["VincentAntoine"],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-01-06T17:08:23.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-06T09:54:16.000Z","updated_at":"2026-01-06T17:08:33.000Z","time_to_close":26047,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[Tech] Python - Bump","group_name":"non-major-dependencies","update_count":22,"packages":[{"name":"pandas","old_version":"2.3.0","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"black","old_version":"25.1.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.9.1","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"python-dotenv","old_version":"1.1.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"scrapy","old_version":"2.13.2","new_version":"2.14.0","repository_url":"https://github.com/scrapy/scrapy"},{"name":"simplejson","old_version":"3.20.1","new_version":"3.20.2","repository_url":"https://github.com/simplejson/simplejson"},{"name":"geoalchemy2","old_version":"0.17.1","new_version":"0.18.1","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"rtree","old_version":"1.4.0","new_version":"1.4.1","repository_url":"https://github.com/Toblerity/rtree"},{"name":"geopandas","old_version":"1.1.0","new_version":"1.1.2","repository_url":"https://github.com/geopandas/geopandas"},{"name":"css-inline","old_version":"0.14.6","new_version":"0.19.0","repository_url":"https://github.com/Stranger6667/css-inline"},{"name":"h3","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/uber/h3-py"},{"name":"clickhouse-connect","old_version":"0.8.17","new_version":"0.10.0","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"prefect","old_version":"3.4.7","new_version":"3.6.9","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"duckdb","old_version":"1.3.1","new_version":"1.4.3","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"plotly","old_version":"6.1.2","new_version":"6.5.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"matplotlib","old_version":"3.10.3","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"sphinx-intl","old_version":"2.3.1","new_version":"2.3.2","repository_url":"https://github.com/sphinx-doc/sphinx-intl"},{"name":"sphinx-autoapi","old_version":"3.6.0","new_version":"3.6.1","repository_url":"https://github.com/readthedocs/sphinx-autoapi"},{"name":"scikit-learn","old_version":"1.7.0","new_version":"1.8.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"ipywidgets","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/jupyter-widgets/ipywidgets"}],"path":null,"ecosystem":"pip"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the non-major-dependencies group with 22 updates in the /pipeline directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.0` | `2.3.3` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.9.1` | `7.13.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.1` | `1.2.1` |\n| [scrapy](https://github.com/scrapy/scrapy) | `2.13.2` | `2.14.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.1` | `3.20.2` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.17.1` | `0.18.1` |\n| [rtree](https://github.com/Toblerity/rtree) | `1.4.0` | `1.4.1` |\n| [geopandas](https://github.com/geopandas/geopandas) | `1.1.0` | `1.1.2` |\n| [css-inline](https://github.com/Stranger6667/css-inline) | `0.14.6` | `0.19.0` |\n| [h3](https://github.com/uber/h3-py) | `4.3.0` | `4.4.1` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.8.17` | `0.10.0` |\n| [prefect](https://github.com/PrefectHQ/prefect) | `3.4.7` | `3.6.9` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.3.1` | `1.4.3` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.1.2` | `6.5.0` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.3` | `3.10.8` |\n| [sphinx-intl](https://github.com/sphinx-doc/sphinx-intl) | `2.3.1` | `2.3.2` |\n| [sphinx-autoapi](https://github.com/readthedocs/sphinx-autoapi) | `3.6.0` | `3.6.1` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.7.0` | `1.8.0` |\n| [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) | `8.1.7` | `8.1.8` |\n\n\nUpdates `pandas` from 2.3.0 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.3.0...v2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 25.1.0 to 25.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.9.1...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.2.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.3.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.3.0 - 2025-08-09\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.2.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.1.1 to 1.2.1\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.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport reading .env 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/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI to use trusted publishing on PyPI\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/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\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.0...v1.2.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: upgrade to use ruff 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/567\"\u003etheskumar/python-dotenv#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.exit() instead of exit() 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/568\"\u003etheskumar/python-dotenv#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:  add \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e flag to disable load_dotenv (fixes \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/510\"\u003e#510\u003c/a\u003e) 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/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python@3.14: Github CI \u0026amp; tox.ini 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/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eocs: clarify what load_dotenv() does in README by \u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory 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/theskumar/python-dotenv/pull/577\"\u003etheskumar/python-dotenv#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove project metadata and config to pyproject.toml 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/pull/583\"\u003etheskumar/python-dotenv#583\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/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\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.1.1...v1.2.0\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/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.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/pull/563\"\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\u003c/blockquote\u003e\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/eaf2a9129ccec6febda0f741eb3bb852c3f947bd\"\u003e\u003ccode\u003eeaf2a91\u003c/code\u003e\u003c/a\u003e Do not remove .coverage file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8716196891532eeb67d24a513e8d975437f5e8b7\"\u003e\u003ccode\u003e8716196\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.0 → 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/b87807fcad6e74332c3c63a75c92ce5814fa7a55\"\u003e\u003ccode\u003eb87807f\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/3af77d3029eb717aeec0a3c25f751b6a614a6d3c\"\u003e\u003ccode\u003e3af77d3\u003c/code\u003e\u003c/a\u003e Support reading .env from FIFOs (Unix) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/467ee22fccb2fb7ccda71a0d9e37c6ea3cb8d993\"\u003e\u003ccode\u003e467ee22\u003c/code\u003e\u003c/a\u003e Fix test failures after moving config to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/76999e741d87e958ebd74e3ae9834c0514e77a59\"\u003e\u003ccode\u003e76999e7\u003c/code\u003e\u003c/a\u003e Move more config pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/222ce2cc58ebc82ba78da8781269267b9f585932\"\u003e\u003ccode\u003e222ce2c\u003c/code\u003e\u003c/a\u003e Update to use trusted publisher on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ed4f79d202eba582b44bdf1f5deb726dd68783d\"\u003e\u003ccode\u003e8ed4f79\u003c/code\u003e\u003c/a\u003e Update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/5bf882241c607445bf02cf5b241535d62e2b99c1\"\u003e\u003ccode\u003e5bf8822\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.1 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1fe11cc737ee4399e9c51d1b69b0dd858f6b4669\"\u003e\u003ccode\u003e1fe11cc\u003c/code\u003e\u003c/a\u003e upadate changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scrapy` from 2.13.2 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scrapy/scrapy/releases\"\u003escrapy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.14.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMore coroutine-based replacements for Deferred-based APIs\u003c/li\u003e\n\u003cli\u003eThe default priority queue is now \u003ccode\u003eDownloaderAwarePriorityQueue\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.9 and PyPy 3.10\u003c/li\u003e\n\u003cli\u003eImproved and documented the API for custom download handlers\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.scrapy.org/en/latest/news.html#scrapy-2-14-0-2026-01-05\"\u003eFull changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.13.4\u003c/h2\u003e\n\u003cp\u003eFix for the \u003ca href=\"https://nvd.nist.gov/vuln/detail/CVE-2025-6176\"\u003eCVE-2025-6176\u003c/a\u003e security issue: improved protection against decompression bombs in \u003ccode\u003eHttpCompressionMiddleware\u003c/code\u003e for responses compressed using the \u003ccode\u003ebr\u003c/code\u003e and \u003ccode\u003edeflate\u003c/code\u003e methods. Requires \u003ccode\u003ebrotli \u0026gt;= 1.2.0\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://docs.scrapy.org/en/latest/news.html#scrapy-2-13-4-2025-11-17\"\u003eFull changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.13.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged the values for \u003ccode\u003eDOWNLOAD_DELAY\u003c/code\u003e (from \u003ccode\u003e0\u003c/code\u003e to \u003ccode\u003e1\u003c/code\u003e) and \u003ccode\u003eCONCURRENT_REQUESTS_PER_DOMAIN\u003c/code\u003e (from \u003ccode\u003e8\u003c/code\u003e to \u003ccode\u003e1\u003c/code\u003e) in the default project template.\u003c/li\u003e\n\u003cli\u003eFixed several bugs in the engine initialization and exception handling logic.\u003c/li\u003e\n\u003cli\u003eAllowed running tests with Twisted 25.5.0+ again and fixed test failures with lxml 6.0.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.scrapy.org/en/2.13/news.html#scrapy-2-13-3-2025-07-02\"\u003eSee the full changelog\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/scrapy/scrapy/blob/master/docs/news.rst\"\u003escrapy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eScrapy 2.14.0 (2026-01-05)\u003c/h2\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMore coroutine-based replacements for Deferred-based APIs\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default priority queue is now \u003ccode\u003eDownloaderAwarePriorityQueue\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for Python 3.9 and PyPy 3.10\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved and documented the API for custom download handlers\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eModified requirements\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n-   Dropped support for Python 3.9.\n    (:issue:`7121`)\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for PyPy 3.10.\u003cbr /\u003e\n(:issue:\u003ccode\u003e7050\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIncreased the minimum versions of the following dependencies:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003elxml_: 4.6.0 → 4.6.4\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePillow_ (optional dependency): 8.0.0 → 8.3.2\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ebotocore_ (optional dependency): 1.4.87 → 1.13.45\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRestored support for \u003ccode\u003ebrotlicffi\u003c/code\u003e dropped in Scrapy 2.13.4. Its minimum\u003cbr /\u003e\nsupported version is now \u003ccode\u003e1.2.0.0\u003c/code\u003e.\u003cbr /\u003e\n(:issue:\u003ccode\u003e7160\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBackward-incompatible changes\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf you set the :setting:\u003ccode\u003eTWISTED_REACTOR\u003c/code\u003e setting to a :ref:\u003ccode\u003enon-asyncio value \u0026lt;disable-asyncio\u0026gt;\u003c/code\u003e at the :ref:\u003ccode\u003espider level \u0026lt;spider-settings\u0026gt;\u003c/code\u003e, you\nmay now need to set the :setting:\u003ccode\u003eFORCE_CRAWLER_PROCESS\u003c/code\u003e setting to\n\u003ccode\u003eTrue\u003c/code\u003e when running Scrapy via :ref:\u003ccode\u003eits command-line tool \u0026lt;topics-commands-crawlerprocess\u0026gt;\u003c/code\u003e to avoid a reactor mismatch exception.\n(:issue:\u003ccode\u003e6845\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ccode\u003elog_count/*\u003c/code\u003e stats no longer count some of the early messages that\nthey counted before. While the earliest log messages, emitted before the\ncounter is initialized, were never counted, the counter initialization now\nhappens later than in previous Scrapy versions. You may need to adjust\nexpected values if you retrieve and compare values of these stats in your\ncode.\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/scrapy/scrapy/commit/3ac1192f35fc32d01c69c929eed85601fb0405e8\"\u003e\u003ccode\u003e3ac1192\u003c/code\u003e\u003c/a\u003e Bump version: 2.13.4 → 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapy/scrapy/commit/7bef98b4f14a29f8f760a67c21edf6a6bee4dad0\"\u003e\u003ccode\u003e7bef98b\u003c/code\u003e\u003c/a\u003e Release notes for 2.14.0 (\u003ca href=\"https://redirect.github.com/scrapy/scrapy/issues/7035\"\u003e#7035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapy/scrapy/commit/d1bd8eb49f7aba9289e4ff692006cead8bcd9080\"\u003e\u003ccode\u003ed1bd8eb\u003c/code\u003e\u003c/a\u003e Async API for download handlers. (\u003ca href=\"https://redirect.github.com/scrapy/scrapy/issues/7164\"\u003e#7164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapy/scrapy/commit/a2463325db2fd128e27da45d6ee36e21126c1bf5\"\u003e\u003ccode\u003ea246332\u003c/code\u003e\u003c/a\u003e Allow Crawler.crawl_async() without asyncio. (\u003ca href=\"https://redirect.github.com/scrapy/scrapy/issues/7202\"\u003e#7202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapy/scrapy/commit/9381ad893dfea0e8dac73fc78cb609b6017bde9a\"\u003e\u003ccode\u003e9381ad8\u003c/code\u003e\u003c/a\u003e Remove outdated version marker directives (\u0026lt; 2.8.0) from documentation (\u003ca href=\"https://redirect.github.com/scrapy/scrapy/issues/7198\"\u003e#7198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapy/scrapy/commit/180ca39b230590a2a2862c8d18c574661b1d16ad\"\u003e\u003ccode\u003e180ca39\u003c/code\u003e\u003c/a\u003e Deprecate returning Deferreds from pipeline methods (\u003ca href=\"https://redirect.github.com/scrapy/scrapy/issues/7179\"\u003e#7179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapy/scrapy/commit/5a7e132486f3337956f684fffcac77cb6ad5a8d2\"\u003e\u003ccode\u003e5a7e132\u003c/code\u003e\u003c/a\u003e Restore and deprecate the spider arg of Downloader._get_slot(). (\u003ca href=\"https://redirect.github.com/scrapy/scrapy/issues/7178\"\u003e#7178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapy/scrapy/commit/c49ae2115afd05afd7d0175f392e262e01b2779e\"\u003e\u003ccode\u003ec49ae21\u003c/code\u003e\u003c/a\u003e Refactor MediaPipeline.process_item() to async def (\u003ca href=\"https://redirect.github.com/scrapy/scrapy/issues/7177\"\u003e#7177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapy/scrapy/commit/588f3d4f65e292424d227e8a0498bcba2d395781\"\u003e\u003ccode\u003e588f3d4\u003c/code\u003e\u003c/a\u003e Remove docs mentioning deprecated spider attrs. (\u003ca href=\"https://redirect.github.com/scrapy/scrapy/issues/7176\"\u003e#7176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapy/scrapy/commit/d8583a89c7f9d5a444ef48039af1101c0cbfcef8\"\u003e\u003ccode\u003ed8583a8\u003c/code\u003e\u003c/a\u003e Change default priority queue to DownloaderAwarePriorityQueue (\u003ca href=\"https://redirect.github.com/scrapy/scrapy/issues/6940\"\u003e#6940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scrapy/scrapy/compare/2.13.2...2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplejson` from 3.20.1 to 3.20.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/releases\"\u003esimplejson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.20.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a test for the min and max floats by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/337\"\u003esimplejson/simplejson#337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable speedups on GraalPy same as on PyPy by \u003ca href=\"https://github.com/timfel\"\u003e\u003ccode\u003e@​timfel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/339\"\u003esimplejson/simplejson#339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate changelog and version for v3.20.2 by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/340\"\u003esimplejson/simplejson#340\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/timfel\"\u003e\u003ccode\u003e@​timfel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/339\"\u003esimplejson/simplejson#339\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v3.20.1...v3.20.2\"\u003ehttps://github.com/simplejson/simplejson/compare/v3.20.1...v3.20.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/simplejson/simplejson/blob/master/CHANGES.txt\"\u003esimplejson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 3.20.2 released 2025-09-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDisable speedups on GraalPy smae as on PyPy\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/339\"\u003esimplejson/simplejson#339\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 3.20.1 released 2025-02-14\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDo not memoize keys before they are coerced to string\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/329\"\u003esimplejson/simplejson#329\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 3.19.3 released 2024-08-14\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated test \u0026amp; build matrix to include Python 3.13.\nDropped wheel support for Python 2.7 on macOS.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/326\"\u003esimplejson/simplejson#326\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 3.19.2 released 2023-10-05\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated test \u0026amp; build matrix to include Python 3.12 and use\nGitHub Actions as a Trusted Publisher (OIDC)\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/317\"\u003esimplejson/simplejson#317\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 3.19.1 released 2023-04-06\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThis release contains security hardening measures based on recommendations\nby a security audit sponsored by OSTIF and conducted by X41 D-Sec GmbH.\nSeveral of these measures include changing defaults to be more strict,\nby default simplejson will now only consume and produce compliant JSON,\nbut the flags still exist for any backwards compatibility needs.\nNo high priority issues were discovered, the reference count\nleak is thought to be unreachable since the digits of the float are\nchecked before PyOS_string_to_double is called.\nA link to the public version of this report will be included in a\nfuture release of simplejson. The following fixes were implemented in\none PR: \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/313\"\u003esimplejson/simplejson#313\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix invalid handling of unicode escape sequences in the pure Python\nimplementation of the decoder (SJ-PT-23-01)\u003c/li\u003e\n\u003cli\u003eFix missing reference count decrease if PyOS_string_to_double raises\nan exception in Python 2.x; was probably unreachable (SJ-PT-23-02)\u003c/li\u003e\n\u003cli\u003eBackport the integer string length limitation from Python 3.11 to\nlimit quadratic number parsing (SJ-PT-23-03)\u003c/li\u003e\n\u003cli\u003eFix inconsistencies with error messages between the C and Python\nimplementations (SJ-PT-23-100)\u003c/li\u003e\n\u003cli\u003eRemove unused unichr import from encoder (SJ-PT-23-101)\u003c/li\u003e\n\u003cli\u003eRemove unused namedtuple_as_object and tuple_as_array arguments from\nsimplejson.load (SJ-PT-23-102)\u003c/li\u003e\n\u003cli\u003eRemove vestigial _one_shot code from iterencode (SJ-PT-23-103)\u003c/li\u003e\n\u003cli\u003eChange default of allow_nan from True to False and add allow_nan\nto decoder (SJ-PT-23-107)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/10e5aaffd4823faf5dedcea8bc43ce2c82c5ca4c\"\u003e\u003ccode\u003e10e5aaf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/340\"\u003e#340\u003c/a\u003e from simplejson/changes-v3.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/39ba9df4cbbb3845ee0c778ba646a94777ccf7e5\"\u003e\u003ccode\u003e39ba9df\u003c/code\u003e\u003c/a\u003e Update changelog and version for v3.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/5f9f96fe83fb33d371d35d99ae028a8e7c0f574f\"\u003e\u003ccode\u003e5f9f96f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/339\"\u003e#339\u003c/a\u003e from timfel/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/feb07a3f18a0c5672af154fbc8bb4e39a638242d\"\u003e\u003ccode\u003efeb07a3\u003c/code\u003e\u003c/a\u003e Test pure Python code, also on PyPy and GraalPy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/ae69b83218dd1e250b3e2158f924ab6b7b9ea75d\"\u003e\u003ccode\u003eae69b83\u003c/code\u003e\u003c/a\u003e Disable speedups on GraalPy same as on PyPy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/fd905ba3d7fe7bc8acc6f797f17145234cd65df9\"\u003e\u003ccode\u003efd905ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/337\"\u003e#337\u003c/a\u003e from simplejson/float-range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/92c0230c6038a1a7b4736c7d63c28b44eb76f256\"\u003e\u003ccode\u003e92c0230\u003c/code\u003e\u003c/a\u003e Add a test for the min and max floats\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/simplejson/simplejson/compare/v3.20.1...v3.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geoalchemy2` from 0.17.1 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect by \u003ca href=\"https://github.com/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/570\"\u003egeoalchemy/geoalchemy2#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string by \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/574\"\u003egeoalchemy/geoalchemy2#574\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/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/538\"\u003egeoalchemy/geoalchemy2#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/540\"\u003egeoalchemy/geoalchemy2#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCompile literal binds by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/543\"\u003egeoalchemy/geoalchemy2#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/544\"\u003egeoalchemy/geoalchemy2#544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore (mariadb): Stop converting WKB to WKT by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/545\"\u003egeoalchemy/geoalchemy2#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker containers by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/546\"\u003egeoalchemy/geoalchemy2#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/547\"\u003egeoalchemy/geoalchemy2#547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/553\"\u003egeoalchemy/geoalchemy2#553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/554\"\u003egeoalchemy/geoalchemy2#554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Improve readbility of benchmark results by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/556\"\u003egeoalchemy/geoalchemy2#556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/555\"\u003egeoalchemy/geoalchemy2#555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/557\"\u003egeoalchemy/geoalchemy2#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Remove warning message from MySQL/MariaDB reflection by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/560\"\u003egeoalchemy/geoalchemy2#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/561\"\u003egeoalchemy/geoalchemy2#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: correct doc strings by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/564\"\u003egeoalchemy/geoalchemy2#564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/565\"\u003egeoalchemy/geoalchemy2#565\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/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.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/geoalchemy/geoalchemy2/blob/master/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string - \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Fix doc strings for cache enabled - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(papacodebear/master) Fix: Remove warning from MySQL/MariaDB reflection \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Improve readability of benchmark results \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/556\"\u003e#556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/553\"\u003e#553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker container \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf (mariadb): Stop converting WKB to WKT \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/544\"\u003e#544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Compile literal binds properly \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/540\"\u003e#540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0c311122e5228a885e262d8f79b037cb74c0949b\"\u003e\u003ccode\u003e0c31112\u003c/code\u003e\u003c/a\u003e Release: 0.18.1 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/75f87fac699ed31579ef93dffc59cc25bda241a8\"\u003e\u003ccode\u003e75f87fa\u003c/code\u003e\u003c/a\u003e Fix: Allow scientific notation within WKT string (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8653df3a1b0236556f1c39c916f0fb717475a6d1\"\u003e\u003ccode\u003e8653df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/3d6099504023afda68137f0ac2d041986159dac9\"\u003e\u003ccode\u003e3d60995\u003c/code\u003e\u003c/a\u003e Fix (mysql): Fix failing test for MySQL dialect (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/60767082df9f4587fadd56ab94847ebc39df8295\"\u003e\u003ccode\u003e6076708\u003c/code\u003e\u003c/a\u003e Release: 0.18.0 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/565\"\u003e#565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/e13112177bdf79cae0d72a6e89d815dc272e3dc5\"\u003e\u003ccode\u003ee131121\u003c/code\u003e\u003c/a\u003e Feat: Add support of spatial indexes for Raster type for PostgreSQL (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0b432086a0c3b8ab160c5cc1864aa65e02f35362\"\u003e\u003ccode\u003e0b43208\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8791b2eec013f21f599ca060d9fee4aba72ec2a1\"\u003e\u003ccode\u003e8791b2e\u003c/code\u003e\u003c/a\u003e Docs: Fix doc strings for cache enabled (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/d3c1d04c8b462c61132403e44a7a4f04a487c142\"\u003e\u003ccode\u003ed3c1d04\u003c/code\u003e\u003c/a\u003e Chore: Move reflection type registering (\u003ca href=\"https://redirect.github...\n\n_Description has been truncated_","html_url":"https://github.com/MTES-MCT/monitorfish/pull/4722","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MTES-MCT%2Fmonitorfish/issues/4722","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4722/packages"},{"uuid":"3774232227","node_id":"PR_kwDOLG-pxs67Le-e","number":129,"state":"open","title":"Bump the non-major-dependencies group across 1 directory with 11 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-01T07:09:48.000Z","updated_at":"2026-02-01T08:17:23.987Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"non-major-dependencies","update_count":11,"packages":[{"name":"pandas","old_version":"2.3.2","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"duckdb","old_version":"1.3.2","new_version":"1.4.3","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"black","old_version":"25.1.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"python-dotenv","old_version":"1.1.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"geopandas","old_version":"1.1.1","new_version":"1.1.2","repository_url":"https://github.com/geopandas/geopandas"},{"name":"simplejson","old_version":"3.20.1","new_version":"3.20.2","repository_url":"https://github.com/simplejson/simplejson"},{"name":"geoalchemy2","old_version":"0.18.0","new_version":"0.18.1","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"clickhouse-connect","old_version":"0.8.18","new_version":"0.10.0","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"h3","old_version":"4.3.1","new_version":"4.4.1","repository_url":"https://github.com/uber/h3-py"}],"path":null,"ecosystem":"pip"},"body":"Bumps the non-major-dependencies group with 11 updates in the /forklift directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.2` | `2.3.3` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.3.2` | `1.4.3` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.1` | `1.2.1` |\n| [geopandas](https://github.com/geopandas/geopandas) | `1.1.1` | `1.1.2` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.1` | `3.20.2` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.18.0` | `0.18.1` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.8.18` | `0.10.0` |\n| [h3](https://github.com/uber/h3-py) | `4.3.1` | `4.4.1` |\n\n\nUpdates `pandas` from 2.3.2 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\u003c/blockquote\u003e\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.3.2...v2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `duckdb` from 1.3.2 to 1.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/duckdb/duckdb-python/releases\"\u003educkdb's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePython DuckDB v1.4.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix project metadata by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/174\"\u003educkdb/duckdb-python#174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd filename_pattern to to_parquet Python API by \u003ca href=\"https://github.com/matthewbayer\"\u003e\u003ccode\u003e@​matthewbayer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/201\"\u003educkdb/duckdb-python#201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd windows arm64 build by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/211\"\u003educkdb/duckdb-python#211\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix adbc test imports by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/215\"\u003educkdb/duckdb-python#215\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd file_size_bytes to to_parquet by \u003ca href=\"https://github.com/nicornk\"\u003e\u003ccode\u003e@​nicornk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/204\"\u003educkdb/duckdb-python#204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[minor][spark] Minor bugfixes by \u003ca href=\"https://github.com/Dharin-shah\"\u003e\u003ccode\u003e@​Dharin-shah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/180\"\u003educkdb/duckdb-python#180\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/matthewbayer\"\u003e\u003ccode\u003e@​matthewbayer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/201\"\u003educkdb/duckdb-python#201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicornk\"\u003e\u003ccode\u003e@​nicornk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/204\"\u003educkdb/duckdb-python#204\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/duckdb/duckdb-python/compare/v1.4.2...v1.4.3\"\u003ehttps://github.com/duckdb/duckdb-python/compare/v1.4.2...v1.4.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ePython DuckDB v1.4.2\u003c/h2\u003e\n\u003cp\u003eThis is a bug fix release for various issues discovered after we released v1.4.1.\u003c/p\u003e\n\u003cp\u003eAlso see the \u003ca href=\"https://github.com/duckdb/duckdb/releases/tag/v1.4.2\"\u003eDuckDB v1.4.2 Changelog\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/116\"\u003educkdb/duckdb-python#116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ADBC driver path resolution when \u003ccode\u003eimportlib.util\u003c/code\u003e was not implicitly loaded  by \u003ca href=\"https://github.com/henryharbeck\"\u003e\u003ccode\u003e@​henryharbeck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/135\"\u003educkdb/duckdb-python#135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd targeted test workflow by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/145\"\u003educkdb/duckdb-python#145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove xfail annotations on adbc tests by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/147\"\u003educkdb/duckdb-python#147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix config dict value typehint by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/151\"\u003educkdb/duckdb-python#151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd df data and tz type columns back into the same loc after type con… by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/150\"\u003educkdb/duckdb-python#150\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable pyarrow with python 3.14 by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/152\"\u003educkdb/duckdb-python#152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espark imports by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/157\"\u003educkdb/duckdb-python#157\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix failing test due to changed error msg by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/158\"\u003educkdb/duckdb-python#158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd explicit .pl(lazy=True) overload by \u003ca href=\"https://github.com/J-Meyers\"\u003e\u003ccode\u003e@​J-Meyers\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/172\"\u003educkdb/duckdb-python#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix InsertRelation on attached database by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/155\"\u003educkdb/duckdb-python#155\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/duckdb/duckdb-python/compare/v1.4.1...v1.4.2\"\u003ehttps://github.com/duckdb/duckdb-python/compare/v1.4.1...v1.4.2\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/duckdb/duckdb-python/commit/49da1d7f2396cade0a84af275e1b8601b64054c6\"\u003e\u003ccode\u003e49da1d7\u003c/code\u003e\u003c/a\u003e pin new duckdb core SHA\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/030a76a475e263cf9bf09289b69c85951664309c\"\u003e\u003ccode\u003e030a76a\u003c/code\u003e\u003c/a\u003e [minor][spark] Minor bugfixes (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/180\"\u003e#180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/bf7b2a0f8ca506d8d07ddfe295e6f1278ab69024\"\u003e\u003ccode\u003ebf7b2a0\u003c/code\u003e\u003c/a\u003e add file_size_bytes to to_parquet (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/204\"\u003e#204\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/6de71c437994d63148eeb7a03ad5ba198eb565d8\"\u003e\u003ccode\u003e6de71c4\u003c/code\u003e\u003c/a\u003e feat: add file_size_bytes to to_parquet\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/743fdb2a916734336369755d37765e58b42a7014\"\u003e\u003ccode\u003e743fdb2\u003c/code\u003e\u003c/a\u003e Merge branch 'v1.4-andium' into minor-bugfixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/b8c499c266f6bf343d4b3246c3323418182af1e9\"\u003e\u003ccode\u003eb8c499c\u003c/code\u003e\u003c/a\u003e remove unncessary comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/e410e7a0449fcf51e091bd2015e07fd4db30f7d8\"\u003e\u003ccode\u003ee410e7a\u003c/code\u003e\u003c/a\u003e revert unncessary change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/0bfeccbe380a86fa7ef5163cce58376a4083cd91\"\u003e\u003ccode\u003e0bfeccb\u003c/code\u003e\u003c/a\u003e fix precommit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/e3e4b96d67a8b66c3620aa1d5726664cf0c3b0ef\"\u003e\u003ccode\u003ee3e4b96\u003c/code\u003e\u003c/a\u003e fix test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/bfa84c15e38849a1c01222724e49bc3cdd63d6b0\"\u003e\u003ccode\u003ebfa84c1\u003c/code\u003e\u003c/a\u003e fix ruff check\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/duckdb/duckdb-python/compare/v1.3.2...v1.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 25.1.0 to 25.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.6 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.10.6...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.1.1 to 1.2.1\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.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport reading .env 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/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI to use trusted publishing on PyPI\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/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\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.0...v1.2.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: upgrade to use ruff 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/567\"\u003etheskumar/python-dotenv#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.exit() instead of exit() 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/568\"\u003etheskumar/python-dotenv#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:  add \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e flag to disable load_dotenv (fixes \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/510\"\u003e#510\u003c/a\u003e) 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/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python@3.14: Github CI \u0026amp; tox.ini 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/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eocs: clarify what load_dotenv() does in README by \u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory 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/theskumar/python-dotenv/pull/577\"\u003etheskumar/python-dotenv#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove project metadata and config to pyproject.toml 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/pull/583\"\u003etheskumar/python-dotenv#583\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/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\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.1.1...v1.2.0\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/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.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/pull/563\"\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\u003c/blockquote\u003e\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/eaf2a9129ccec6febda0f741eb3bb852c3f947bd\"\u003e\u003ccode\u003eeaf2a91\u003c/code\u003e\u003c/a\u003e Do not remove .coverage file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8716196891532eeb67d24a513e8d975437f5e8b7\"\u003e\u003ccode\u003e8716196\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.0 → 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/b87807fcad6e74332c3c63a75c92ce5814fa7a55\"\u003e\u003ccode\u003eb87807f\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/3af77d3029eb717aeec0a3c25f751b6a614a6d3c\"\u003e\u003ccode\u003e3af77d3\u003c/code\u003e\u003c/a\u003e Support reading .env from FIFOs (Unix) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/467ee22fccb2fb7ccda71a0d9e37c6ea3cb8d993\"\u003e\u003ccode\u003e467ee22\u003c/code\u003e\u003c/a\u003e Fix test failures after moving config to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/76999e741d87e958ebd74e3ae9834c0514e77a59\"\u003e\u003ccode\u003e76999e7\u003c/code\u003e\u003c/a\u003e Move more config pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/222ce2cc58ebc82ba78da8781269267b9f585932\"\u003e\u003ccode\u003e222ce2c\u003c/code\u003e\u003c/a\u003e Update to use trusted publisher on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ed4f79d202eba582b44bdf1f5deb726dd68783d\"\u003e\u003ccode\u003e8ed4f79\u003c/code\u003e\u003c/a\u003e Update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/5bf882241c607445bf02cf5b241535d62e2b99c1\"\u003e\u003ccode\u003e5bf8822\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.1 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1fe11cc737ee4399e9c51d1b69b0dd858f6b4669\"\u003e\u003ccode\u003e1fe11cc\u003c/code\u003e\u003c/a\u003e upadate changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geopandas` from 1.1.1 to 1.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geopandas/geopandas/releases\"\u003egeopandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue that caused an error in \u003ccode\u003eGeoDataFrame.from_features\u003c/code\u003e when there is no \u003ccode\u003eproperties\u003c/code\u003e field (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3599\"\u003e#3599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_file\u003c/code\u003e and \u003ccode\u003eto_file\u003c/code\u003e errors (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3682\"\u003e#3682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_parquet\u003c/code\u003e with \u003ccode\u003eto_pandas_kwargs\u003c/code\u003e for complex (list/struct) arrow types (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3640\"\u003e#3640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evalue_counts\u003c/code\u003e on GeoSeries now preserves CRS in index (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3669\"\u003e#3669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix f-string placeholders appearing in error messages when \u003ccode\u003epyogrio\u003c/code\u003e cannot be imported (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3682\"\u003e#3682\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_parquet\u003c/code\u003e with \u003ccode\u003eto_pandas_kwargs\u003c/code\u003e for complex (list/struct) arrow types (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3640\"\u003e#3640\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.to_json\u003c/code\u003e now provides a clearer error message when called on a GeoDataFrame without an active geometry\ncolumn (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3648\"\u003e#3648\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eCalling \u003ccode\u003edel gdf[\u0026quot;geometry\u0026quot;]\u003c/code\u003e now will downcast to a \u003ccode\u003epd.DataFrame\u003c/code\u003e if there are no geometry columns left\nin the dataframe (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3648\"\u003e#3648\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix SQL injection in \u003ccode\u003eto_postgis\u003c/code\u003e via geometry column name (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3681\"\u003e#3681\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geopandas/geopandas/compare/v1.1.1...v1.1.2\"\u003ehttps://github.com/geopandas/geopandas/compare/v1.1.1...v1.1.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/geopandas/geopandas/blob/main/CHANGELOG.md\"\u003egeopandas's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.1.2 (December 22, 2025)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue that caused an error in \u003ccode\u003eGeoDataFrame.from_features\u003c/code\u003e when there is no \u003ccode\u003eproperties\u003c/code\u003e field (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3599\"\u003e#3599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_file\u003c/code\u003e and \u003ccode\u003eto_file\u003c/code\u003e errors (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3682\"\u003e#3682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_parquet\u003c/code\u003e with \u003ccode\u003eto_pandas_kwargs\u003c/code\u003e for complex (list/struct) arrow types (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3640\"\u003e#3640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evalue_counts\u003c/code\u003e on GeoSeries now preserves CRS in index (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3669\"\u003e#3669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix f-string placeholders appearing in error messages when \u003ccode\u003epyogrio\u003c/code\u003e cannot be imported (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3682\"\u003e#3682\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_parquet\u003c/code\u003e with \u003ccode\u003eto_pandas_kwargs\u003c/code\u003e for complex (list/struct) arrow types (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3640\"\u003e#3640\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.to_json\u003c/code\u003e now provides a clearer error message when called on a GeoDataFrame without an active geometry\ncolumn (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3648\"\u003e#3648\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eCalling \u003ccode\u003edel gdf[\u0026quot;geometry\u0026quot;]\u003c/code\u003e now will downcast to a \u003ccode\u003epd.DataFrame\u003c/code\u003e if there are no geometry columns left\nin the dataframe (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3648\"\u003e#3648\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix SQL injection in \u003ccode\u003eto_postgis\u003c/code\u003e via geometry column name (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3681\"\u003e#3681\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/geopandas/geopandas/commit/81214bf9f3eaba9f5fdcfd141ae8d16fa17fd860\"\u003e\u003ccode\u003e81214bf\u003c/code\u003e\u003c/a\u003e RLS: backport fixes for 1.1.2 (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3693\"\u003e#3693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/62dd4a2469bb6236b83fb91466a8183321da04da\"\u003e\u003ccode\u003e62dd4a2\u003c/code\u003e\u003c/a\u003e COMPAT: pandas 3 refactor breaks \u003cstrong\u003efinalize\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3611\"\u003e#3611\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/geopandas/geopandas/compare/v1.1.1...v1.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplejson` from 3.20.1 to 3.20.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/releases\"\u003esimplejson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.20.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a test for the min and max floats by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/337\"\u003esimplejson/simplejson#337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable speedups on GraalPy same as on PyPy by \u003ca href=\"https://github.com/timfel\"\u003e\u003ccode\u003e@​timfel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/339\"\u003esimplejson/simplejson#339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate changelog and version for v3.20.2 by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/340\"\u003esimplejson/simplejson#340\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/timfel\"\u003e\u003ccode\u003e@​timfel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/339\"\u003esimplejson/simplejson#339\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v3.20.1...v3.20.2\"\u003ehttps://github.com/simplejson/simplejson/compare/v3.20.1...v3.20.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/simplejson/simplejson/blob/master/CHANGES.txt\"\u003esimplejson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 3.20.2 released 2025-09-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDisable speedups on GraalPy smae as on PyPy\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/339\"\u003esimplejson/simplejson#339\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 3.20.1 released 2025-02-14\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDo not memoize keys before they are coerced to string\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/329\"\u003esimplejson/simplejson#329\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 3.19.3 released 2024-08-14\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated test \u0026amp; build matrix to include Python 3.13.\nDropped wheel support for Python 2.7 on macOS.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/326\"\u003esimplejson/simplejson#326\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 3.19.2 released 2023-10-05\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated test \u0026amp; build matrix to include Python 3.12 and use\nGitHub Actions as a Trusted Publisher (OIDC)\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/317\"\u003esimplejson/simplejson#317\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 3.19.1 released 2023-04-06\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThis release contains security hardening measures based on recommendations\nby a security audit sponsored by OSTIF and conducted by X41 D-Sec GmbH.\nSeveral of these measures include changing defaults to be more strict,\nby default simplejson will now only consume and produce compliant JSON,\nbut the flags still exist for any backwards compatibility needs.\nNo high priority issues were discovered, the reference count\nleak is thought to be unreachable since the digits of the float are\nchecked before PyOS_string_to_double is called.\nA link to the public version of this report will be included in a\nfuture release of simplejson. The following fixes were implemented in\none PR: \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/313\"\u003esimplejson/simplejson#313\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix invalid handling of unicode escape sequences in the pure Python\nimplementation of the decoder (SJ-PT-23-01)\u003c/li\u003e\n\u003cli\u003eFix missing reference count decrease if PyOS_string_to_double raises\nan exception in Python 2.x; was probably unreachable (SJ-PT-23-02)\u003c/li\u003e\n\u003cli\u003eBackport the integer string length limitation from Python 3.11 to\nlimit quadratic number parsing (SJ-PT-23-03)\u003c/li\u003e\n\u003cli\u003eFix inconsistencies with error messages between the C and Python\nimplementations (SJ-PT-23-100)\u003c/li\u003e\n\u003cli\u003eRemove unused unichr import from encoder (SJ-PT-23-101)\u003c/li\u003e\n\u003cli\u003eRemove unused namedtuple_as_object and tuple_as_array arguments from\nsimplejson.load (SJ-PT-23-102)\u003c/li\u003e\n\u003cli\u003eRemove vestigial _one_shot code from iterencode (SJ-PT-23-103)\u003c/li\u003e\n\u003cli\u003eChange default of allow_nan from True to False and add allow_nan\nto decoder (SJ-PT-23-107)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/10e5aaffd4823faf5dedcea8bc43ce2c82c5ca4c\"\u003e\u003ccode\u003e10e5aaf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/340\"\u003e#340\u003c/a\u003e from simplejson/changes-v3.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/39ba9df4cbbb3845ee0c778ba646a94777ccf7e5\"\u003e\u003ccode\u003e39ba9df\u003c/code\u003e\u003c/a\u003e Update changelog and version for v3.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/5f9f96fe83fb33d371d35d99ae028a8e7c0f574f\"\u003e\u003ccode\u003e5f9f96f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/339\"\u003e#339\u003c/a\u003e from timfel/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/feb07a3f18a0c5672af154fbc8bb4e39a638242d\"\u003e\u003ccode\u003efeb07a3\u003c/code\u003e\u003c/a\u003e Test pure Python code, also on PyPy and GraalPy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/ae69b83218dd1e250b3e2158f924ab6b7b9ea75d\"\u003e\u003ccode\u003eae69b83\u003c/code\u003e\u003c/a\u003e Disable speedups on GraalPy same as on PyPy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/fd905ba3d7fe7bc8acc6f797f17145234cd65df9\"\u003e\u003ccode\u003efd905ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/337\"\u003e#337\u003c/a\u003e from simplejson/float-range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/92c0230c6038a1a7b4736c7d63c28b44eb76f256\"\u003e\u003ccode\u003e92c0230\u003c/code\u003e\u003c/a\u003e Add a test for the min and max floats\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/simplejson/simplejson/compare/v3.20.1...v3.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geoalchemy2` from 0.18.0 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect by \u003ca href=\"https://github.com/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/570\"\u003egeoalchemy/geoalchemy2#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string by \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/574\"\u003egeoalchemy/geoalchemy2#574\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/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.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/geoalchemy/geoalchemy2/blob/master/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string - \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\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/geoalchemy/geoalchemy2/commit/0c311122e5228a885e262d8f79b037cb74c0949b\"\u003e\u003ccode\u003e0c31112\u003c/code\u003e\u003c/a\u003e Release: 0.18.1 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/75f87fac699ed31579ef93dffc59cc25bda241a8\"\u003e\u003ccode\u003e75f87fa\u003c/code\u003e\u003c/a\u003e Fix: Allow scientific notation within WKT string (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8653df3a1b0236556f1c39c916f0fb717475a6d1\"\u003e\u003ccode\u003e8653df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/3d6099504023afda68137f0ac2d041986159dac9\"\u003e\u003ccode\u003e3d60995\u003c/code\u003e\u003c/a\u003e Fix (mysql): Fix failing test for MySQL dialect (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `clickhouse-connect` from 0.8.18 to 0.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/releases\"\u003eclickhouse-connect's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded SQLAlchemy core API support for \u003ccode\u003eARRAY JOIN\u003c/code\u003e and \u003ccode\u003eFINAL\u003c/code\u003e modifier. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/579\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python 3.14 support 🎉  (non-free-threaded build only; free-threaded builds are not yet supported). Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/574\"\u003e#574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eutc_tz_aware\u003c/code\u003e parameter to client and query methods to opt in to returning timezone-aware UTC objects for \u003ccode\u003eDateTime\u003c/code\u003e/\u003ccode\u003eDateTime64\u003c/code\u003e columns. Default behavior remains the same and returns tz naive objects for backward compatibility.\n\u003cul\u003e\n\u003cli\u003eNote: this parameter will likely be removed and only return tz-aware dts in some future release. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eexecutor\u003c/code\u003e parameter to \u003ccode\u003eAsyncClient\u003c/code\u003e constructor to allow passing a custom executor for async operations. This allows users to control the concurrency and thread pool used by the async client.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed DST fallback bug in \u003ccode\u003eDateTime\u003c/code\u003e and \u003ccode\u003eDateTime64\u003c/code\u003e types caused by passing potentially ambiguous times to \u003ccode\u003epd.DateTimeIndex\u003c/code\u003e constructor. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/585\"\u003e#585\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue with JSON key dot escaping. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/571\"\u003e#571\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/prokofyevDmitry\"\u003e\u003ccode\u003e@​prokofyevDmitry\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/569\"\u003eClickHouse/clickhouse-connect#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wiese-m\"\u003e\u003ccode\u003e@​wiese-m\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/583\"\u003eClickHouse/clickhouse-connect#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/meirdev\"\u003e\u003ccode\u003e@​meirdev\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/578\"\u003eClickHouse/clickhouse-connect#578\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/compare/v0.9.2...v0.10.0\"\u003ehttps://github.com/ClickHouse/clickhouse-connect/compare/v0.9.2...v0.10.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.9.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003epython_requires\u003c/code\u003e to drop Python 3.8 and advertise support for 3.9–3.13\u003c/li\u003e\n\u003cli\u003eAllow passing \u003ccode\u003erole\u003c/code\u003e as a field in the \u003ccode\u003esettings\u003c/code\u003e keyword argument to set a role for a specific query\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/svix-jbrown\"\u003e\u003ccode\u003e@​svix-jbrown\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/550\"\u003eClickHouse/clickhouse-connect#550\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/compare/v0.9.1...v0.9.2\"\u003ehttps://github.com/ClickHouse/clickhouse-connect/compare/v0.9.1...v0.9.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.9.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed typing issue that required numpy to be installed during clickhouse_connect import\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/compare/v0.9.0...v0.9.1\"\u003ehttps://github.com/ClickHouse/clickhouse-connect/compare/v0.9.0...v0.9.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.9.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eWARNING: BREAKING CHANGE\u003c/strong\u003e — Removed support for sqlalchemy 1.3 which reached its EOL in 2021. The minimum required version is now 1.4.40.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWARNING: BREAKING CHANGE\u003c/strong\u003e — Behavior for reading from IPv6 columns has changed:\n\u003cul\u003e\n\u003cli\u003eWith \u003ccode\u003eread_format='native'\u003c/code\u003e, the client will \u003cstrong\u003ealways\u003c/strong\u003e return \u003ca href=\"https://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address\"\u003e\u003ccode\u003eipaddress.IPv6Address\u003c/code\u003e\u003c/a\u003e objects, even for IPv4-mapped addresses (e.g., \u003ccode\u003e\u0026quot;::ffff:192.168.1.1\u0026quot;\u003c/code\u003e). Previously, the client returned \u003ca href=\"https://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address\"\u003e\u003ccode\u003eipaddress.IPv4Address\u003c/code\u003e\u003c/a\u003e objects for these cases. This change enforces type consistency and avoids surprising implicit conversions. If your application requires IPv4 objects, you can explicitly convert using the \u003ca href=\"https://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.ipv4_mapped\"\u003e\u003ccode\u003eipv4_mapped\u003c/code\u003e\u003c/a\u003e attribute of \u003ccode\u003eIPv6Address\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eWith \u003ccode\u003eread_format='string'\u003c/code\u003e, the client will \u003cstrong\u003ealways\u003c/strong\u003e return IPv6 string representations, e.g., \u003ccode\u003e\u0026quot;::ffff:192.168.1.1\u0026quot;\u003c/code\u003e instead of \u003ccode\u003e\u0026quot;192.168.1.1\u0026quot;\u003c/code\u003e, for the same reasons as above. If you require only the IPv4 string, you can parse or truncate this in your application code.\u003c/li\u003e\n\u003cli\u003eCloses \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/493\"\u003e#493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMajor Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for SQLAlchemy 2.x. The minimum required version is 1.4.40. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/263\"\u003e#263\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Polars support for Arrow-based query and insert methods (\u003ccode\u003equery_df_arrow\u003c/code\u003e, \u003ccode\u003equery_df_arrow_stream\u003c/code\u003e, \u003ccode\u003einsert_df_arrow\u003c/code\u003e). This initial implementation provides basic dataframe conversion through the Arrow format, similar to how we support the pyarrow-backed pandas dataframes. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/111\"\u003e#111\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/542\"\u003e#542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for querying/inserting pyarrow-backed DataFrames:\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/ClickHouse/clickhouse-connect/blob/main/CHANGELOG.md\"\u003eclickhouse-connect's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.10.0, 2025-11-14\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed DST fallback bug in DateTime and DateTime64 types caused by passing potentially ambiguous times to pd.DateTimeIndex constructor. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/585\"\u003e#585\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue with JSON key dot escaping. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/571\"\u003e#571\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded SQLAlchemy core API support for \u003ccode\u003eARRAY JOIN\u003c/code\u003e and \u003ccode\u003eFINAL\u003c/code\u003e modifier. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/579\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python 3.14 support (non-free-threaded build only; free-threaded builds are not yet supported). Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/574\"\u003e#574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eutc_tz_aware\u003c/code\u003e parameter to client and query methods to opt in to returning timezone-aware UTC objects for DateTime/DateTime64 columns. Default behavior remains the same and returns tz naive objects for backward compatibility. Note: this parameter will likely be removed and only return tz-aware dts in some future release. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eexecutor\u003c/code\u003e parameter to \u003ccode\u003eAsyncC...\n\n_Description has been truncated_","html_url":"https://github.com/MTES-MCT/fisheries-and-environment-data-warehouse/pull/129","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MTES-MCT%2Ffisheries-and-environment-data-warehouse/issues/129","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/129/packages"},{"uuid":"3768072730","node_id":"PR_kwDOHTdvBs663EKr","number":1397,"state":"open","title":"deps(ibis): bump the all group across 1 directory with 32 updates","user":"dependabot[bot]","labels":["ibis","dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-29T18:38:50.000Z","updated_at":"2025-12-29T18:39:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(ibis): bump","group_name":"all","update_count":32,"packages":[{"name":"fastapi","old_version":"0.120.1","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.10.6","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"google-auth","old_version":"2.38.0","new_version":"2.45.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"orjson","old_version":"3.10.16","new_version":"3.11.5","repository_url":"https://github.com/ijl/orjson"},{"name":"geopandas","old_version":"1.1.1","new_version":"1.1.2","repository_url":"https://github.com/geopandas/geopandas"},{"name":"geoalchemy2","old_version":"0.17.1","new_version":"0.18.1","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"gql","old_version":"3.5.2","new_version":"4.0.0","repository_url":"https://github.com/graphql-python/gql"},{"name":"anyio","old_version":"4.10.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"duckdb","old_version":"1.3.2","new_version":"1.4.3","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"oracledb","old_version":"3.3.0","new_version":"3.4.1","repository_url":"https://github.com/oracle/python-oracledb"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"uvicorn-worker","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/Kludex/uvicorn-worker"},{"name":"redshift-connector","old_version":"2.1.7","new_version":"2.1.10","repository_url":"https://github.com/aws/amazon-redshift-python-driver"},{"name":"datafusion","old_version":"47.0.0","new_version":"50.1.0","repository_url":"https://github.com/apache/datafusion-python"},{"name":"starlette","old_version":"0.49.1","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"databricks-sql-connector","old_version":"4.1.4","new_version":"4.2.3","repository_url":"https://github.com/databricks/databricks-sql-python"},{"name":"databricks-sdk","old_version":"0.73.0","new_version":"0.76.0","repository_url":"https://github.com/databricks/databricks-sdk-py"},{"name":"jupyterlab","old_version":"4.4.9","new_version":"4.5.1","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"ipykernel","old_version":"6.30.1","new_version":"7.1.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ipywidgets","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"matplotlib","old_version":"3.10.6","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"plotly","old_version":"6.3.0","new_version":"6.5.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"testcontainers","old_version":"4.9.2","new_version":"4.13.3","repository_url":"https://github.com/testcontainers/testcontainers-python"},{"name":"sqlalchemy","old_version":"2.0.39","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.11.2","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"trino","old_version":"0.335.0","new_version":"0.336.0","repository_url":"https://github.com/trinodb/trino-python-client"},{"name":"psycopg2","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"clickhouse-connect","old_version":"0.8.15","new_version":"0.10.0","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"polars","old_version":"1.33.1","new_version":"1.36.1","repository_url":"https://github.com/pola-rs/polars"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all group with 32 updates in the /ibis-server directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.120.1` | `0.128.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.10.6` | `2.12.5` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.38.0` | `2.45.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.1` |\n| [orjson](https://github.com/ijl/orjson) | `3.10.16` | `3.11.5` |\n| [geopandas](https://github.com/geopandas/geopandas) | `1.1.1` | `1.1.2` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.17.1` | `0.18.1` |\n| [gql](https://github.com/graphql-python/gql) | `3.5.2` | `4.0.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.12.0` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.3.2` | `1.4.3` |\n| [oracledb](https://github.com/oracle/python-oracledb) | `3.3.0` | `3.4.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.40.0` |\n| [uvicorn-worker](https://github.com/Kludex/uvicorn-worker) | `0.3.0` | `0.4.0` |\n| [redshift-connector](https://github.com/aws/amazon-redshift-python-driver) | `2.1.7` | `2.1.10` |\n| [datafusion](https://github.com/apache/datafusion-python) | `47.0.0` | `50.1.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.1` | `0.50.0` |\n| [databricks-sql-connector](https://github.com/databricks/databricks-sql-python) | `4.1.4` | `4.2.3` |\n| [databricks-sdk](https://github.com/databricks/databricks-sdk-py) | `0.73.0` | `0.76.0` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.4.9` | `4.5.1` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.30.1` | `7.1.0` |\n| [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) | `8.1.7` | `8.1.8` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.6` | `3.10.8` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.3.0` | `6.5.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [testcontainers](https://github.com/testcontainers/testcontainers-python) | `4.9.2` | `4.13.3` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.39` | `2.0.45` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.2` | `0.14.10` |\n| [trino](https://github.com/trinodb/trino-python-client) | `0.335.0` | `0.336.0` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.8.15` | `0.10.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.33.1` | `1.36.1` |\n\n\nUpdates `fastapi` from 0.120.1 to 0.128.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\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✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\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 missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\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👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\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👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\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 scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\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 LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\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⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.120.1...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.10.6 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.10.6...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.38.0 to 2.45.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth 2.45.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e\"\u003eb32c934e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.44.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-12)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95\"\u003e0387bb95\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e7\"\u003e0f7097e7\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5\"\u003e39c381a5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd shlex to correctly parse executable commands with spaces (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1855\"\u003e#1855\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/cf6fc3cc\"\u003ecf6fc3cc\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986\"\u003ed5638986\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd temporary patch to workload cert logic to accomodate Cloud Run mis-configuration (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1880\"\u003e#1880\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907\"\u003e78de7907\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDelegate workload cert and key default lookup to helper function (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1877\"\u003e#1877\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7e\"\u003eb0993c7e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse public refresh method for source credentials in ImpersonatedCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1884\"\u003e#1884\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f\"\u003ee0c3296f\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.43.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.42.1...v2.43.0\"\u003e2.43.0\u003c/a\u003e (2025-11-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd public wrapper for _mtls_helper.check_use_client_cert which enables mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE is not set, when the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1859\"\u003e#1859\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/1535eccb\"\u003e1535eccb\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnable mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE  is not set, if the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1848\"\u003e#1848\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/395e405b\"\u003e395e405b\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eonboard \u003ccode\u003egoogle-auth\u003c/code\u003e to librarian (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1838\"\u003e#1838\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c503eaa5\"\u003ec503eaa5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.42.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.42.0...v2.42.1\"\u003e2.42.1\u003c/a\u003e (2025-10-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCatch ValueError for json.loads() (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1842\"\u003e#1842\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b074cad460589633adfc6744c01726ae86f2aa2b\"\u003eb074cad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.42.0\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/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e6b0d09b94c467cd432a0a635e8b05f5c\"\u003eb32c934e6b0d09b94c467cd432a0a635e8b05f5c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e78f247665b6ef0287d482033f7be2ed6d\"\u003e0f7097e78f247665b6ef0287d482033f7be2ed6d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5f6881b590025f36d333d12eff8dc60fc\"\u003e39c381a5f6881b590025f36d333d12eff8dc60fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95713653d47e846cad3a010eb55ef2db4c\"\u003e0387bb95713653d47e846cad3a010eb55ef2db4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986ca03ee95bfffa9ad821124ed7e903e63\"\u003ed5638986ca03ee95bfffa9ad821124ed7e903e63\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd shlex to correctly parse executable commands with spaces (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1855\"\u003e#1855\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/cf6fc3cced78bc1362a7fe596c32ebc9ce03c26b\"\u003ecf6fc3cced78bc1362a7fe596c32ebc9ce03c26b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse public refresh method for source credentials in ImpersonatedCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1884\"\u003e#1884\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f471747258f6d98d2d9bfde636358ecde\"\u003ee0c3296f471747258f6d98d2d9bfde636358ecde\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd temporary patch to workload cert logic to accomodate Cloud Run mis-configuration (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1880\"\u003e#1880\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907b8bdb7b5510e3c6fa8a3f3721e2436d7\"\u003e78de7907b8bdb7b5510e3c6fa8a3f3721e2436d7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDelegate workload cert and key default lookup to helper function (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1877\"\u003e#1877\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7edaba505d0fb0628af28760c43034c959\"\u003eb0993c7edaba505d0fb0628af28760c43034c959\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-v2.42.1...google-auth-v2.43.0\"\u003e2.43.0\u003c/a\u003e (2025-11-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd public wrapper for _mtls_helper.check_use_client_cert which enables mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE is not set, when the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1859\"\u003e#1859\u003c/a\u003e) Add public wrapper for check_use_client_cert which enables mTLS if\nGOOGLE_API_USE_CLIENT_CERTIFICATE is not set, when the MWID/X.509 cert\nsources detected. Also, fix check_use_client_cert to return boolean\nvalue.\nChange \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1848\"\u003e#1848\u003c/a\u003e added the check_use_client_cert method that helps know if\nclient cert should be used for mTLS connection. However, that was in a\nprivate class, thus, created a public wrapper of the same function so\nthat it can be used by python Client Libraries. Also, updated\ncheck_use_client_cert to return a boolean value instead of existing\nstring value for better readability and future scope.\n--------- (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1535eccbff0ad8f3fd6a9775316ac8b77dca66ba\"\u003e1535eccbff0ad8f3fd6a9775316ac8b77dca66ba\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnable mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE  is not set, if the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1848\"\u003e#1848\u003c/a\u003e) The Python SDK will use a hybrid approach for mTLS enablement:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eIf the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable is set\n(either true or false), the SDK will respect that setting. This is\nnecessary for test scenarios and users who need to explicitly control\nmTLS behavior.\u003c/li\u003e\n\u003cli\u003eIf the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable is not\nset, the SDK will automatically enable mTLS only if it detects Managed\nWorkload Identity (MWID) or X.509 Workforce Identity Federation (WIF)\ncertificate sources. In other cases where the variable is not set, mTLS\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/08fabf776c02dc6a70472b3ddd9733d66d0053bf\"\u003e\u003ccode\u003e08fabf7\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251215T132028Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1891\"\u003e#1891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e6b0d09b94c467cd432a0a635e8b05f5c\"\u003e\u003ccode\u003eb32c934\u003c/code\u003e\u003c/a\u003e feat: Adding Agent Identity bound token support and handling certificate mism...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/262eb9e33d58ffeb536ecd083c22d9fb12c808e6\"\u003e\u003ccode\u003e262eb9e\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251212T161150Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1888\"\u003e#1888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e78f247665b6ef0287d482033f7be2ed6d\"\u003e\u003ccode\u003e0f7097e\u003c/code\u003e\u003c/a\u003e feat: support Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f471747258f6d98d2d9bfde636358ecde\"\u003e\u003ccode\u003ee0c3296\u003c/code\u003e\u003c/a\u003e fix(auth): Use public refresh method for source credentials in ImpersonatedCr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907b8bdb7b5510e3c6fa8a3f3721e2436d7\"\u003e\u003ccode\u003e78de790\u003c/code\u003e\u003c/a\u003e fix(auth): Add temporary patch to workload cert logic to accomodate Cloud Run...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3e8a56687fd050ff44a35cc8db0e95e996648173\"\u003e\u003ccode\u003e3e8a566\u003c/code\u003e\u003c/a\u003e chore(tests): allow expired secret in system tests (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1883\"\u003e#1883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7edaba505d0fb0628af28760c43034c959\"\u003e\u003ccode\u003eb0993c7\u003c/code\u003e\u003c/a\u003e fix(auth): Delegate workload cert and key default lookup to helper function (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2c374d36a61569b75d11c17fae124d591c52ddc6\"\u003e\u003ccode\u003e2c374d3\u003c/code\u003e\u003c/a\u003e chore: update secret (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5f6881b590025f36d333d12eff8dc60fc\"\u003e\u003ccode\u003e39c381a\u003c/code\u003e\u003c/a\u003e feat: add ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.38.0...v2.45.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.0.1 to 1.2.1\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.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport reading .env 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/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI to use trusted publishing on PyPI\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/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\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.0...v1.2.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: upgrade to use ruff 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/567\"\u003etheskumar/python-dotenv#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.exit() instead of exit() 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/568\"\u003etheskumar/python-dotenv#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:  add \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e flag to disable load_dotenv (fixes \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/510\"\u003e#510\u003c/a\u003e) 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/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python@3.14: Github CI \u0026amp; tox.ini 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/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eocs: clarify what load_dotenv() does in README by \u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory 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/theskumar/python-dotenv/pull/577\"\u003etheskumar/python-dotenv#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove project metadata and config to pyproject.toml 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/pull/583\"\u003etheskumar/python-dotenv#583\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/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\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.1.1...v1.2.0\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv 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/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a security policy 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/512\"\u003etheskumar/python-dotenv#512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep GitHub Actions up to date with GitHub's Dependabot by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/506\"\u003etheskumar/python-dotenv#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: fix multiline string in test.yml \u0026amp; use fail-fast strategy by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/514\"\u003etheskumar/python-dotenv#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance dotenv run: Switch to execvpe for better resource management and signal handling by \u003ca href=\"https://github.com/eekstunt\"\u003e\u003ccode\u003e@​eekstunt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/523\"\u003etheskumar/python-dotenv#523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add py3.13 to test.yml by \u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/527\"\u003etheskumar/python-dotenv#527\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 trove classifier by \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/535\"\u003etheskumar/python-dotenv#535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/529\"\u003etheskumar/python-dotenv#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.13 and drop 3.8 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/551\"\u003etheskumar/python-dotenv#551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update README.md by \u003ca href=\"https://github.com/chapeupreto\"\u003e\u003ccode\u003e@​chapeupreto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/516\"\u003etheskumar/python-dotenv#516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSome more s/Python-dotenv/python-dotenv/ 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/552\"\u003etheskumar/python-dotenv#552\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/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.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/pull/563\"\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/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.0] - 2025-03-25\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFeature\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.13\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003edotenv run\u003c/code\u003e, switch to \u003ccode\u003eexecvpe\u003c/code\u003e for better resource management and signal handling (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/523\"\u003e#523\u003c/a\u003e) by [\u003ca href=\"https://github.com/eekstunt\"\u003e\u003ccode\u003e@​eekstunt\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efind_dotenv\u003c/code\u003e and \u003ccode\u003eload_dotenv\u003c/code\u003e now correctly looks up at the current directory when running in debugger or pdb (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/553\"\u003e#553\u003c/a\u003e by [\u003ca href=\"https://github.com/randomseed42\"\u003e\u003ccode\u003e@​randomseed42\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMisc\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/eaf2a9129ccec6febda0f741eb3bb852c3f947bd\"\u003e\u003ccode\u003eeaf2a91\u003c/code\u003e\u003c/a\u003e Do not remove .coverage file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8716196891532eeb67d24a513e8d975437f5e8b7\"\u003e\u003ccode\u003e8716196\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.0 → 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/b87807fcad6e74332c3c63a75c92ce5814fa7a55\"\u003e\u003ccode\u003eb87807f\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/3af77d3029eb717aeec0a3c25f751b6a614a6d3c\"\u003e\u003ccode\u003e3af77d3\u003c/code\u003e\u003c/a\u003e Support reading .env from FIFOs (Unix) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/467ee22fccb2fb7ccda71a0d9e37c6ea3cb8d993\"\u003e\u003ccode\u003e467ee22\u003c/code\u003e\u003c/a\u003e Fix test failures after moving config to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/76999e741d87e958ebd74e3ae9834c0514e77a59\"\u003e\u003ccode\u003e76999e7\u003c/code\u003e\u003c/a\u003e Move more config pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/222ce2cc58ebc82ba78da8781269267b9f585932\"\u003e\u003ccode\u003e222ce2c\u003c/code\u003e\u003c/a\u003e Update to use trusted publisher on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ed4f79d202eba582b44bdf1f5deb726dd68783d\"\u003e\u003ccode\u003e8ed4f79\u003c/code\u003e\u003c/a\u003e Update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/5bf882241c607445bf02cf5b241535d62e2b99c1\"\u003e\u003ccode\u003e5bf8822\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.1 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1fe11cc737ee4399e9c51d1b69b0dd858f6b4669\"\u003e\u003ccode\u003e1fe11cc\u003c/code\u003e\u003c/a\u003e upadate changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.0.1...v1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `orjson` from 3.10.16 to 3.11.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ijl/orjson/releases\"\u003eorjson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.5\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow simple error message instead of traceback when attempting to\nbuild on unsupported Python versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.4\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eABI compatibility with CPython 3.15 alpha 1.\u003c/li\u003e\n\u003cli\u003ePublish PyPI wheels for 3.14 and manylinux i686, manylinux arm7,\nmanylinux ppc64le, manylinux s390x.\u003c/li\u003e\n\u003cli\u003eBuild now requires a C compiler.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix PyPI project metadata when using maturin 1.9.2 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix build using Rust 1.89 on amd64.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.85 or later instead of 1.82.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish PyPI wheels for CPython 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003estr\u003c/code\u003e on big-endian architectures.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse a deserialization buffer allocated per request instead of a shared buffer allocated on import.\u003c/li\u003e\n\u003cli\u003eABI compatibility with CPython 3.14 beta 4.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect escaping of the vertical tabulation character. This was\nintroduced in 3.10.17.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.17\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/ijl/orjson/blob/master/CHANGELOG.md\"\u003eorjson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.5 - 2025-12-06\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow simple error message instead of traceback when attempting to\nbuild on unsupported Python versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.4 - 2025-10-24\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eABI compatibility with CPython 3.15 alpha 1.\u003c/li\u003e\n\u003cli\u003ePublish PyPI wheels for 3.14 and manylinux i686, manylinux arm7,\nmanylinux ppc64le, manylinux s390x.\u003c/li\u003e\n\u003cli\u003eBuild now requires a C compiler.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.3 - 2025-08-26\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix PyPI project metadata when using maturin 1.9.2 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.2 - 2025-08-12\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix build using Rust 1.89 on amd64.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.85 or later instead of 1.82.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.1 - 2025-07-25\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish PyPI wheels for CPython 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003estr\u003c/code\u003e on big-endian architectures. This was introduced in 3.11.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.0 - 2025-07-15\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/fb3eb1f729c7e7b019f780af5695722c99c7c695\"\u003e\u003ccode\u003efb3eb1f\u003c/code\u003e\u003c/a\u003e 3.11.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/52688e02c51c845cde24a46cd1011a6010d10eb8\"\u003e\u003ccode\u003e52688e0\u003c/code\u003e\u003c/a\u003e Record contributors in headers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/dc083e87d5262e7dde3ba4b1d2a377b5b065a27c\"\u003e\u003ccode\u003edc083e8\u003c/code\u003e\u003c/a\u003e Further compatibility and build misc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/18f0186d47fbadd53c9db4e39a442d5b04225418\"\u003e\u003ccode\u003e18f0186\u003c/code\u003e\u003c/a\u003e Compatibility and build misc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/a4fdeb3aff125d501ec0dd0577f9b38b2b977b4f\"\u003e\u003ccode\u003ea4fdeb3\u003c/code\u003e\u003c/a\u003e 3.11.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/2e80d68afacafca8751e6a64ca05d0d4087dbd15\"\u003e\u003ccode\u003e2e80d68\u003c/code\u003e\u003c/a\u003e unlikely to cold_path, remove intrinsics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/27edea92f8da2fdfc3f1342474e2f1686f1edf55\"\u003e\u003ccode\u003e27edea9\u003c/code\u003e\u003c/a\u003e FFI through crate::ffi, partial non-CPython compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/416a8c9578da780d0d58b5e6b751793deafc610d\"\u003e\u003ccode\u003e416a8c9\u003c/code\u003e\u003c/a\u003e Unconditionally build yyjson\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/c8c1a17dca8436a2fee05ca060febd096e653d98\"\u003e\u003ccode\u003ec8c1a17\u003c/code\u003e\u003c/a\u003e edition 2024\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/af4179a1fa0aafffd0f867203b6c36e9a522f165\"\u003e\u003ccode\u003eaf4179a\u003c/code\u003e\u003c/a\u003e build maintenance, panic_immediate_abort break, test 3.15\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ijl/orjson/compare/3.10.16...3.11.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geopandas` from 1.1.1 to 1.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geopandas/geopandas/releases\"\u003egeopandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue that caused an error in \u003ccode\u003eGeoDataFrame.from_features\u003c/code\u003e when there is no \u003ccode\u003eproperties\u003c/code\u003e field (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3599\"\u003e#3599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_file\u003c/code\u003e and \u003ccode\u003eto_file\u003c/code\u003e errors (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3682\"\u003e#3682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_parquet\u003c/code\u003e with \u003ccode\u003eto_pandas_kwargs\u003c/code\u003e for complex (list/struct) arrow types (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3640\"\u003e#3640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evalue_counts\u003c/code\u003e on GeoSeries now preserves CRS in index (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3669\"\u003e#3669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix f-string placeholders appearing in error messages when \u003ccode\u003epyogrio\u003c/code\u003e cannot be imported (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3682\"\u003e#3682\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_parquet\u003c/code\u003e with \u003ccode\u003eto_pandas_kwargs\u003c/code\u003e for complex (list/struct) arrow types (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3640\"\u003e#3640\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.to_json\u003c/code\u003e now provides a clearer error message when called on a GeoDataFrame without an active geometry\ncolumn (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3648\"\u003e#3648\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eCalling \u003ccode\u003edel gdf[\u0026quot;geometry\u0026quot;]\u003c/code\u003e now will downcast to a \u003ccode\u003epd.DataFrame\u003c/code\u003e if there are no geometry columns left\nin the dataframe (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3648\"\u003e#3648\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix SQL injection in \u003ccode\u003eto_postgis\u003c/code\u003e via geometry column name (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3681\"\u003e#3681\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geopandas/geopandas/compare/v1.1.1...v1.1.2\"\u003ehttps://github.com/geopandas/geopandas/compare/v1.1.1...v1.1.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/geopandas/geopandas/blob/main/CHANGELOG.md\"\u003egeopandas's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.1.2 (December 22, 2025)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue that caused an error in \u003ccode\u003eGeoDataFrame.from_features\u003c/code\u003e when there is no \u003ccode\u003eproperties\u003c/code\u003e field (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3599\"\u003e#3599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_file\u003c/code\u003e and \u003ccode\u003eto_file\u003c/code\u003e errors (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3682\"\u003e#3682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_parquet\u003c/code\u003e with \u003ccode\u003eto_pandas_kwargs\u003c/code\u003e for complex (list/struct) arrow types (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3640\"\u003e#3640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evalue_counts\u003c/code\u003e on GeoSeries now preserves CRS in index (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3669\"\u003e#3669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix f-string placeholders appearing in error messages when \u003ccode\u003epyogrio\u003c/code\u003e cannot be imported (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3682\"\u003e#3682\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_parquet\u003c/code\u003e with \u003ccode\u003eto_pandas_kwargs\u003c/code\u003e for complex (list/struct) arrow types (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3640\"\u003e#3640\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.to_json\u003c/code\u003e now provides a clearer error message when called on a GeoDataFrame without an active geometry\ncolumn (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3648\"\u003e#3648\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eCalling \u003ccode\u003edel gdf[\u0026quot;geometry\u0026quot;]\u003c/code\u003e now will downcast to a \u003ccode\u003epd.DataFrame\u003c/code\u003e if there are no geometry columns left\nin the dataframe (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3648\"\u003e#3648\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix SQL injection in \u003ccode\u003eto_postgis\u003c/code\u003e via geometry column name (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3681\"\u003e#3681\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/geopandas/geopandas/commit/81214bf9f3eaba9f5fdcfd141ae8d16fa17fd860\"\u003e\u003ccode\u003e81214bf\u003c/code\u003e\u003c/a\u003e RLS: backport fixes for 1.1.2 (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3693\"\u003e#3693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/62dd4a2469bb6236b83fb91466a8183321da04da\"\u003e\u003ccode\u003e62dd4a2\u003c/code\u003e\u003c/a\u003e COMPAT: pandas 3 refactor breaks \u003cstrong\u003efinalize\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3611\"\u003e#3611\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/geopandas/geopandas/compare/v1.1.1...v1.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geoalchemy2` from 0.17.1 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect by \u003ca href=\"https://github.com/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/570\"\u003egeoalchemy/geoalchemy2#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string by \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/574\"\u003egeoalchemy/geoalchemy2#574\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/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/538\"\u003egeoalchemy/geoalchemy2#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/540\"\u003egeoalchemy/geoalchemy2#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCompile literal binds by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/543\"\u003egeoalchemy/geoalchemy2#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/544\"\u003egeoalchemy/geoalchemy2#544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore (mariadb): Stop converting WKB to WKT by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/545\"\u003egeoalchemy/geoalchemy2#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker containers by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/546\"\u003egeoalchemy/geoalchemy2#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/547\"\u003egeoalchemy/geoalchemy2#547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/553\"\u003egeoalchemy/geoalchemy2#553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/554\"\u003egeoalchemy/geoalchemy2#554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Improve readbility of benchmark results by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/556\"\u003egeoalchemy/geoalchemy2#556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/555\"\u003egeoalchemy/geoalchemy2#555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/557\"\u003egeoalchemy/geoalchemy2#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Remove warning message from MySQL/MariaDB reflection by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/560\"\u003egeoalchemy/geoalchemy2#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/561\"\u003egeoalchemy/geoalchemy2#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: correct doc strings by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/564\"\u003egeoalchemy/geoalchemy2#564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/565\"\u003egeoalchemy/geoalchemy2#565\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/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.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/geoalchemy/geoalchemy2/blob/master/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string - \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Fix doc strings for cache enabled - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(papacodebear/master) Fix: Remove warning from MySQL/MariaDB reflection \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Improve readability of benchmark results \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/556\"\u003e#556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/553\"\u003e#553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker container \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf (mariadb): Stop converting WKB to WKT \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/544\"\u003e#544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Compile literal binds properly \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redi...\n\n_Description has been truncated_","html_url":"https://github.com/Canner/wren-engine/pull/1397","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Canner%2Fwren-engine/issues/1397","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1397/packages"},{"uuid":"3731680920","node_id":"PR_kwDOHTdvBs64_Xbv","number":1388,"state":"open","title":"deps(ibis): bump the all group across 1 directory with 31 updates","user":"dependabot[bot]","labels":["ibis","dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-15T18:44:22.000Z","updated_at":"2025-12-15T18:44:36.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(ibis): bump","group_name":"all","update_count":31,"packages":[{"name":"fastapi","old_version":"0.120.1","new_version":"0.124.4","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.10.6","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"google-auth","old_version":"2.38.0","new_version":"2.44.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"orjson","old_version":"3.10.16","new_version":"3.11.5","repository_url":"https://github.com/ijl/orjson"},{"name":"geoalchemy2","old_version":"0.17.1","new_version":"0.18.1","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"gql","old_version":"3.5.2","new_version":"4.0.0","repository_url":"https://github.com/graphql-python/gql"},{"name":"anyio","old_version":"4.10.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"duckdb","old_version":"1.3.2","new_version":"1.4.3","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"oracledb","old_version":"3.3.0","new_version":"3.4.1","repository_url":"https://github.com/oracle/python-oracledb"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.38.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"uvicorn-worker","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/Kludex/uvicorn-worker"},{"name":"redshift-connector","old_version":"2.1.7","new_version":"2.1.10","repository_url":"https://github.com/aws/amazon-redshift-python-driver"},{"name":"datafusion","old_version":"47.0.0","new_version":"50.1.0","repository_url":"https://github.com/apache/datafusion-python"},{"name":"starlette","old_version":"0.49.1","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"databricks-sql-connector","old_version":"4.1.4","new_version":"4.2.2","repository_url":"https://github.com/databricks/databricks-sql-python"},{"name":"databricks-sdk","old_version":"0.73.0","new_version":"0.74.0","repository_url":"https://github.com/databricks/databricks-sdk-py"},{"name":"jupyterlab","old_version":"4.4.9","new_version":"4.5.1","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"ipykernel","old_version":"6.30.1","new_version":"7.1.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ipywidgets","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"matplotlib","old_version":"3.10.6","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"plotly","old_version":"6.3.0","new_version":"6.5.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"testcontainers","old_version":"4.9.2","new_version":"4.13.3","repository_url":"https://github.com/testcontainers/testcontainers-python"},{"name":"sqlalchemy","old_version":"2.0.39","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.11.2","new_version":"0.14.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"trino","old_version":"0.335.0","new_version":"0.336.0","repository_url":"https://github.com/trinodb/trino-python-client"},{"name":"psycopg2","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"clickhouse-connect","old_version":"0.8.15","new_version":"0.10.0","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"polars","old_version":"1.33.1","new_version":"1.36.1","repository_url":"https://github.com/pola-rs/polars"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all group with 31 updates in the /ibis-server directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.120.1` | `0.124.4` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.10.6` | `2.12.5` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.38.0` | `2.44.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.1` |\n| [orjson](https://github.com/ijl/orjson) | `3.10.16` | `3.11.5` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.17.1` | `0.18.1` |\n| [gql](https://github.com/graphql-python/gql) | `3.5.2` | `4.0.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.12.0` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.3.2` | `1.4.3` |\n| [oracledb](https://github.com/oracle/python-oracledb) | `3.3.0` | `3.4.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.38.0` |\n| [uvicorn-worker](https://github.com/Kludex/uvicorn-worker) | `0.3.0` | `0.4.0` |\n| [redshift-connector](https://github.com/aws/amazon-redshift-python-driver) | `2.1.7` | `2.1.10` |\n| [datafusion](https://github.com/apache/datafusion-python) | `47.0.0` | `50.1.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.1` | `0.50.0` |\n| [databricks-sql-connector](https://github.com/databricks/databricks-sql-python) | `4.1.4` | `4.2.2` |\n| [databricks-sdk](https://github.com/databricks/databricks-sdk-py) | `0.73.0` | `0.74.0` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.4.9` | `4.5.1` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.30.1` | `7.1.0` |\n| [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) | `8.1.7` | `8.1.8` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.6` | `3.10.8` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.3.0` | `6.5.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [testcontainers](https://github.com/testcontainers/testcontainers-python) | `4.9.2` | `4.13.3` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.39` | `2.0.45` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.2` | `0.14.9` |\n| [trino](https://github.com/trinodb/trino-python-client) | `0.335.0` | `0.336.0` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.8.15` | `0.10.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.33.1` | `1.36.1` |\n\n\nUpdates `fastapi` from 0.120.1 to 0.124.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.124.4\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix parameter aliases. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14371\"\u003e#14371\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.124.3\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix support for tagged union with discriminator inside of \u003ccode\u003eAnnotated\u003c/code\u003e with \u003ccode\u003eBody()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14512\"\u003e#14512\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\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Add set of tests for request parameters and alias. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14358\"\u003e#14358\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Tweak links format. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14505\"\u003e#14505\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 docs about re-raising validation errors, do not include string as is to not leak information. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14487\"\u003e#14487\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🔥 Remove external links section. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14486\"\u003e#14486\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Sync Russian docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14509\"\u003e#14509\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🌐 Sync German docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14488\"\u003e#14488\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Tweak coverage to not pass Smokeshow max file size limit. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14507\"\u003e#14507\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✅ Expand test matrix to include Windows and MacOS. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14171\"\u003e#14171\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.124.2\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix support for \u003ccode\u003eif TYPE_CHECKING\u003c/code\u003e,  non-evaluated stringified annotations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14485\"\u003e#14485\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.124.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix handling arbitrary types when using \u003ccode\u003earbitrary_types_allowed=True\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14482\"\u003e#14482\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add variants for code examples in \u0026quot;Advanced User Guide\u0026quot;. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14413\"\u003e#14413\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update tech stack in project generation docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14472\"\u003e#14472\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Add test for Pydantic v2, dataclasses, UUID, and \u003ccode\u003e__annotations__\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14477\"\u003e#14477\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.124.0\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/fastapi/fastapi/commit/b1d9769f97295a238df8c2d318ad65dd6a40c6ff\"\u003e\u003ccode\u003eb1d9769\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.124.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/89157a803c4c75332566a5ca499afd5358c42049\"\u003e\u003ccode\u003e89157a8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d86c47477e4d91b5e1f07973b3437908558a8b4b\"\u003e\u003ccode\u003ed86c474\u003c/code\u003e\u003c/a\u003e 🐛 Fix parameter aliases (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14371\"\u003e#14371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3fe6522aaed4d36d6a38175a4a8137ee0fc62451\"\u003e\u003ccode\u003e3fe6522\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.124.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/80d1f732e5e10efe75e03427558271d46cd663e3\"\u003e\u003ccode\u003e80d1f73\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c0556ac3a50420d0ba298b5641517c61f3c1c2c4\"\u003e\u003ccode\u003ec0556ac\u003c/code\u003e\u003c/a\u003e 🐛 Fix support for tagged union with discriminator inside of \u003ccode\u003eAnnotated\u003c/code\u003e with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1fcec88ad2df4541b6a81c4786c4d039dc745e1e\"\u003e\u003ccode\u003e1fcec88\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/f8b216df30f4d4fd36dccf7c7e885154a2699838\"\u003e\u003ccode\u003ef8b216d\u003c/code\u003e\u003c/a\u003e 🌐 Sync Russian docs (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14509\"\u003e#14509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b905b614c84fbf4a278bdb69f4a22d52a43721e\"\u003e\u003ccode\u003e4b905b6\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6c54bcefd3c37c8656e909980af00f86acea99c3\"\u003e\u003ccode\u003e6c54bce\u003c/code\u003e\u003c/a\u003e ✅ Add set of tests for request parameters and alias (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14358\"\u003e#14358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.120.1...0.124.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.10.6 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.10.6...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.38.0 to 2.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth 2.44.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-12)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95\"\u003e0387bb95\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e7\"\u003e0f7097e7\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5\"\u003e39c381a5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd shlex to correctly parse executable commands with spaces (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1855\"\u003e#1855\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/cf6fc3cc\"\u003ecf6fc3cc\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986\"\u003ed5638986\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd temporary patch to workload cert logic to accomodate Cloud Run mis-configuration (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1880\"\u003e#1880\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907\"\u003e78de7907\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDelegate workload cert and key default lookup to helper function (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1877\"\u003e#1877\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7e\"\u003eb0993c7e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse public refresh method for source credentials in ImpersonatedCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1884\"\u003e#1884\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f\"\u003ee0c3296f\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.43.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.42.1...v2.43.0\"\u003e2.43.0\u003c/a\u003e (2025-11-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd public wrapper for _mtls_helper.check_use_client_cert which enables mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE is not set, when the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1859\"\u003e#1859\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/1535eccb\"\u003e1535eccb\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnable mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE  is not set, if the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1848\"\u003e#1848\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/395e405b\"\u003e395e405b\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eonboard \u003ccode\u003egoogle-auth\u003c/code\u003e to librarian (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1838\"\u003e#1838\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c503eaa5\"\u003ec503eaa5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.42.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.42.0...v2.42.1\"\u003e2.42.1\u003c/a\u003e (2025-10-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCatch ValueError for json.loads() (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1842\"\u003e#1842\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b074cad460589633adfc6744c01726ae86f2aa2b\"\u003eb074cad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.42.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.41.1...v2.42.0\"\u003e2.42.0\u003c/a\u003e (2025-10-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd trust boundary support for external accounts. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1809\"\u003e#1809\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/36ecb1d65883477d27faf9c2281fc289659b9903\"\u003e36ecb1d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e78f247665b6ef0287d482033f7be2ed6d\"\u003e0f7097e78f247665b6ef0287d482033f7be2ed6d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5f6881b590025f36d333d12eff8dc60fc\"\u003e39c381a5f6881b590025f36d333d12eff8dc60fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95713653d47e846cad3a010eb55ef2db4c\"\u003e0387bb95713653d47e846cad3a010eb55ef2db4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986ca03ee95bfffa9ad821124ed7e903e63\"\u003ed5638986ca03ee95bfffa9ad821124ed7e903e63\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd shlex to correctly parse executable commands with spaces (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1855\"\u003e#1855\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/cf6fc3cced78bc1362a7fe596c32ebc9ce03c26b\"\u003ecf6fc3cced78bc1362a7fe596c32ebc9ce03c26b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse public refresh method for source credentials in ImpersonatedCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1884\"\u003e#1884\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f471747258f6d98d2d9bfde636358ecde\"\u003ee0c3296f471747258f6d98d2d9bfde636358ecde\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd temporary patch to workload cert logic to accomodate Cloud Run mis-configuration (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1880\"\u003e#1880\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907b8bdb7b5510e3c6fa8a3f3721e2436d7\"\u003e78de7907b8bdb7b5510e3c6fa8a3f3721e2436d7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDelegate workload cert and key default lookup to helper function (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1877\"\u003e#1877\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7edaba505d0fb0628af28760c43034c959\"\u003eb0993c7edaba505d0fb0628af28760c43034c959\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-v2.42.1...google-auth-v2.43.0\"\u003e2.43.0\u003c/a\u003e (2025-11-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd public wrapper for _mtls_helper.check_use_client_cert which enables mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE is not set, when the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1859\"\u003e#1859\u003c/a\u003e) Add public wrapper for check_use_client_cert which enables mTLS if\nGOOGLE_API_USE_CLIENT_CERTIFICATE is not set, when the MWID/X.509 cert\nsources detected. Also, fix check_use_client_cert to return boolean\nvalue.\nChange \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1848\"\u003e#1848\u003c/a\u003e added the check_use_client_cert method that helps know if\nclient cert should be used for mTLS connection. However, that was in a\nprivate class, thus, created a public wrapper of the same function so\nthat it can be used by python Client Libraries. Also, updated\ncheck_use_client_cert to return a boolean value instead of existing\nstring value for better readability and future scope.\n--------- (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1535eccbff0ad8f3fd6a9775316ac8b77dca66ba\"\u003e1535eccbff0ad8f3fd6a9775316ac8b77dca66ba\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnable mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE  is not set, if the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1848\"\u003e#1848\u003c/a\u003e) The Python SDK will use a hybrid approach for mTLS enablement:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eIf the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable is set\n(either true or false), the SDK will respect that setting. This is\nnecessary for test scenarios and users who need to explicitly control\nmTLS behavior.\u003c/li\u003e\n\u003cli\u003eIf the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable is not\nset, the SDK will automatically enable mTLS only if it detects Managed\nWorkload Identity (MWID) or X.509 Workforce Identity Federation (WIF)\ncertificate sources. In other cases where the variable is not set, mTLS\nwill remain disabled.\n** This change also adds the helper method \u003ccode\u003echeck_use_client_cert\u003c/code\u003e and\nit's unit test, which will be used for checking the criteria for setting\nthe mTLS to true\n** This change is only for Auth-Library, other changes will be created\nfor Client-Library use-cases.\n--------- (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/395e405b64b56ddb82ee639958c2e8056ad2e82b\"\u003e395e405b64b56ddb82ee639958c2e8056ad2e82b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/262eb9e33d58ffeb536ecd083c22d9fb12c808e6\"\u003e\u003ccode\u003e262eb9e\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251212T161150Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1888\"\u003e#1888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e78f247665b6ef0287d482033f7be2ed6d\"\u003e\u003ccode\u003e0f7097e\u003c/code\u003e\u003c/a\u003e feat: support Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f471747258f6d98d2d9bfde636358ecde\"\u003e\u003ccode\u003ee0c3296\u003c/code\u003e\u003c/a\u003e fix(auth): Use public refresh method for source credentials in ImpersonatedCr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907b8bdb7b5510e3c6fa8a3f3721e2436d7\"\u003e\u003ccode\u003e78de790\u003c/code\u003e\u003c/a\u003e fix(auth): Add temporary patch to workload cert logic to accomodate Cloud Run...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3e8a56687fd050ff44a35cc8db0e95e996648173\"\u003e\u003ccode\u003e3e8a566\u003c/code\u003e\u003c/a\u003e chore(tests): allow expired secret in system tests (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1883\"\u003e#1883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7edaba505d0fb0628af28760c43034c959\"\u003e\u003ccode\u003eb0993c7\u003c/code\u003e\u003c/a\u003e fix(auth): Delegate workload cert and key default lookup to helper function (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2c374d36a61569b75d11c17fae124d591c52ddc6\"\u003e\u003ccode\u003e2c374d3\u003c/code\u003e\u003c/a\u003e chore: update secret (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5f6881b590025f36d333d12eff8dc60fc\"\u003e\u003ccode\u003e39c381a\u003c/code\u003e\u003c/a\u003e feat: add ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/daabaa714820008565133efdf4d928143b8fe518\"\u003e\u003ccode\u003edaabaa7\u003c/code\u003e\u003c/a\u003e chore(tests): update secret (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1876\"\u003e#1876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95713653d47e846cad3a010eb55ef2db4c\"\u003e\u003ccode\u003e0387bb9\u003c/code\u003e\u003c/a\u003e feat: MDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.38.0...v2.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.0.1 to 1.2.1\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.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport reading .env 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/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI to use trusted publishing on PyPI\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/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\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.0...v1.2.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: upgrade to use ruff 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/567\"\u003etheskumar/python-dotenv#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.exit() instead of exit() 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/568\"\u003etheskumar/python-dotenv#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:  add \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e flag to disable load_dotenv (fixes \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/510\"\u003e#510\u003c/a\u003e) 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/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python@3.14: Github CI \u0026amp; tox.ini 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/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eocs: clarify what load_dotenv() does in README by \u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory 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/theskumar/python-dotenv/pull/577\"\u003etheskumar/python-dotenv#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove project metadata and config to pyproject.toml 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/pull/583\"\u003etheskumar/python-dotenv#583\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/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\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.1.1...v1.2.0\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv 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/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a security policy 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/512\"\u003etheskumar/python-dotenv#512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep GitHub Actions up to date with GitHub's Dependabot by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/506\"\u003etheskumar/python-dotenv#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: fix multiline string in test.yml \u0026amp; use fail-fast strategy by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/514\"\u003etheskumar/python-dotenv#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance dotenv run: Switch to execvpe for better resource management and signal handling by \u003ca href=\"https://github.com/eekstunt\"\u003e\u003ccode\u003e@​eekstunt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/523\"\u003etheskumar/python-dotenv#523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add py3.13 to test.yml by \u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/527\"\u003etheskumar/python-dotenv#527\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 trove classifier by \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/535\"\u003etheskumar/python-dotenv#535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/529\"\u003etheskumar/python-dotenv#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.13 and drop 3.8 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/551\"\u003etheskumar/python-dotenv#551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update README.md by \u003ca href=\"https://github.com/chapeupreto\"\u003e\u003ccode\u003e@​chapeupreto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/516\"\u003etheskumar/python-dotenv#516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSome more s/Python-dotenv/python-dotenv/ 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/552\"\u003etheskumar/python-dotenv#552\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/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.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/pull/563\"\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/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.0] - 2025-03-25\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFeature\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.13\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003edotenv run\u003c/code\u003e, switch to \u003ccode\u003eexecvpe\u003c/code\u003e for better resource management and signal handling (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/523\"\u003e#523\u003c/a\u003e) by [\u003ca href=\"https://github.com/eekstunt\"\u003e\u003ccode\u003e@​eekstunt\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efind_dotenv\u003c/code\u003e and \u003ccode\u003eload_dotenv\u003c/code\u003e now correctly looks up at the current directory when running in debugger or pdb (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/553\"\u003e#553\u003c/a\u003e by [\u003ca href=\"https://github.com/randomseed42\"\u003e\u003ccode\u003e@​randomseed42\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMisc\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/eaf2a9129ccec6febda0f741eb3bb852c3f947bd\"\u003e\u003ccode\u003eeaf2a91\u003c/code\u003e\u003c/a\u003e Do not remove .coverage file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8716196891532eeb67d24a513e8d975437f5e8b7\"\u003e\u003ccode\u003e8716196\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.0 → 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/b87807fcad6e74332c3c63a75c92ce5814fa7a55\"\u003e\u003ccode\u003eb87807f\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/3af77d3029eb717aeec0a3c25f751b6a614a6d3c\"\u003e\u003ccode\u003e3af77d3\u003c/code\u003e\u003c/a\u003e Support reading .env from FIFOs (Unix) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/467ee22fccb2fb7ccda71a0d9e37c6ea3cb8d993\"\u003e\u003ccode\u003e467ee22\u003c/code\u003e\u003c/a\u003e Fix test failures after moving config to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/76999e741d87e958ebd74e3ae9834c0514e77a59\"\u003e\u003ccode\u003e76999e7\u003c/code\u003e\u003c/a\u003e Move more config pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/222ce2cc58ebc82ba78da8781269267b9f585932\"\u003e\u003ccode\u003e222ce2c\u003c/code\u003e\u003c/a\u003e Update to use trusted publisher on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ed4f79d202eba582b44bdf1f5deb726dd68783d\"\u003e\u003ccode\u003e8ed4f79\u003c/code\u003e\u003c/a\u003e Update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/5bf882241c607445bf02cf5b241535d62e2b99c1\"\u003e\u003ccode\u003e5bf8822\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.1 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1fe11cc737ee4399e9c51d1b69b0dd858f6b4669\"\u003e\u003ccode\u003e1fe11cc\u003c/code\u003e\u003c/a\u003e upadate changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.0.1...v1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `orjson` from 3.10.16 to 3.11.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ijl/orjson/releases\"\u003eorjson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.5\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow simple error message instead of traceback when attempting to\nbuild on unsupported Python versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.4\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eABI compatibility with CPython 3.15 alpha 1.\u003c/li\u003e\n\u003cli\u003ePublish PyPI wheels for 3.14 and manylinux i686, manylinux arm7,\nmanylinux ppc64le, manylinux s390x.\u003c/li\u003e\n\u003cli\u003eBuild now requires a C compiler.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix PyPI project metadata when using maturin 1.9.2 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix build using Rust 1.89 on amd64.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.85 or later instead of 1.82.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish PyPI wheels for CPython 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003estr\u003c/code\u003e on big-endian architectures.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse a deserialization buffer allocated per request instead of a shared buffer allocated on import.\u003c/li\u003e\n\u003cli\u003eABI compatibility with CPython 3.14 beta 4.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect escaping of the vertical tabulation character. This was\nintroduced in 3.10.17.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.17\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/ijl/orjson/blob/master/CHANGELOG.md\"\u003eorjson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.5 - 2025-12-06\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow simple error message instead of traceback when attempting to\nbuild on unsupported Python versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.4 - 2025-10-24\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eABI compatibility with CPython 3.15 alpha 1.\u003c/li\u003e\n\u003cli\u003ePublish PyPI wheels for 3.14 and manylinux i686, manylinux arm7,\nmanylinux ppc64le, manylinux s390x.\u003c/li\u003e\n\u003cli\u003eBuild now requires a C compiler.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.3 - 2025-08-26\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix PyPI project metadata when using maturin 1.9.2 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.2 - 2025-08-12\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix build using Rust 1.89 on amd64.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.85 or later instead of 1.82.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.1 - 2025-07-25\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish PyPI wheels for CPython 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003estr\u003c/code\u003e on big-endian architectures. This was introduced in 3.11.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.0 - 2025-07-15\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/fb3eb1f729c7e7b019f780af5695722c99c7c695\"\u003e\u003ccode\u003efb3eb1f\u003c/code\u003e\u003c/a\u003e 3.11.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/52688e02c51c845cde24a46cd1011a6010d10eb8\"\u003e\u003ccode\u003e52688e0\u003c/code\u003e\u003c/a\u003e Record contributors in headers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/dc083e87d5262e7dde3ba4b1d2a377b5b065a27c\"\u003e\u003ccode\u003edc083e8\u003c/code\u003e\u003c/a\u003e Further compatibility and build misc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/18f0186d47fbadd53c9db4e39a442d5b04225418\"\u003e\u003ccode\u003e18f0186\u003c/code\u003e\u003c/a\u003e Compatibility and build misc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/a4fdeb3aff125d501ec0dd0577f9b38b2b977b4f\"\u003e\u003ccode\u003ea4fdeb3\u003c/code\u003e\u003c/a\u003e 3.11.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/2e80d68afacafca8751e6a64ca05d0d4087dbd15\"\u003e\u003ccode\u003e2e80d68\u003c/code\u003e\u003c/a\u003e unlikely to cold_path, remove intrinsics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/27edea92f8da2fdfc3f1342474e2f1686f1edf55\"\u003e\u003ccode\u003e27edea9\u003c/code\u003e\u003c/a\u003e FFI through crate::ffi, partial non-CPython compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/416a8c9578da780d0d58b5e6b751793deafc610d\"\u003e\u003ccode\u003e416a8c9\u003c/code\u003e\u003c/a\u003e Unconditionally build yyjson\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/c8c1a17dca8436a2fee05ca060febd096e653d98\"\u003e\u003ccode\u003ec8c1a17\u003c/code\u003e\u003c/a\u003e edition 2024\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/af4179a1fa0aafffd0f867203b6c36e9a522f165\"\u003e\u003ccode\u003eaf4179a\u003c/code\u003e\u003c/a\u003e build maintenance, panic_immediate_abort break, test 3.15\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ijl/orjson/compare/3.10.16...3.11.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geoalchemy2` from 0.17.1 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect by \u003ca href=\"https://github.com/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/570\"\u003egeoalchemy/geoalchemy2#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string by \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/574\"\u003egeoalchemy/geoalchemy2#574\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/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/538\"\u003egeoalchemy/geoalchemy2#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/540\"\u003egeoalchemy/geoalchemy2#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCompile literal binds by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/543\"\u003egeoalchemy/geoalchemy2#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/544\"\u003egeoalchemy/geoalchemy2#544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore (mariadb): Stop converting WKB to WKT by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/545\"\u003egeoalchemy/geoalchemy2#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker containers by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/546\"\u003egeoalchemy/geoalchemy2#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/547\"\u003egeoalchemy/geoalchemy2#547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/553\"\u003egeoalchemy/geoalchemy2#553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/554\"\u003egeoalchemy/geoalchemy2#554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Improve readbility of benchmark results by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/556\"\u003egeoalchemy/geoalchemy2#556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/555\"\u003egeoalchemy/geoalchemy2#555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/557\"\u003egeoalchemy/geoalchemy2#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Remove warning message from MySQL/MariaDB reflection by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/560\"\u003egeoalchemy/geoalchemy2#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/561\"\u003egeoalchemy/geoalchemy2#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: correct doc strings by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/564\"\u003egeoalchemy/geoalchemy2#564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/565\"\u003egeoalchemy/geoalchemy2#565\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/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.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/geoalchemy/geoalchemy2/blob/master/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string - \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Fix doc strings for cache enabled - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(papacodebear/master) Fix: Remove warning from MySQL/MariaDB reflection \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Improve readability of benchmark results \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/556\"\u003e#556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/553\"\u003e#553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker container \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf (mariadb): Stop converting WKB to WKT \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/544\"\u003e#544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Compile literal binds properly \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/540\"\u003e#540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0c311122e5228a885e262d8f79b037cb74c0949b\"\u003e\u003ccode\u003e0c31112\u003c/code\u003e\u003c/a\u003e Release: 0.18.1 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/75f87fac699ed31579ef93dffc59cc25bda241a8\"\u003e\u003ccode\u003e75f87fa\u003c/code\u003e\u003c/a\u003e Fix: Allow scientific notation within WKT string (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8653df3a1b0236556f1c39c916f0fb717475a6d1\"\u003e\u003ccode\u003e8653df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/3d6099504023afda68137f0ac2d041986159dac9\"\u003e\u003ccode\u003e3d60995\u003c/code\u003e\u003c/a\u003e Fix (mysql): Fix failing test for MySQL dialect (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/60767082df9f4587fadd56ab94847ebc39df8295\"\u003e\u003ccode\u003e6076708\u003c/code\u003e\u003c/a\u003e Release: 0.18.0 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/565\"\u003e#565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/e13112177bdf79cae0d72a6e89d815dc272e3dc5\"\u003e\u003ccode\u003ee131121\u003c/code\u003e\u003c/a\u003e Feat: Add support of spatial indexes for Raster type for PostgreSQL (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0b432086a0c3b8ab160c5cc1864aa65e02f35362\"\u003e\u003ccode\u003e0b43208\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8791b2eec013f21f599ca060d9fee4aba72ec2a1\"\u003e\u003ccode\u003e8791b2e\u003c/code\u003e\u003c/a\u003e Docs: Fix doc strings for cache enabled (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/d3c1d04c8b462c61132403e44a7a4f04a487c142\"\u003e\u003ccode\u003ed3c1d04\u003c/code\u003e\u003c/a\u003e Chore: Move reflection type registering (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/24dc5d05d97fb9a2a57103c1823a58f06940a5e8\"\u003e\u003ccode\u003e24dc5d0\u003c/code\u003e\u003c/a\u003e Fix: Remove warning from MySQL/MariaDB reflection (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gql` from 3.5.2 to 4.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/graphql-python/gql/releases\"\u003egql's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eChange transports prototype using GraphQLRequest (\u003ca href=\"https://redirect.github.com/graphql-python/gql/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUsing GraphQLRequest instead of DocumentNode for gql, execute, subscribe methods (\u003ca href=\"https://redirect.github.com/graphql-python/gql/issues/556\"\u003e#556\u003c/a\u003e):\n\u003cstrong\u003eThis is a big change:\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003ethe \u003ccode\u003egql\u003c/code\u003e and \u003ccode\u003edsl_gql\u003c/code\u003e methods will now return a \u003ccode\u003eGraphQLRequest\u003c/code\u003e instead of a \u003ccode\u003eDocument\u003c/code\u003e Node\na \u003ccode\u003eGraphQLRequest\u003c/code\u003e is an object containing the document and optional \u003ccode\u003evariable_values\u003c/code\u003e and \u003ccode\u003eoperation_name\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eALL the \u003ccode\u003eexecute\u003c/code\u003e and \u003ccode\u003esubscribe\u003c/code\u003e methods now receive a \u003ccode\u003eGraphQLRequest\u003c/code\u003e as main argument instead of\na \u003ccode\u003eDocumentNode\u003c/code\u003e, \u003ccode\u003evariable_values\u003c/code\u003e and \u003ccode\u003eoperation_name\u003c/code\u003e arguments\u003c/li\u003e\n\u003cli\u003eThe old method of sending \u003ccode\u003evariable_values\u003c/code\u003e as an argument of \u003ccode\u003eexecute\u003c/code\u003e or \u003ccode\u003esubscribe\u003c/code\u003e still works but is deprecated\nSee \u003ca href=\"https://gql.readthedocs.io/en/latest/usage/variables.html\"\u003ehttps://gql.readthedocs.io/en/latest/usage/variables.html\u003c/a\u003e for the new syntax.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix subscription task cancel exception swallow (\u003ca href=\"https://redirect.github.com/graphql-python/gql/issues/548\"\u003e#548\u003c/a\u003e):\nPreviously if a task was cancelled while a subscription task was active,\nthe \u003ccode\u003easyncio.CancelledError\u003c/code\u003e Exception would be swallowed by our code.\nThis is not the case anymore so you should now trap that Exception yourself.\u003c/li\u003e\n\u003cli\u003eClean up the file upload interface with FileVar class (\u003ca href=\"https://redirect.github.com/graphql-python/gql/issues/549\"\u003e#549\u003c/a\u003e):\nThe file upload functionality has been modified to require \u003ccode\u003eFileVar\u003c/code\u003e instances\nfor uploaded files (the old method still works but is deprecated).\nSee \u003ca href=\"https://gql.readthedocs.io/en/latest/usage/file_upload.html\"\u003ehttps://gql.readthedocs.io/en/latest/usage/file_upload.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet logging level to DEBUG for all transports (\u003ca href=\"https://redirect.github.com/g...\n\n_Description has been truncated_","html_url":"https://github.com/Canner/wren-engine/pull/1388","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Canner%2Fwren-engine/issues/1388","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1388/packages"},{"uuid":"3678820834","node_id":"PR_kwDOBwBL7M62OwJo","number":129,"state":"open","title":"Bump geoalchemy2 from 0.17.1 to 0.18.1","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-01T01:22:45.000Z","updated_at":"2026-03-02T01:53:06.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"geoalchemy2","old_version":"0.17.1","new_version":"0.18.1","repository_url":"https://github.com/geoalchemy/geoalchemy2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) from 0.17.1 to 0.18.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect by \u003ca href=\"https://github.com/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/570\"\u003egeoalchemy/geoalchemy2#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string by \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/574\"\u003egeoalchemy/geoalchemy2#574\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/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/538\"\u003egeoalchemy/geoalchemy2#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/540\"\u003egeoalchemy/geoalchemy2#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCompile literal binds by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/543\"\u003egeoalchemy/geoalchemy2#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/544\"\u003egeoalchemy/geoalchemy2#544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore (mariadb): Stop converting WKB to WKT by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/545\"\u003egeoalchemy/geoalchemy2#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker containers by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/546\"\u003egeoalchemy/geoalchemy2#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/547\"\u003egeoalchemy/geoalchemy2#547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/553\"\u003egeoalchemy/geoalchemy2#553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/554\"\u003egeoalchemy/geoalchemy2#554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Improve readbility of benchmark results by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/556\"\u003egeoalchemy/geoalchemy2#556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/555\"\u003egeoalchemy/geoalchemy2#555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/557\"\u003egeoalchemy/geoalchemy2#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Remove warning message from MySQL/MariaDB reflection by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/560\"\u003egeoalchemy/geoalchemy2#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/561\"\u003egeoalchemy/geoalchemy2#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: correct doc strings by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/564\"\u003egeoalchemy/geoalchemy2#564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/565\"\u003egeoalchemy/geoalchemy2#565\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/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.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/geoalchemy/geoalchemy2/blob/master/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string - \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Fix doc strings for cache enabled - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(papacodebear/master) Fix: Remove warning from MySQL/MariaDB reflection \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Improve readability of benchmark results \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/556\"\u003e#556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/553\"\u003e#553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker container \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf (mariadb): Stop converting WKB to WKT \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/544\"\u003e#544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Compile literal binds properly \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/540\"\u003e#540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0c311122e5228a885e262d8f79b037cb74c0949b\"\u003e\u003ccode\u003e0c31112\u003c/code\u003e\u003c/a\u003e Release: 0.18.1 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/75f87fac699ed31579ef93dffc59cc25bda241a8\"\u003e\u003ccode\u003e75f87fa\u003c/code\u003e\u003c/a\u003e Fix: Allow scientific notation within WKT string (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8653df3a1b0236556f1c39c916f0fb717475a6d1\"\u003e\u003ccode\u003e8653df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/3d6099504023afda68137f0ac2d041986159dac9\"\u003e\u003ccode\u003e3d60995\u003c/code\u003e\u003c/a\u003e Fix (mysql): Fix failing test for MySQL dialect (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/60767082df9f4587fadd56ab94847ebc39df8295\"\u003e\u003ccode\u003e6076708\u003c/code\u003e\u003c/a\u003e Release: 0.18.0 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/565\"\u003e#565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/e13112177bdf79cae0d72a6e89d815dc272e3dc5\"\u003e\u003ccode\u003ee131121\u003c/code\u003e\u003c/a\u003e Feat: Add support of spatial indexes for Raster type for PostgreSQL (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0b432086a0c3b8ab160c5cc1864aa65e02f35362\"\u003e\u003ccode\u003e0b43208\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8791b2eec013f21f599ca060d9fee4aba72ec2a1\"\u003e\u003ccode\u003e8791b2e\u003c/code\u003e\u003c/a\u003e Docs: Fix doc strings for cache enabled (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/d3c1d04c8b462c61132403e44a7a4f04a487c142\"\u003e\u003ccode\u003ed3c1d04\u003c/code\u003e\u003c/a\u003e Chore: Move reflection type registering (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/24dc5d05d97fb9a2a57103c1823a58f06940a5e8\"\u003e\u003ccode\u003e24dc5d0\u003c/code\u003e\u003c/a\u003e Fix: Remove warning from MySQL/MariaDB reflection (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.1\"\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=geoalchemy2\u0026package-manager=pip\u0026previous-version=0.17.1\u0026new-version=0.18.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/freezingsaddles/freezing-sync/pull/129","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/freezingsaddles%2Ffreezing-sync/issues/129","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/129/packages"}],"issue_packages":[{"old_version":"0.14.2","new_version":"0.20.0","update_type":"minor","path":"/cp2b-workspace/NewLook/backend","pr_created_at":"2026-05-19T00:35:08.000Z","version_change":"0.14.2 → 0.20.0","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":"0.18.4","new_version":"0.20.0","update_type":"minor","path":null,"pr_created_at":"2026-05-18T09:17:06.000Z","version_change":"0.18.4 → 0.20.0","issue":{"uuid":"4467837191","node_id":"PR_kwDORjnU487clXva","number":9,"state":"closed","title":"Chore:(deps): bump the python-dependencies group across 1 directory with 15 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-25T08:44:29.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-18T09:17:06.000Z","updated_at":"2026-05-25T08:44:31.000Z","time_to_close":602843,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Chore:(deps): bump","group_name":"python-dependencies","update_count":15,"packages":[{"name":"black","old_version":"26.3.1","new_version":"26.5.0","repository_url":"https://github.com/psf/black"},{"name":"fastapi","old_version":"0.135.3","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"fastapi-mail","old_version":"1.6.2","new_version":"1.6.4","repository_url":"https://github.com/sabuhish/fastapi-mail"},{"name":"geoalchemy2","old_version":"0.18.4","new_version":"0.20.0","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"gunicorn","old_version":"25.3.0","new_version":"26.0.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"mypy","old_version":"1.20.0","new_version":"2.1.0","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.5.1","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.13.1","new_version":"2.14.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"python-multipart","old_version":"0.0.24","new_version":"0.0.29","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"pytz","old_version":"2026.1.post1","new_version":"2026.2","repository_url":"https://github.com/stub42/pytz"},{"name":"sentry-sdk","old_version":"2.57.0","new_version":"2.60.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"types-pytz","old_version":"2026.1.1.20260402","new_version":"2026.2.0.20260518","repository_url":"https://github.com/python/typeshed"},{"name":"uvicorn","old_version":"0.43.0","new_version":"0.47.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 15 updates in the /infra/requirements directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [black](https://github.com/psf/black) | `26.3.1` | `26.5.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.3` | `0.136.1` |\n| [fastapi-mail](https://github.com/sabuhish/fastapi-mail) | `1.6.2` | `1.6.4` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.18.4` | `0.20.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `25.3.0` | `26.0.0` |\n| [mypy](https://github.com/python/mypy) | `1.20.0` | `2.1.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.4` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.13.1` | `2.14.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.24` | `0.0.29` |\n| [pytz](https://github.com/stub42/pytz) | `2026.1.post1` | `2026.2` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.57.0` | `2.60.0` |\n| [types-pytz](https://github.com/python/typeshed) | `2026.1.1.20260402` | `2026.2.0.20260518` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.43.0` | `0.47.0` |\n\n\nUpdates `black` from 26.3.1 to 26.5.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.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove parse error readability by showing multi-line output with an error pointer.\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5068\"\u003e#5068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSourceASTParseError\u003c/code\u003e to distinguish source parse failures from internal safety\nerrors, improving error reporting when Black's lenient parser accepts input that\n\u003ccode\u003east.parse()\u003c/code\u003e rejects (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn HTTP 400 (Bad Request) for source parse failures instead of HTTP 500, keeping\nHTTP 500 only for genuine internal safety errors (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded documentation for doctest formatting tools and updated the integrations index to\nmatch (\u003ca href=\"https://redirect.github.com/psf/black/issues/4916\"\u003e#4916\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\u003eVersion 26.5.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for unpacking in comprehensions (PEP 798) and for lazy imports (PEP 810),\nboth new syntactic features in Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.15 is now supported. Compiled wheels are not yet provided for Python 3.15, so\nperformance may be slower than on existing Python versions. Wheels will be provided\nonce Python 3.15 is later in its release cycle. (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e# fmt: skip\u003c/code\u003e being ignored in nested \u003ccode\u003eif\u003c/code\u003e expressions with parenthesized \u003ccode\u003ein\u003c/code\u003e\nclauses (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd syntactic support for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5048\"\u003e#5048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when an f-string follows a \u003ccode\u003e# fmt: off\u003c/code\u003e comment inside brackets (\u003ca href=\"https://redirect.github.com/psf/black/issues/5097\"\u003e#5097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve multiline compound statement headers when \u003ccode\u003e# fmt: skip\u003c/code\u003e is placed on the\ncolon line (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove heuristics around whether blank lines should appear before, within and after\ngroups of same-name decorated functions (such as \u003ccode\u003e@overload\u003c/code\u003e groups) in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5021\"\u003e#5021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix blank lines being removed between a function and a decorated class in \u003ccode\u003e.pyi\u003c/code\u003e stub\nfiles (\u003ca href=\"https://redirect.github.com/psf/black/issues/5092\"\u003e#5092\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent string merger from creating unsplittable long lines when a pragma comment\n(e.g. \u003ccode\u003e# type: ignore\u003c/code\u003e) follows the closing bracket (\u003ca href=\"https://redirect.github.com/psf/black/issues/5096\"\u003e#5096\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRun CI on 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove parse error readability by showing multi-line output with an error pointer.\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5068\"\u003e#5068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSourceASTParseError\u003c/code\u003e to distinguish source parse failures from internal safety\nerrors, improving error reporting when Black's lenient parser accepts input that\n\u003ccode\u003east.parse()\u003c/code\u003e rejects (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn HTTP 400 (Bad Request) for source parse failures instead of HTTP 500, keeping\nHTTP 500 only for genuine internal safety errors (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded documentation for doctest formatting tools and updated the integrations index to\nmatch (\u003ca href=\"https://redirect.github.com/psf/black/issues/4916\"\u003e#4916\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/d2490e24dad33b8f68c77602ee29160de0fea24b\"\u003e\u003ccode\u003ed2490e2\u003c/code\u003e\u003c/a\u003e Prepare release 26.5.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5131\"\u003e#5131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2b13ea76fa69d4923381df65deb1a5c896ca27ad\"\u003e\u003ccode\u003e2b13ea7\u003c/code\u003e\u003c/a\u003e Preserve multiline headers with fmt skip (\u003ca href=\"https://redirect.github.com/psf/black/issues/5117\"\u003e#5117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/aef52e00c618f8203548fa6d1512eb49bf60f411\"\u003e\u003ccode\u003eaef52e0\u003c/code\u003e\u003c/a\u003e Improve fmt:skip handling in nested expressions with checks (\u003ca href=\"https://redirect.github.com/psf/black/issues/4903\"\u003e#4903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/9e8749525bf91d5a78f2bf5534f8efaefab80b92\"\u003e\u003ccode\u003e9e87495\u003c/code\u003e\u003c/a\u003e Add CI coverage for Python 3.15 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5127\"\u003e#5127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/9fd9ea2835973981e3f5dc5b8eb76f2ded46aa61\"\u003e\u003ccode\u003e9fd9ea2\u003c/code\u003e\u003c/a\u003e Fix blackd error handling: split SourceASTParseError from ASTSafetyError (\u003ca href=\"https://redirect.github.com/psf/black/issues/5080\"\u003e#5080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/866c350cec7edd999ef55a0edb7b2202aa917f15\"\u003e\u003ccode\u003e866c350\u003c/code\u003e\u003c/a\u003e Bump docutils, sphinx, myst-parser (\u003ca href=\"https://redirect.github.com/psf/black/issues/4960\"\u003e#4960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/05b4d1e647a20c9242a3cc095e3a19a984ef4123\"\u003e\u003ccode\u003e05b4d1e\u003c/code\u003e\u003c/a\u003e docs: update deprecated PEP URLs to peps.python.org (\u003ca href=\"https://redirect.github.com/psf/black/issues/5115\"\u003e#5115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1c25a476ddc48619332f545aa89bedc96429a33e\"\u003e\u003ccode\u003e1c25a47\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/psf/black/issues/5111\"\u003e#5111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/b0fa37ff449e679b8955c1ae0b6689abaa5025d7\"\u003e\u003ccode\u003eb0fa37f\u003c/code\u003e\u003c/a\u003e Bump zizmorcore/zizmor-action from 0.5.2 to 0.5.3 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5109\"\u003e#5109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/530d5abba7ce2efbfe3fefffa368027274bd630a\"\u003e\u003ccode\u003e530d5ab\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 5.0.4 to 5.0.5 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5108\"\u003e#5108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/26.3.1...26.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.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 `fastapi-mail` from 1.6.2 to 1.6.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sabuhish/fastapi-mail/releases\"\u003efastapi-mail's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.6.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: restore Redis as optional dependency by \u003ca href=\"https://github.com/faverl\"\u003e\u003ccode\u003e@​faverl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/pull/312\"\u003esabuhish/fastapi-mail#312\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/faverl\"\u003e\u003ccode\u003e@​faverl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/pull/312\"\u003esabuhish/fastapi-mail#312\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/sabuhish/fastapi-mail/compare/1.6.3...1.6.4\"\u003ehttps://github.com/sabuhish/fastapi-mail/compare/1.6.3...1.6.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.6.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(config): enable Jinja2 autoescape to prevent XSS vulnerabilities (\u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/issues/295\"\u003e#295\u003c/a\u003e) by \u003ca href=\"https://github.com/benaduo\"\u003e\u003ccode\u003e@​benaduo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/pull/301\"\u003esabuhish/fastapi-mail#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: use project section by \u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/pull/305\"\u003esabuhish/fastapi-mail#305\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated libraries by \u003ca href=\"https://github.com/sabuhish\"\u003e\u003ccode\u003e@​sabuhish\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/pull/310\"\u003esabuhish/fastapi-mail#310\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(msg): derive MIME type from UploadFile content-type header (\u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/issues/217\"\u003e#217\u003c/a\u003e) by \u003ca href=\"https://github.com/benaduo\"\u003e\u003ccode\u003e@​benaduo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/pull/304\"\u003esabuhish/fastapi-mail#304\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: use single underscore for overridable internal methods by \u003ca href=\"https://github.com/sabuhish\"\u003e\u003ccode\u003e@​sabuhish\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/pull/311\"\u003esabuhish/fastapi-mail#311\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/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/pull/305\"\u003esabuhish/fastapi-mail#305\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/sabuhish/fastapi-mail/compare/v1.6.2...1.6.3\"\u003ehttps://github.com/sabuhish/fastapi-mail/compare/v1.6.2...1.6.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/15f8e3986225e497e899b7c274e303ae4c7e4615\"\u003e\u003ccode\u003e15f8e39\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/issues/312\"\u003e#312\u003c/a\u003e from faverl/fix/redis-optional-dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/e01d5e209615b29f2262507173614a9710269f46\"\u003e\u003ccode\u003ee01d5e2\u003c/code\u003e\u003c/a\u003e chore: update poetry.lock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/e57abdd5655a863811dee727ab51b6970b4fd4f8\"\u003e\u003ccode\u003ee57abdd\u003c/code\u003e\u003c/a\u003e fix: make redis an optional dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/aa50c62d8f03f34f22851ad9d9b5f2bc66b79af7\"\u003e\u003ccode\u003eaa50c62\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/issues/311\"\u003e#311\u003c/a\u003e from sabuhish/change_methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/9b96e129a6b702f26987e817f30bccff994933f7\"\u003e\u003ccode\u003e9b96e12\u003c/code\u003e\u003c/a\u003e fix linter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/2df212f9f25e96acce41d3619329dfad3973a409\"\u003e\u003ccode\u003e2df212f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/issues/304\"\u003e#304\u003c/a\u003e from benaduo/fix/issue-217-uploadfile-mimetype\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/1edcf5bc5f56337593013f0bc8e22ae8c51c3dd8\"\u003e\u003ccode\u003e1edcf5b\u003c/code\u003e\u003c/a\u003e refactor: use single underscore for overridable internal methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/624a462443c0592af5fb0b21dca666ac693ae9b6\"\u003e\u003ccode\u003e624a462\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/issues/310\"\u003e#310\u003c/a\u003e from sabuhish/update_libs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/cbd97a408061518e964059fcfbbf74d6777d05a0\"\u003e\u003ccode\u003ecbd97a4\u003c/code\u003e\u003c/a\u003e Updated libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sabuhish/fastapi-mail/commit/335377ea885e7ddd6c315df91c504e6db7f0ceb8\"\u003e\u003ccode\u003e335377e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sabuhish/fastapi-mail/issues/305\"\u003e#305\u003c/a\u003e from waketzheng/master\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sabuhish/fastapi-mail/compare/v1.6.2...1.6.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geoalchemy2` from 0.18.4 to 0.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.20.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Add MSSQL dialect by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/603\"\u003egeoalchemy/geoalchemy2#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update docs by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/604\"\u003egeoalchemy/geoalchemy2#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Rework Docker image with docker-compose by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/601\"\u003egeoalchemy/geoalchemy2#601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Use prek and fix yaml files accordingly by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/602\"\u003egeoalchemy/geoalchemy2#602\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Setup cockroachdb by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/569\"\u003egeoalchemy/geoalchemy2#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Add script to compare benchmarks from 2 different runs by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/607\"\u003egeoalchemy/geoalchemy2#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.20.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/608\"\u003egeoalchemy/geoalchemy2#608\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.19.0...0.20.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.19.0...0.20.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.19.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Fix triggers after default branch was renamed main by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/593\"\u003egeoalchemy/geoalchemy2#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept leading '+' in WKT coords and fix Comparator \u003ccode\u003e\u0026gt;\u0026gt;\u003c/code\u003e docstring by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/594\"\u003egeoalchemy/geoalchemy2#594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/595\"\u003egeoalchemy/geoalchemy2#595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Fix Too many connections errors in MySQL and MariaDB by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/597\"\u003egeoalchemy/geoalchemy2#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Ensure _GISType.column_expression is compatible with TypeDecorator by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/598\"\u003egeoalchemy/geoalchemy2#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.19.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/599\"\u003egeoalchemy/geoalchemy2#599\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.4...0.19.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.4...0.19.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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.20.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Compatibility for SQLAlchemy \u0026gt;= 2.1 \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/606\"\u003e#606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Add MSSQL dialect \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/603\"\u003e#603\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Update docs \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Setup cockroachdb \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/569\"\u003e#569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Replace pre-commit by prek and fix yaml files accordingly \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/602\"\u003e#602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Rework Docker image with docker-compose \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/601\"\u003e#601\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.19.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Ensure _GISType.column_expression is compatible with TypeDecorator - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/598\"\u003e#598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Improve WKT parsing and fix comparator doc typo - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/594\"\u003e#594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Fix Too many connections errors in MySQL and MariaDB - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Fix triggers after default branch was renamed main - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/593\"\u003e#593\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/geoalchemy/geoalchemy2/commit/dea459b7b7d8a48ffcee2f809ccc784685ecc763\"\u003e\u003ccode\u003edea459b\u003c/code\u003e\u003c/a\u003e Release: 0.20.0 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/71a120f4756e7c08f547d8d3e5664fe9de45a263\"\u003e\u003ccode\u003e71a120f\u003c/code\u003e\u003c/a\u003e Chore: Add script to compare benchmarks from 2 different runs (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/607\"\u003e#607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/c1a7492b9d12caf609c44bea1a0870d1b52e70c6\"\u003e\u003ccode\u003ec1a7492\u003c/code\u003e\u003c/a\u003e Feat: Compatibility for SQLAlchemy \u0026gt;= 2.1 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/606\"\u003e#606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8e145573a3e3788e8e49d95cd4f848a6588d66d5\"\u003e\u003ccode\u003e8e14557\u003c/code\u003e\u003c/a\u003e CI: Setup cockroachdb (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/569\"\u003e#569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0dbf458b68e8ca00009566761c0bc4ca946404f6\"\u003e\u003ccode\u003e0dbf458\u003c/code\u003e\u003c/a\u003e Docs: Update docs (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/379d47ddba81d6716e6c841039e49beb3029b292\"\u003e\u003ccode\u003e379d47d\u003c/code\u003e\u003c/a\u003e Feat: Add MSSQL dialect (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/603\"\u003e#603\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/3a6cfe210db901a9c1a6e3070a0b33b0024e4cf3\"\u003e\u003ccode\u003e3a6cfe2\u003c/code\u003e\u003c/a\u003e CI: Replace pre-commit by prek and fix yaml files accordingly (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/602\"\u003e#602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0e21b2b17175bd8fb6bf2700c9baa99eb1310eee\"\u003e\u003ccode\u003e0e21b2b\u003c/code\u003e\u003c/a\u003e Test: Rework Docker image with docker-compose (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/601\"\u003e#601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/792cc5efe8d335b7009ea44e598c138bdd7ab5b2\"\u003e\u003ccode\u003e792cc5e\u003c/code\u003e\u003c/a\u003e Release: 0.19.0 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/599\"\u003e#599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/9d17680de522ce4c8734b2c547aa42ccf51eaf2f\"\u003e\u003ccode\u003e9d17680\u003c/code\u003e\u003c/a\u003e Fix: Ensure _GISType.column_expression is compatible with TypeDecorator (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/598\"\u003e#598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.4...0.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 25.3.0 to 26.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eEventlet worker removed\u003c/strong\u003e: The \u003ccode\u003eeventlet\u003c/code\u003e worker class has been dropped. Migrate to \u003ccode\u003egevent\u003c/code\u003e, \u003ccode\u003egthread\u003c/code\u003e, or \u003ccode\u003etornado\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Framework Compatibility Suite\u003c/strong\u003e: New end-to-end compatibility test harness covering Starlette, FastAPI, Litestar, Quart, Sanic, and BlackSheep. Current grid passes 438/444 tests (98%).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Test Suite Expansion\u003c/strong\u003e: 134 additional ASGI unit tests covering protocol semantics, lifespan, websockets, and chunked framing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/1.1 Request-Target Validation\u003c/strong\u003e (RFC 9112 sections 3.2.3, 3.2.4):\n\u003cul\u003e\n\u003cli\u003eReject \u003ccode\u003eauthority-form\u003c/code\u003e request-target outside \u003ccode\u003eCONNECT\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003easterisk-form\u003c/code\u003e request-target outside \u003ccode\u003eOPTIONS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003erelative-reference\u003c/code\u003e request-targets\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHeader Field Hardening\u003c/strong\u003e (RFC 9110):\n\u003cul\u003e\n\u003cli\u003eReject control characters in header field-value (section 5.5)\u003c/li\u003e\n\u003cli\u003eReject forbidden trailer field-names (section 6.5.1)\u003c/li\u003e\n\u003cli\u003eReject \u003ccode\u003eContent-Length\u003c/code\u003e list form (RFC 9112 section 6.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRequest Smuggling Hardening\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eTighten keepalive gate and scope \u003ccode\u003efinish_body\u003c/code\u003e byte cap\u003c/li\u003e\n\u003cli\u003eKeep \u003ccode\u003e_body_receiver\u003c/code\u003e alive across the keepalive smuggling gate so pipelined requests cannot re-enter a closed body\u003c/li\u003e\n\u003cli\u003eAddress parser/protocol findings from a six-point WSGI/ASGI audit\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePROXY Protocol (ASGI)\u003c/strong\u003e: Enforce \u003ccode\u003eproxy_allow_ips\u003c/code\u003e and tighten v1/v2 parsing in the ASGI callback parser.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eConnection Draining\u003c/strong\u003e: Drain the connection on close per RFC 9112 section 9.6 to prevent reset-on-close truncation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBody Framing on HEAD/204/304\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eKeep \u003ccode\u003eContent-Length\u003c/code\u003e on HEAD and 304 responses (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop body framing on HEAD/204/304 even when the framework set it\u003c/li\u003e\n\u003cli\u003eWarn once when an ASGI app emits a body for a no-body response\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/2 ASGI\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e_handle_stream_ended\u003c/code\u003e to set \u003ccode\u003e_body_complete\u003c/code\u003e in the async HTTP/2 handler so request bodies finalize correctly on stream end\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eInvalidChunkExtension\u003c/code\u003e mapping and fast-parser support in ASGI tests (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3565\"\u003e#3565\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eHTTP/1.1 100-Continue\u003c/strong\u003e: Stop adding \u003ccode\u003eTransfer-Encoding: chunked\u003c/code\u003e to 100-Continue interim responses.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWebSocket Close Handshake\u003c/strong\u003e (RFC 6455):\n\u003cul\u003e\n\u003cli\u003eComply with the close handshake state machine\u003c/li\u003e\n\u003cli\u003eClose the transport after the close handshake completes\u003c/li\u003e\n\u003cli\u003eFix binary send when the \u003ccode\u003etext\u003c/code\u003e key is \u003ccode\u003eNone\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEarly Hints\u003c/strong\u003e: Validate headers in the \u003ccode\u003eearly_hints\u003c/code\u003e callback to match \u003ccode\u003eprocess_headers\u003c/code\u003e; pass only the header name to \u003ccode\u003eInvalidHeader\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3588\"\u003e#3588\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Framework Fixes\u003c/strong\u003e:\n\u003cul\u003e\n\u003cli\u003eFix ASGI disconnect handling for Django-style apps\u003c/li\u003e\n\u003cli\u003eFix Litestar request handling (use raw ASGI receive for body/headers)\u003c/li\u003e\n\u003cli\u003eFix Litestar HTTP endpoints for compatibility tests\u003c/li\u003e\n\u003cli\u003eFix Quart headers endpoint to normalize keys to lowercase\u003c/li\u003e\n\u003cli\u003eFix Quart WebSocket close test app (missing \u003ccode\u003eaccept()\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix duplicate \u003ccode\u003eTransfer-Encoding\u003c/code\u003e header for BlackSheep streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/5d819cf36040f6cc6175fcc804d703fb899509dd\"\u003e\u003ccode\u003e5d819cf\u003c/code\u003e\u003c/a\u003e release: 26.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/b45c70df105f7d5dcbc5abfb732804d6464edc21\"\u003e\u003ccode\u003eb45c70d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3611\"\u003e#3611\u003c/a\u003e from zc-mattcen/docs-typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/99c8d48acf453deb5c49fe12e195dbc00d888d1e\"\u003e\u003ccode\u003e99c8d48\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3623\"\u003e#3623\u003c/a\u003e from benoitc/chore/drop-eventlet-add-h2-uvloop-test-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/5a655af50f20e005dd9e32e6078dc82fa45f3d4b\"\u003e\u003ccode\u003e5a655af\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3622\"\u003e#3622\u003c/a\u003e from benoitc/test/docker-port-and-ipv4-fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/201df19a8011c0a1d6a0e75ebe22e89d48eb935e\"\u003e\u003ccode\u003e201df19\u003c/code\u003e\u003c/a\u003e chore: remove eventlet worker; add h2 and uvloop to test deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/f4ac8e1f1bf1d365e77f41915da55bec31873f84\"\u003e\u003ccode\u003ef4ac8e1\u003c/code\u003e\u003c/a\u003e test: pass action name to dirty client and stabilize after TTOU spam\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/54d38afddf1f0db0c15b5f4ff63f3c7bfad96961\"\u003e\u003ccode\u003e54d38af\u003c/code\u003e\u003c/a\u003e test: unblock docker fixtures on macOS hosts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/68843c8893dd938456f0a2da62085ab5776f8871\"\u003e\u003ccode\u003e68843c8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3621\"\u003e#3621\u003c/a\u003e from benoitc/fix/asgi-preserve-content-length-on-hea...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/31f2618f733cc0c78690df63f4e344aaf3f56b20\"\u003e\u003ccode\u003e31f2618\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3620\"\u003e#3620\u003c/a\u003e from benoitc/fix/asgi-proxy-protocol-trust-and-parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/41ec7527dbd8a9e52728477700707ad40e41d9dc\"\u003e\u003ccode\u003e41ec752\u003c/code\u003e\u003c/a\u003e fix: keep Content-Length on HEAD and 304 responses\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/25.3.0...26.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.20.0 to 2.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMypy Release Notes\u003c/h1\u003e\n\u003ch2\u003eNext Release\u003c/h2\u003e\n\u003ch2\u003eMypy 2.1\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 2.1.0 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\nimprovements and bug fixes. You can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003elibrt.vecs: Fast Growable Array Type for Mypyc\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003elibrt.vecs\u003c/code\u003e module provides an efficient growable array type \u003ccode\u003evec\u003c/code\u003e that is\noptimized for mypyc use. It provides fast, packed arrays with integer and floating point\nvalue types, which can be \u003cstrong\u003eseveral times faster\u003c/strong\u003e than \u003ccode\u003elist\u003c/code\u003e, and tens of times faster\nthan \u003ccode\u003earray.array\u003c/code\u003e in code compiled using mypyc. It also supports nested \u003ccode\u003evec\u003c/code\u003e objects and\nnon-value-type items, such as \u003ccode\u003evec[vec[str]]\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eRefer to the \u003ca href=\"https://mypyc.readthedocs.io/en/latest/librt_vecs.html\"\u003edocumentation\u003c/a\u003e for\nthe details.\u003c/p\u003e\n\u003cp\u003eContributed by Jukka Lehtosalo.\u003c/p\u003e\n\u003ch3\u003elibrt.random: Fast Pseudo-Random Number Generation\u003c/h3\u003e\n\u003cp\u003eThe new \u003ccode\u003elibrt.random\u003c/code\u003e module provides fast pseudo-random number generation that is\noptimized for code compiled using mypyc. It can be 3x to 10x faster than the stdlib\n\u003ccode\u003erandom\u003c/code\u003e module in compiled code.\u003c/p\u003e\n\u003cp\u003eRefer to the \u003ca href=\"https://mypyc.readthedocs.io/en/latest/librt_random.html\"\u003edocumentation\u003c/a\u003e for\nthe details.\u003c/p\u003e\n\u003cp\u003eContributed by Jukka Lehtosalo (PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21433\"\u003e21433\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMypyc Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMake compilation order with multiple files consistent (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21419\"\u003e21419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on accessing \u003ccode\u003eStopAsyncIteration\u003c/code\u003e (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21406\"\u003e21406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix incremental compilation with \u003ccode\u003eseparate\u003c/code\u003e flag (Vaggelis Danias, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21299\"\u003e21299\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes to Crashes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash on partial type with \u003ccode\u003e--allow-redefinition\u003c/code\u003e and \u003ccode\u003eglobal\u003c/code\u003e declaration (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21428\"\u003e21428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix broken awaitable generator patching (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21435\"\u003e21435\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges to Messages\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/python/mypy/commit/c1c336d7e34eb313080c79b156518c58d27c7234\"\u003e\u003ccode\u003ec1c336d\u003c/code\u003e\u003c/a\u003e Remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/74df14b7cbf08140236aa45bbb7f42219b0b1df7\"\u003e\u003ccode\u003e74df14b\u003c/code\u003e\u003c/a\u003e Add changelog for mypy 2.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21464\"\u003e#21464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/022d9bc96f86c40f338a5cf150f1806cc8f300ff\"\u003e\u003ccode\u003e022d9bc\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;TypeForm: Enable by default (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21262\"\u003e#21262\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8826288214f1cb31496e610667481221e025359c\"\u003e\u003ccode\u003e8826288\u003c/code\u003e\u003c/a\u003e [mypyc] Document librt.random (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21463\"\u003e#21463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3f4067b699dbe52d08e42ef3b3ebfdebdc06bd96\"\u003e\u003ccode\u003e3f4067b\u003c/code\u003e\u003c/a\u003e Bump librt version to 0.11.0 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21458\"\u003e#21458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b1eb58a250c5f1eb4ef5fb1f312ff528c5a1d4e\"\u003e\u003ccode\u003e2b1eb58\u003c/code\u003e\u003c/a\u003e [mypyc] Enable incremental self-compilation (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21369\"\u003e#21369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8152f4af3f6c03beaf2660026240f0fdce7feecc\"\u003e\u003ccode\u003e8152f4a\u003c/code\u003e\u003c/a\u003e Respect file config comments for stale modules (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21444\"\u003e#21444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/116d60bdd3fdfe8d97c6afe99370910db56f1b92\"\u003e\u003ccode\u003e116d60b\u003c/code\u003e\u003c/a\u003e Fix nondeterminism from nonassociativity of overload joins (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21455\"\u003e#21455\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6c4af8e42110cea3f84bc02add2ca7b89c268210\"\u003e\u003ccode\u003e6c4af8e\u003c/code\u003e\u003c/a\u003e Fix function call message change for small number of args (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21432\"\u003e#21432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/4b8fdcaf24032592510e8f15421fb32d82a71800\"\u003e\u003ccode\u003e4b8fdca\u003c/code\u003e\u003c/a\u003e [mypyc] Add librt.random module (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21433\"\u003e#21433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.20.0...v2.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.5.1 to 4.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.6.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier usage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.6.0 - 2026-04-21\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: allow \u003ccode\u003e--hook-dir\u003c/code\u003e to be missing to enable easier\nusage with \u003ccode\u003egit\u003c/code\u003e 2.54+ git hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epre-commit hook-impl\u003c/code\u003e: \u003ccode\u003e--hook-type\u003c/code\u003e is required.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f35134b05028ec938ac605ae500fdf95462655d3\"\u003e\u003ccode\u003ef35134b\u003c/code\u003e\u003c/a\u003e v4.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2a51ffcb81f6c8ed2e6467913c3343a8800f3ab9\"\u003e\u003ccode\u003e2a51ffc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3662\"\u003e#3662\u003c/a\u003e from pre-commit/hook-impl-optional-hook-dir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/d7dee322abfc765b042f2e3b872aab3c3a867610\"\u003e\u003ccode\u003ed7dee32\u003c/code\u003e\u003c/a\u003e make --hook-dir optional for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/965aeb1c680e8b526342153547f0ec014484c63d\"\u003e\u003ccode\u003e965aeb1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3661\"\u003e#3661\u003c/a\u003e from pre-commit/hook-impl-required\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2eacc064aa9b5bb33d3a0d84a234b475e34f3096\"\u003e\u003ccode\u003e2eacc06\u003c/code\u003e\u003c/a\u003e --hook-type is required for hook-impl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f5678bf4ac35cffc0ff7174ad85f7fdc2a5c977e\"\u003e\u003ccode\u003ef5678bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3657\"\u003e#3657\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/054cc5bd6bb1b20faa1eefe09f0de3b68fceee94\"\u003e\u003ccode\u003e054cc5b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/5c0f3024d2524f6e029a4c333392fd9be9fb27f6\"\u003e\u003ccode\u003e5c0f302\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3652\"\u003e#3652\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/a5d91142676630f8130020b35e166e0c0e92b8f4\"\u003e\u003ccode\u003ea5d9114\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/129a1f5ca1eaee0c952a5e7a07faae305c5e15bc\"\u003e\u003ccode\u003e129a1f5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3641\"\u003e#3641\u003c/a\u003e from pre-commit/mxr-patch-1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.5.1...v4.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\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/pydantic/pydantic/blob/v2.13.4/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.4\"\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.13.1 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-packa...\n\n_Description has been truncated_","html_url":"https://github.com/KarimovMurodilla/mini-social-app/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/KarimovMurodilla%2Fmini-social-app/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"}},{"old_version":"0.17.1","new_version":"0.19.0","update_type":"minor","path":null,"pr_created_at":"2026-04-27T22:31:53.000Z","version_change":"0.17.1 → 0.19.0","issue":{"uuid":"4339256101","node_id":"PR_kwDOHTdvBs7WIng2","number":1590,"state":"closed","title":"deps(ibis): bump the all group across 1 directory with 33 updates","user":"dependabot[bot]","labels":["ibis","dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-04T23:10:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-27T22:31:53.000Z","updated_at":"2026-05-04T23:10:38.000Z","time_to_close":607123,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(ibis): bump","group_name":"all","update_count":33,"packages":[{"name":"fastapi","old_version":"0.120.1","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.10.6","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"ibis-framework","old_version":"10.8.0","new_version":"12.0.0","repository_url":"https://github.com/ibis-project/ibis"},{"name":"google-auth","old_version":"2.38.0","new_version":"2.49.2","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"orjson","old_version":"3.11.7","new_version":"3.11.8","repository_url":"https://github.com/ijl/orjson"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"geoalchemy2","old_version":"0.17.1","new_version":"0.19.0","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"gql","old_version":"3.5.2","new_version":"4.0.0","repository_url":"https://github.com/graphql-python/gql"},{"name":"anyio","old_version":"4.10.0","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"duckdb","old_version":"1.3.2","new_version":"1.5.2","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"oracledb","old_version":"3.3.0","new_version":"3.4.2","repository_url":"https://github.com/oracle/python-oracledb"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.3.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"uvicorn-worker","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/Kludex/uvicorn-worker"},{"name":"redshift-connector","old_version":"2.1.7","new_version":"2.1.13","repository_url":"https://github.com/aws/amazon-redshift-python-driver"},{"name":"datafusion","old_version":"47.0.0","new_version":"53.0.0","repository_url":"https://github.com/apache/datafusion-python"},{"name":"starlette","old_version":"0.49.3","new_version":"1.0.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"databricks-sql-connector","old_version":"4.2.5","new_version":"4.2.6","repository_url":"https://github.com/databricks/databricks-sql-python"},{"name":"databricks-sdk","old_version":"0.73.0","new_version":"0.105.0","repository_url":"https://github.com/databricks/databricks-sdk-py"},{"name":"pyspark","old_version":"3.5.7","new_version":"4.1.1","repository_url":"https://github.com/apache/spark"},{"name":"pyopenssl","old_version":"26.0.0","new_version":"26.1.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"wren-engine","old_version":"0.1.0","new_version":"0.3.0","repository_url":"https://github.com/Canner/wren-engine"},{"name":"matplotlib","old_version":"3.10.8","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"plotly","old_version":"6.6.0","new_version":"6.7.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"testcontainers","old_version":"4.9.2","new_version":"4.14.2","repository_url":"https://github.com/testcontainers/testcontainers-python"},{"name":"sqlalchemy","old_version":"2.0.39","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.6.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.11.2","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"psycopg2","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"clickhouse-connect","old_version":"0.8.15","new_version":"0.15.1","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"polars","old_version":"1.39.3","new_version":"1.40.1","repository_url":"https://github.com/pola-rs/polars"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all group with 33 updates in the /ibis-server directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.120.1` | `0.136.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.10.6` | `2.13.3` |\n| [ibis-framework](https://github.com/ibis-project/ibis) | `10.8.0` | `12.0.0` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.38.0` | `2.49.2` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.2` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.11.8` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.17.1` | `0.19.0` |\n| [gql](https://github.com/graphql-python/gql) | `3.5.2` | `4.0.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.13.0` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.3.2` | `1.5.2` |\n| [oracledb](https://github.com/oracle/python-oracledb) | `3.3.0` | `3.4.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.46.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.3.0` |\n| [uvicorn-worker](https://github.com/Kludex/uvicorn-worker) | `0.3.0` | `0.4.0` |\n| [redshift-connector](https://github.com/aws/amazon-redshift-python-driver) | `2.1.7` | `2.1.13` |\n| [datafusion](https://github.com/apache/datafusion-python) | `47.0.0` | `53.0.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.3` | `1.0.0` |\n| [databricks-sql-connector](https://github.com/databricks/databricks-sql-python) | `4.2.5` | `4.2.6` |\n| [databricks-sdk](https://github.com/databricks/databricks-sdk-py) | `0.73.0` | `0.105.0` |\n| [pyspark](https://github.com/apache/spark) | `3.5.7` | `4.1.1` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `26.0.0` | `26.1.0` |\n| [wren-engine](https://github.com/Canner/wren-engine) | `0.1.0` | `0.3.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.8` | `3.10.9` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.6.0` | `6.7.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.3` |\n| [testcontainers](https://github.com/testcontainers/testcontainers-python) | `4.9.2` | `4.14.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.39` | `2.0.49` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.6.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.2` | `0.15.12` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.8.15` | `0.15.1` |\n| [polars](https://github.com/pola-rs/polars) | `1.39.3` | `1.40.1` |\n\n\nUpdates `fastapi` from 0.120.1 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\u003ch2\u003e0.135.3\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/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.120.1...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.10.6 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\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/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.10.6...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ibis-framework` from 10.8.0 to 12.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ibis-project/ibis/releases\"\u003eibis-framework's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.0.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ibis-project/ibis/compare/11.0.0...12.0.0\"\u003e12.0.0\u003c/a\u003e (2026-02-07)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epyspark:\u003c/strong\u003e PySpark \u0026lt;3.5 is no longer supported\u003c/li\u003e\n\u003cli\u003eofficially drop support for 3.9, bump all dependencies\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e infer decimal precision and scale\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e implement \u003ccode\u003eupsert()\u003c/code\u003e using \u003ccode\u003eMERGE INTO\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11624\"\u003e#11624\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/9126733b38e1c92f6e787f92dc9954e88ab6400d\"\u003e9126733\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/5391\"\u003e#5391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e support Table.cast(my_col=int) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/9e209f37b6228472071ef8b9168ed56ec9c0a727\"\u003e9e209f3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatabricks:\u003c/strong\u003e support json literals (\u003ca href=\"https://github.com/ibis-project/ibis/commit/f46a58f9eb5128e64981b756b0a866e291663997\"\u003ef46a58f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatafusion:\u003c/strong\u003e add compilation rule for Strftime (\u003ca href=\"https://github.com/ibis-project/ibis/commit/6fa8411e43a68f0f0ac38f493242bc1ff28a5253\"\u003e6fa8411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e enable compatibility with pandas 3.0.0 (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11873\"\u003e#11873\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/34a36be80e589e449501942bda8ec4125e89beb0\"\u003e34a36be\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ematerialize:\u003c/strong\u003e add new backend for Materialize streaming database (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11893\"\u003e#11893\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/35fcce08369ed7650b00fed7064535eeceeaba41\"\u003e35fcce0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eofficially drop support for 3.9, bump all dependencies (\u003ca href=\"https://github.com/ibis-project/ibis/commit/aa16d0885ff62ac92ec1027a245158896f74cc0d\"\u003eaa16d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epyspark:\u003c/strong\u003e support pyspark 4.0 (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e9c35e6a3574855daf4e02f4217727df0d54872d\"\u003ee9c35e6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esinglestoredb:\u003c/strong\u003e add SingleStoreDB backend (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11595\"\u003e#11595\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a83cfef0f6b84f3dbb83ca55682100f32488d7c2\"\u003ea83cfef\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport JSON literal values (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11728\"\u003e#11728\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/38b19c765f02b18684ec6e7b4e0815d117fc8b60\"\u003e38b19c7\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11727\"\u003e#11727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e improve typing of ibis.common.collections (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e3aba92c6126e556e179f2cbff3dc837802de790\"\u003ee3aba92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make dtype() and schema() more typesafe (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11856\"\u003e#11856\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/116886f807fbf62ce0265ef152f48540c284b8c5\"\u003e116886f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make more arguments positional-only (\u003ca href=\"https://github.com/ibis-project/ibis/commit/610c4504b438b5ac302b384073134ff5c8458908\"\u003e610c450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make types more precise for many common Values (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11771\"\u003e#11771\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/2eb772a7a8a5632edb347ecd49af5773c268d188\"\u003e2eb772a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd order_by to first and last (\u003ca href=\"https://github.com/ibis-project/ibis/commit/7ead7876435c55a10dc5a6457a49b9e19b7a654e\"\u003e7ead787\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11656\"\u003e#11656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd upper _method_overrides in decompile (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e7956f4cbb5daef11bbc01177ccc56f5ae3bf3fa\"\u003ee7956f4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11717\"\u003e#11717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e relax decimal upper bounds (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d05751b445d65ae0a1c786c756ea1235d51a7f18\"\u003ed05751b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebiquery:\u003c/strong\u003e use qualified table name for upserts (\u003ca href=\"https://github.com/ibis-project/ibis/commit/120b2d874d7b191886dcdad69be76c26bbe062ce\"\u003e120b2d8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecitation:\u003c/strong\u003e fix CITATION.cff [skip ci] (\u003ca href=\"https://github.com/ibis-project/ibis/commit/305526a8d6df097765b2affce60b1731f2608a1b\"\u003e305526a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e infer decimal precision and scale (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ed346e6d33157d9cf6e01f91bc67ac8866e09eb3\"\u003eed346e6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e make decimal casts more permissive (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba087d2d3a6c57451bdcf81aaa4fa5cf32350831\"\u003eba087d2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e pin dep on sqlglot to \u0026lt;28 (\u003ca href=\"https://github.com/ibis-project/ibis/commit/3e9156ef0b0b10ce6f3d95db97401175a7d9df56\"\u003e3e9156e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e sqlglot 28.0 incompatibilities (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11839\"\u003e#11839\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ab21efd939b7cd6b7cf8f03ed7a22ec96d511be0\"\u003eab21efd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e typo in Ibis description in why.qmd (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11816\"\u003e#11816\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/402c37d9920fa09bcc1aa5f9202367b01cc98ef1\"\u003e402c37d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003educkdb:\u003c/strong\u003e create a single table from Python data object (\u003ca href=\"https://github.com/ibis-project/ibis/commit/7f82e5e4aed0a492538016bfa152132ad0bc928f\"\u003e7f82e5e\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11709\"\u003e#11709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexasol:\u003c/strong\u003e update Exasol Docker image tag to 2025.1.8 (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11806\"\u003e#11806\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/2414952998f5f078b931e467e5b7f495062308ed\"\u003e2414952\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11703\"\u003e#11703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eflink:\u003c/strong\u003e don't pass unsupported \u0026quot;position\u0026quot; flag to regexp_replace (\u003ca href=\"https://github.com/ibis-project/ibis/commit/34f39ccb32be76b5e61f87938ed4cfdeb560ce7c\"\u003e34f39cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emssql:\u003c/strong\u003e use \u003ccode\u003esge.National\u003c/code\u003e to support unicode in \u003ccode\u003einformation_schema\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11877\"\u003e#11877\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a254ccb02f58d4f5b5f582249f5cfa03d141d8eb\"\u003ea254ccb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emysql:\u003c/strong\u003e use getuser() and empty password string by default (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11904\"\u003e#11904\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba0218f1bba2cbb9f2bb3a7aea39178365c0f663\"\u003eba0218f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epolars:\u003c/strong\u003e handle cross joins without passing join keys (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d3c3bad21a2b9703047dbf4977d3d250759d189e\"\u003ed3c3bad\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11764\"\u003e#11764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epolars:\u003c/strong\u003e support asof_join with no predicates (\u003ca href=\"https://github.com/ibis-project/ibis/commit/3fc9b64c2a464f66d5ed412e7cab7a7bbb58b811\"\u003e3fc9b64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgres:\u003c/strong\u003e fix postgres asof joins to consider predicates correctly (\u003ca href=\"https://github.com/ibis-project/ibis/commit/064bd2d024d1165a92615613d977e85d4dad6331\"\u003e064bd2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove bogus leading ' from Struct repr (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d7083c2c96e12bb7b2a1e643a52b4725f4303fcb\"\u003ed7083c2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn a tuple, not generator, from Table.bind() (\u003ca href=\"https://github.com/ibis-project/ibis/commit/cfc8b0837e313bd76cf65561472a605ea6e35bef\"\u003ecfc8b08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqlite:\u003c/strong\u003e create a single table from Python object (\u003ca href=\"https://github.com/ibis-project/ibis/commit/4e6ddcfa2d1dc763d431925b059c458cd0ce884a\"\u003e4e6ddcf\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqlite:\u003c/strong\u003e precision loss in divide (\u003ca href=\"https://github.com/ibis-project/ibis/commit/c77e1bd041df7e091c0c6c1aa5d2e87c3a99dddc\"\u003ec77e1bd\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/ibis-project/ibis/blob/main/docs/release_notes_generated.qmd\"\u003eibis-framework's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ibis-project/ibis/compare/11.0.0...12.0.0\"\u003e12.0.0\u003c/a\u003e (2026-02-07)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epyspark:\u003c/strong\u003e PySpark \u0026lt;3.5 is no longer supported\u003c/li\u003e\n\u003cli\u003eofficially drop support for 3.9, bump all dependencies\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e infer decimal precision and scale\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e implement \u003ccode\u003eupsert()\u003c/code\u003e using \u003ccode\u003eMERGE INTO\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11624\"\u003e#11624\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/9126733b38e1c92f6e787f92dc9954e88ab6400d\"\u003e9126733\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/5391\"\u003e#5391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e support Table.cast(my_col=int) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/9e209f37b6228472071ef8b9168ed56ec9c0a727\"\u003e9e209f3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatabricks:\u003c/strong\u003e support json literals (\u003ca href=\"https://github.com/ibis-project/ibis/commit/f46a58f9eb5128e64981b756b0a866e291663997\"\u003ef46a58f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatafusion:\u003c/strong\u003e add compilation rule for Strftime (\u003ca href=\"https://github.com/ibis-project/ibis/commit/6fa8411e43a68f0f0ac38f493242bc1ff28a5253\"\u003e6fa8411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e enable compatibility with pandas 3.0.0 (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11873\"\u003e#11873\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/34a36be80e589e449501942bda8ec4125e89beb0\"\u003e34a36be\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ematerialize:\u003c/strong\u003e add new backend for Materialize streaming database (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11893\"\u003e#11893\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/35fcce08369ed7650b00fed7064535eeceeaba41\"\u003e35fcce0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eofficially drop support for 3.9, bump all dependencies (\u003ca href=\"https://github.com/ibis-project/ibis/commit/aa16d0885ff62ac92ec1027a245158896f74cc0d\"\u003eaa16d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epyspark:\u003c/strong\u003e support pyspark 4.0 (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e9c35e6a3574855daf4e02f4217727df0d54872d\"\u003ee9c35e6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esinglestoredb:\u003c/strong\u003e add SingleStoreDB backend (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11595\"\u003e#11595\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a83cfef0f6b84f3dbb83ca55682100f32488d7c2\"\u003ea83cfef\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport JSON literal values (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11728\"\u003e#11728\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/38b19c765f02b18684ec6e7b4e0815d117fc8b60\"\u003e38b19c7\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11727\"\u003e#11727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e improve typing of ibis.common.collections (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e3aba92c6126e556e179f2cbff3dc837802de790\"\u003ee3aba92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make dtype() and schema() more typesafe (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11856\"\u003e#11856\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/116886f807fbf62ce0265ef152f48540c284b8c5\"\u003e116886f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make more arguments positional-only (\u003ca href=\"https://github.com/ibis-project/ibis/commit/610c4504b438b5ac302b384073134ff5c8458908\"\u003e610c450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etyping:\u003c/strong\u003e make types more precise for many common Values (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11771\"\u003e#11771\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/2eb772a7a8a5632edb347ecd49af5773c268d188\"\u003e2eb772a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd order_by to first and last (\u003ca href=\"https://github.com/ibis-project/ibis/commit/7ead7876435c55a10dc5a6457a49b9e19b7a654e\"\u003e7ead787\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11656\"\u003e#11656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd upper _method_overrides in decompile (\u003ca href=\"https://github.com/ibis-project/ibis/commit/e7956f4cbb5daef11bbc01177ccc56f5ae3bf3fa\"\u003ee7956f4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11717\"\u003e#11717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e relax decimal upper bounds (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d05751b445d65ae0a1c786c756ea1235d51a7f18\"\u003ed05751b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebiquery:\u003c/strong\u003e use qualified table name for upserts (\u003ca href=\"https://github.com/ibis-project/ibis/commit/120b2d874d7b191886dcdad69be76c26bbe062ce\"\u003e120b2d8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecitation:\u003c/strong\u003e fix CITATION.cff [skip ci] (\u003ca href=\"https://github.com/ibis-project/ibis/commit/305526a8d6df097765b2affce60b1731f2608a1b\"\u003e305526a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e infer decimal precision and scale (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ed346e6d33157d9cf6e01f91bc67ac8866e09eb3\"\u003eed346e6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edatatypes:\u003c/strong\u003e make decimal casts more permissive (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba087d2d3a6c57451bdcf81aaa4fa5cf32350831\"\u003eba087d2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e pin dep on sqlglot to \u0026lt;28 (\u003ca href=\"https://github.com/ibis-project/ibis/commit/3e9156ef0b0b10ce6f3d95db97401175a7d9df56\"\u003e3e9156e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e sqlglot 28.0 incompatibilities (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11839\"\u003e#11839\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ab21efd939b7cd6b7cf8f03ed7a22ec96d511be0\"\u003eab21efd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edocs:\u003c/strong\u003e typo in Ibis description in why.qmd (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11816\"\u003e#11816\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/402c37d9920fa09bcc1aa5f9202367b01cc98ef1\"\u003e402c37d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003educkdb:\u003c/strong\u003e create a single table from Python data object (\u003ca href=\"https://github.com/ibis-project/ibis/commit/7f82e5e4aed0a492538016bfa152132ad0bc928f\"\u003e7f82e5e\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11709\"\u003e#11709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eexasol:\u003c/strong\u003e update Exasol Docker image tag to 2025.1.8 (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11806\"\u003e#11806\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/2414952998f5f078b931e467e5b7f495062308ed\"\u003e2414952\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11703\"\u003e#11703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eflink:\u003c/strong\u003e don't pass unsupported \u0026quot;position\u0026quot; flag to regexp_replace (\u003ca href=\"https://github.com/ibis-project/ibis/commit/34f39ccb32be76b5e61f87938ed4cfdeb560ce7c\"\u003e34f39cc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emssql:\u003c/strong\u003e use \u003ccode\u003esge.National\u003c/code\u003e to support unicode in \u003ccode\u003einformation_schema\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11877\"\u003e#11877\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a254ccb02f58d4f5b5f582249f5cfa03d141d8eb\"\u003ea254ccb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emysql:\u003c/strong\u003e use getuser() and empty password string by default (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11904\"\u003e#11904\u003c/a\u003e) (\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba0218f1bba2cbb9f2bb3a7aea39178365c0f663\"\u003eba0218f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epolars:\u003c/strong\u003e handle cross joins without passing join keys (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d3c3bad21a2b9703047dbf4977d3d250759d189e\"\u003ed3c3bad\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11764\"\u003e#11764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epolars:\u003c/strong\u003e support asof_join with no predicates (\u003ca href=\"https://github.com/ibis-project/ibis/commit/3fc9b64c2a464f66d5ed412e7cab7a7bbb58b811\"\u003e3fc9b64\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgres:\u003c/strong\u003e fix postgres asof joins to consider predicates correctly (\u003ca href=\"https://github.com/ibis-project/ibis/commit/064bd2d024d1165a92615613d977e85d4dad6331\"\u003e064bd2d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove bogus leading ' from Struct repr (\u003ca href=\"https://github.com/ibis-project/ibis/commit/d7083c2c96e12bb7b2a1e643a52b4725f4303fcb\"\u003ed7083c2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn a tuple, not generator, from Table.bind() (\u003ca href=\"https://github.com/ibis-project/ibis/commit/cfc8b0837e313bd76cf65561472a605ea6e35bef\"\u003ecfc8b08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqlite:\u003c/strong\u003e create a single table from Python object (\u003ca href=\"https://github.com/ibis-project/ibis/commit/4e6ddcfa2d1dc763d431925b059c458cd0ce884a\"\u003e4e6ddcf\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esqlite:\u003c/strong\u003e precision loss in divide (\u003ca href=\"https://github.com/ibis-project/ibis/commit/c77e1bd041df7e091c0c6c1aa5d2e87c3a99dddc\"\u003ec77e1bd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport \u003ccode\u003eBackend == \u0026quot;some non backend object\u0026quot;\u003c/code\u003e (\u003ca href=\"https://github.com/ibis-project/ibis/commit/a5e7c2298d1582261c0963040a687c3987507c62\"\u003ea5e7c22\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/ibis-project/ibis/commit/01e429b210f19f87e0284bd18fb072df6d3baa59\"\u003e\u003ccode\u003e01e429b\u003c/code\u003e\u003c/a\u003e chore(release): 12.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/537b346aecbaaad232d08ae9a12d38d211ae0926\"\u003e\u003ccode\u003e537b346\u003c/code\u003e\u003c/a\u003e chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/76c3b63b33f9e6ee2993e2a2875f22ed3e405349\"\u003e\u003ccode\u003e76c3b63\u003c/code\u003e\u003c/a\u003e chore(deps): update astral-sh/setup-uv action to v7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/da202da06c17a525caf767f0f995f65108a8f3f3\"\u003e\u003ccode\u003eda202da\u003c/code\u003e\u003c/a\u003e chore(deps): update apache/druid docker tag to v36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/ba0218f1bba2cbb9f2bb3a7aea39178365c0f663\"\u003e\u003ccode\u003eba0218f\u003c/code\u003e\u003c/a\u003e fix(mysql): use getuser() and empty password string by default (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11904\"\u003e#11904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/a4ef82f82ef103fd233560adce0fbe220481d7ef\"\u003e\u003ccode\u003ea4ef82f\u003c/code\u003e\u003c/a\u003e chore(deps): update aws-actions/configure-aws-credentials action to v6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/601cd8f3dc18c7f8a91aa91319b68aaa181a8a16\"\u003e\u003ccode\u003e601cd8f\u003c/code\u003e\u003c/a\u003e chore(deps): update ghcr.io/singlestore-labs/singlestoredb-dev docker tag to ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/14c912425af4b318733fdc1460913ccfa4613414\"\u003e\u003ccode\u003e14c9124\u003c/code\u003e\u003c/a\u003e chore(deps): update materialize/materialized docker tag to v26.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/b746edfb660c2b8155debc135884376742cc6929\"\u003e\u003ccode\u003eb746edf\u003c/code\u003e\u003c/a\u003e chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.9.30\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ibis-project/ibis/commit/7da40126f178a29d6211f8cfe29421585cff59fc\"\u003e\u003ccode\u003e7da4012\u003c/code\u003e\u003c/a\u003e chore(deps): upgrade ruff, and fix lint violations (\u003ca href=\"https://redirect.github.com/ibis-project/ibis/issues/11899\"\u003e#11899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ibis-project/ibis/compare/10.8.0...12.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.38.0 to 2.49.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.49.0.dev0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.48.0...v2.49.0-dev0\"\u003e2.49.0-dev0\u003c/a\u003e (2026-01-26)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove deprecated rsa dependency (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e98cf69284d3620619a70b54fb0b9533caf11878\"\u003ee98cf69284d3620619a70b54fb0b9533caf11878\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.48.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0\"\u003e2.48.0\u003c/a\u003e (2026-01-21)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ehonor \u003ccode\u003eNO_GCE_CHECK\u003c/code\u003e environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827\"\u003e383c9827\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b\"\u003e454b441b\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2\"\u003e52558ae2\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport the mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1\"\u003e8dcf91a1\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eresolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064\"\u003e25c1b064\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003euser_verification=preferred\u003c/code\u003e for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a240\"\u003e3f88a240\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eremoves \u003ccode\u003econtent-header\u003c/code\u003e from AWS IMDS get request (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e\"\u003e97bfea9e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edetect correct auth when ADC env var is set but empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e10\"\u003ebfc07e10\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20c\"\u003ee431f20c\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.48.0rc0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0rc0\"\u003e2.48.0rc0\u003c/a\u003e (2026-01-20)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ehonor NO_GCE_CHECK environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827536d9376e8248370ce4c2b83e468d027\"\u003e383c98\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\"\u003e454b44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1b05c85fbbd0bcee78d66e498099102ab\"\u003e8dcf91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2881b1e6555f6f5c0d76365c15807ead9\"\u003e52558a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse user_verification=preferred for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a24089c4ee6822d510de0db210b54260d873\"\u003e3f88a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20cf73ccac71926a23ec454468cea92e053\"\u003ee431f2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edetect correct auth when ADC env var is set by empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\"\u003ebfc07e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremoved content-header from AWS IMDS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\"\u003e97bfea\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://pypi.org/project/google-auth/#history\"\u003ePyPI History\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0\"\u003e2.48.0\u003c/a\u003e (2026-01-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2881b1e6555f6f5c0d76365c15807ead9\"\u003e52558ae2881b1e6555f6f5c0d76365c15807ead9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport the mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1b05c85fbbd0bcee78d66e498099102ab\"\u003e8dcf91a1b05c85fbbd0bcee78d66e498099102ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\"\u003e454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ehonor \u003ccode\u003eNO_GCE_CHECK\u003c/code\u003e environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827536d9376e8248370ce4c2b83e468d027\"\u003e383c9827536d9376e8248370ce4c2b83e468d027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eresolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064545702cbef087cfcd15fbbb6ef1af74f\"\u003e25c1b064545702cbef087cfcd15fbbb6ef1af74f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremoves \u003ccode\u003econtent-header\u003c/code\u003e from AWS IMDS get request (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\"\u003e97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edetect correct auth when ADC env var is set but empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\"\u003ebfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20cf73ccac71926a23ec454468cea92e053\"\u003ee431f20cf73ccac71926a23ec454468cea92e053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003euser_verification=preferred\u003c/code\u003e for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a24089c4ee6822d510de0db210b54260d873\"\u003e3f88a24089c4ee6822d510de0db210b54260d873\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1590\"\u003e#1590\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\"\u003e5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\"\u003e60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.45.0...v2.46.0\"\u003e2.46.0\u003c/a\u003e (2026-01-05)\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate urllib3 docstrings for v2 compatibility (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1903\"\u003e#1903\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f1aeea2d1014ea1d244a4c3470e52d74d55404b\"\u003e3f1aeea2d1014ea1d244a4c3470e52d74d55404b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecognize workload certificate config in has_default_client_cert_source for mTLS for Agentic Identities (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1907\"\u003e#1907\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d573123e358c347ffa067637f992af61b4\"\u003e0b9107d573123e358c347ffa067637f992af61b4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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/googleapis/google-auth-library-python/commits\"\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.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/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.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 `orjson` from 3.11.7 to 3.11.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ijl/orjson/releases\"\u003eorjson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.8\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild and compatibility improvements.\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/ijl/orjson/blob/master/CHANGELOG.md\"\u003eorjson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.8 - 2026-03-31\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild and compatibility improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/5cbb3d0398a2f42de51210270286fecd798c5d78\"\u003e\u003ccode\u003e5cbb3d0\u003c/code\u003e\u003c/a\u003e 3.11.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/4195d7f263e33076295b75efdcbaf6a55af8674e\"\u003e\u003ccode\u003e4195d7f\u003c/code\u003e\u003c/a\u003e writer::half\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/d00641b69410728a735f0855eb1c2843b0a5819b\"\u003e\u003ccode\u003ed00641b\u003c/code\u003e\u003c/a\u003e writer::uuid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/c84d9b4ba4853781af943fa5c493e261e2f82b84\"\u003e\u003ccode\u003ec84d9b4\u003c/code\u003e\u003c/a\u003e build and compatibility misc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/4547234b681fac5e0e0734cf44c21e75f9654e43\"\u003e\u003ccode\u003e4547234\u003c/code\u003e\u003c/a\u003e ffi::numpy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/0d4a5ad1f17a72528ba027554466fdec6580cdeb\"\u003e\u003ccode\u003e0d4a5ad\u003c/code\u003e\u003c/a\u003e datetime PyRef idiom\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/e93a13d372ec956d027e71d023eb534b8445ac85\"\u003e\u003ccode\u003ee93a13d\u003c/code\u003e\u003c/a\u003e Cross-compile avoids maturin v1.12 build-details.json error\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ijl/orjson/compare/3.11.7...3.11.8\"\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.o...\n\n_Description has been truncated_","html_url":"https://github.com/Canner/wren-engine/pull/1590","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Canner%2Fwren-engine/issues/1590","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1590/packages"}},{"old_version":"0.18.1","new_version":"0.19.0","update_type":"minor","path":null,"pr_created_at":"2026-04-20T21:54:15.000Z","version_change":"0.18.1 → 0.19.0","issue":{"uuid":"4298926851","node_id":"PR_kwDOADlbHs7UHM37","number":2877,"state":"closed","title":"Bump the python-requirements group across 1 directory with 24 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-01T07:56:38.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-20T21:54:15.000Z","updated_at":"2026-05-01T07:56:40.000Z","time_to_close":900143,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-requirements","update_count":24,"packages":[{"name":"werkzeug","old_version":"3.1.6","new_version":"3.1.8","repository_url":"https://github.com/pallets/werkzeug"},{"name":"sqlalchemy","old_version":"2.0.45","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"geoalchemy2","old_version":"0.18.1","new_version":"0.19.0","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"pymongo","old_version":"4.15.5","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"mongoengine","old_version":"0.29.1","new_version":"0.29.3","repository_url":"https://github.com/MongoEngine/mongoengine"},{"name":"peewee","old_version":"3.18.3","new_version":"4.0.4","repository_url":"https://github.com/coleifer/peewee"},{"name":"wtf-peewee","old_version":"3.0.6","new_version":"3.1.0","repository_url":"https://github.com/coleifer/wtf-peewee"},{"name":"boto3","old_version":"1.42.14","new_version":"1.42.92","repository_url":"https://github.com/boto/boto3"},{"name":"azure-storage-blob","old_version":"12.27.1","new_version":"12.28.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"redis","old_version":"7.1.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"tox","old_version":"4.29.0","new_version":"4.53.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"tox-uv","old_version":"1.28.0","new_version":"1.35.1","repository_url":"https://github.com/tox-dev/tox-uv"},{"name":"pre-commit-uv","old_version":"4.2.0","new_version":"4.2.1","repository_url":"https://github.com/tox-dev/pre-commit-uv"},{"name":"pallets-sphinx-themes","old_version":"2.3.0","new_version":"2.5.0","repository_url":"https://github.com/pallets/pallets-sphinx-themes"},{"name":"pylint","old_version":"4.0.4","new_version":"4.0.5","repository_url":"https://github.com/pylint-dev/pylint"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"moto","old_version":"5.1.18","new_version":"5.1.22","repository_url":"https://github.com/getmoto/moto"},{"name":"mypy","old_version":"1.19.1","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"pyright","old_version":"1.1.407","new_version":"1.1.408","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"types-boto3","old_version":"1.42.14","new_version":"1.42.92","repository_url":"https://github.com/youtype/mypy_boto3_builder"},{"name":"types-peewee","old_version":"3.18.3.20251105","new_version":"4.0.0.20260408","repository_url":"https://github.com/python/typeshed"},{"name":"types-wtforms","old_version":"3.2.1.20250809","new_version":"3.2.1.20260408","repository_url":"https://github.com/python/typeshed"},{"name":"types-shapely","old_version":"2.1.0.20250917","new_version":"2.1.0.20260408","repository_url":"https://github.com/python/typeshed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-requirements group with 23 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.6` | `3.1.8` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.45` | `2.0.49` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.18.1` | `0.19.0` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.15.5` | `4.17.0` |\n| [mongoengine](https://github.com/MongoEngine/mongoengine) | `0.29.1` | `0.29.3` |\n| [peewee](https://github.com/coleifer/peewee) | `3.18.3` | `4.0.4` |\n| [wtf-peewee](https://github.com/coleifer/wtf-peewee) | `3.0.6` | `3.1.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.14` | `1.42.92` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.27.1` | `12.28.0` |\n| [redis](https://github.com/redis/redis-py) | `7.1.0` | `7.4.0` |\n| [tox](https://github.com/tox-dev/tox) | `4.29.0` | `4.53.0` |\n| [tox-uv](https://github.com/tox-dev/tox-uv) | `1.28.0` | `1.35.1` |\n| [pre-commit-uv](https://github.com/tox-dev/pre-commit-uv) | `4.2.0` | `4.2.1` |\n| [pallets-sphinx-themes](https://github.com/pallets/pallets-sphinx-themes) | `2.3.0` | `2.5.0` |\n| [pylint](https://github.com/pylint-dev/pylint) | `4.0.4` | `4.0.5` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [moto](https://github.com/getmoto/moto) | `5.1.18` | `5.1.22` |\n| [mypy](https://github.com/python/mypy) | `1.19.1` | `1.20.1` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.407` | `1.1.408` |\n| [types-boto3](https://github.com/youtype/mypy_boto3_builder) | `1.42.14` | `1.42.92` |\n| [types-peewee](https://github.com/python/typeshed) | `3.18.3.20251105` | `4.0.0.20260408` |\n| [types-wtforms](https://github.com/python/typeshed) | `3.2.1.20250809` | `3.2.1.20260408` |\n| [types-shapely](https://github.com/python/typeshed) | `2.1.0.20250917` | `2.1.0.20260408` |\n\n\nUpdates `werkzeug` from 3.1.6 to 3.1.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/werkzeug/releases\"\u003ewerkzeug's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.8\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.8 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/Werkzeug/3.1.8/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.8/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-8\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-8\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/werkzeug/milestone/45?closed=1\"\u003ehttps://github.com/pallets/werkzeug/milestone/45?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e and \u003ccode\u003eget_host\u003c/code\u003e return the empty string if the header is missing or has invalid characters. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3142\"\u003e#3142\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.7\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.7 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/Werkzeug/3.1.7/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.7/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-7\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-7\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/werkzeug/milestone/44?closed=1\"\u003ehttps://github.com/pallets/werkzeug/milestone/44?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eparse_list_header\u003c/code\u003e preserves partially quoted items, discards empty items, and returns empty for unclosed quoted values. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3128\"\u003e#3128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWWWAuthenticate.to_header\u003c/code\u003e does not produce a trailing space when there are no parameters. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3127\"\u003e#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTransfer-Encoding\u003c/code\u003e is parsed as a set. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3134\"\u003e#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e, \u003ccode\u003eget_host\u003c/code\u003e, and \u003ccode\u003ehost_is_trusted\u003c/code\u003e validate the characters of the value. An empty value is no longer allowed. A Unix socket server address is ignored. The \u003ccode\u003etrusted_list\u003c/code\u003e argument to \u003ccode\u003ehost_is_trusted\u003c/code\u003e is optional. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3113\"\u003e#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix multipart form parser handling of newline at boundary. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3088\"\u003e#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.make_conditional\u003c/code\u003e sets the \u003ccode\u003eAccept-Ranges\u003c/code\u003e header even if it is not a satisfiable range request. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3108\"\u003e#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emerge_slashes\u003c/code\u003e merges any number of consecutive slashes. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3121\"\u003e#3121\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/werkzeug/blob/main/CHANGES.rst\"\u003ewerkzeug's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.8\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e and \u003ccode\u003eget_host\u003c/code\u003e return the empty string if the header is\nmissing or has invalid characters. :issue:\u003ccode\u003e3142\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.1.7\u003c/h2\u003e\n\u003cp\u003eReleased 2026-03-23\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eparse_list_header\u003c/code\u003e preserves partially quoted items, discards empty\nitems, and returns empty for unclosed quoted values. :pr:\u003ccode\u003e3128\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWWWAuthenticate.to_header\u003c/code\u003e does not produce a trailing space when there\nare no parameters. :issue:\u003ccode\u003e3127\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTransfer-Encoding\u003c/code\u003e is parsed as a set. :pr:\u003ccode\u003e3134\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e, \u003ccode\u003eget_host\u003c/code\u003e, and \u003ccode\u003ehost_is_trusted\u003c/code\u003e validate the\ncharacters of the value. An empty value is no longer allowed. A Unix socket\nserver address is ignored. The \u003ccode\u003etrusted_list\u003c/code\u003e argument to\n\u003ccode\u003ehost_is_trusted\u003c/code\u003e is optional. :pr:\u003ccode\u003e3113\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix multipart form parser handling of newline at boundary. :issue:\u003ccode\u003e3088\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.make_conditional\u003c/code\u003e sets the \u003ccode\u003eAccept-Ranges\u003c/code\u003e header even if it\nis not a satisfiable range request. :issue:\u003ccode\u003e3108\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emerge_slashes\u003c/code\u003e merges any number of consecutive slashes. :issue:\u003ccode\u003e3121\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/werkzeug/commit/c1a26b45fb06d5e086b4d6be820c3302f588d815\"\u003e\u003ccode\u003ec1a26b4\u003c/code\u003e\u003c/a\u003e release version 3.1.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/7926f0bc3a0da01827e59c81d6da55f8f75a2eed\"\u003e\u003ccode\u003e7926f0b\u003c/code\u003e\u003c/a\u003e relax get_host strictness (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3148\"\u003e#3148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/deab88f61fa57d37d19f83ea438d4bdebb5a743c\"\u003e\u003ccode\u003edeab88f\u003c/code\u003e\u003c/a\u003e relax get_host strictness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/65eb6398231fe94f32fbc765a74980ca61fe5d2b\"\u003e\u003ccode\u003e65eb639\u003c/code\u003e\u003c/a\u003e start version 3.1.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/7720b76b37b17a33e5414bddb992c92ba854f0e3\"\u003e\u003ccode\u003e7720b76\u003c/code\u003e\u003c/a\u003e release version 3.1.7 (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3135\"\u003e#3135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/005d93bf3437226ab185d2edc6132918d3e45763\"\u003e\u003ccode\u003e005d93b\u003c/code\u003e\u003c/a\u003e release version 3.1.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/c328342ef9f7a6476b9e41565ad0a70ff10cfde6\"\u003e\u003ccode\u003ec328342\u003c/code\u003e\u003c/a\u003e merge any number of slashes (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/23142a3cb5d1b5ba8e9914980934477e0abdc30e\"\u003e\u003ccode\u003e23142a3\u003c/code\u003e\u003c/a\u003e merge any number of slashes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/b913d68db5898c8f3def3c09a653aaf95abe38e5\"\u003e\u003ccode\u003eb913d68\u003c/code\u003e\u003c/a\u003e always set accept-ranges header\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f282943ddc687e613b7ee79b4677e4961c32ae15\"\u003e\u003ccode\u003ef282943\u003c/code\u003e\u003c/a\u003e Correct 1049dd6b2a363e1ef302b4161c340fb8582f627a\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/werkzeug/compare/3.1.6...3.1.8\"\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.45 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 `geoalchemy2` from 0.18.1 to 0.19.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.19.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Fix triggers after default branch was renamed main by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/593\"\u003egeoalchemy/geoalchemy2#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept leading '+' in WKT coords and fix Comparator \u003ccode\u003e\u0026gt;\u0026gt;\u003c/code\u003e docstring by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/594\"\u003egeoalchemy/geoalchemy2#594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/595\"\u003egeoalchemy/geoalchemy2#595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Fix Too many connections errors in MySQL and MariaDB by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/597\"\u003egeoalchemy/geoalchemy2#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Ensure _GISType.column_expression is compatible with TypeDecorator by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/598\"\u003egeoalchemy/geoalchemy2#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.19.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/599\"\u003egeoalchemy/geoalchemy2#599\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.4...0.19.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.4...0.19.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: fix shapely import by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/588\"\u003egeoalchemy/geoalchemy2#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/589\"\u003egeoalchemy/geoalchemy2#589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Make Coveralls optional since the service is down at the moment by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/590\"\u003egeoalchemy/geoalchemy2#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: try the official Coveralls action by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/592\"\u003egeoalchemy/geoalchemy2#592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.4 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/591\"\u003egeoalchemy/geoalchemy2#591\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/584\"\u003egeoalchemy/geoalchemy2#584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.3 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/587\"\u003egeoalchemy/geoalchemy2#587\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/575\"\u003egeoalchemy/geoalchemy2#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/576\"\u003egeoalchemy/geoalchemy2#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/577\"\u003egeoalchemy/geoalchemy2#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/578\"\u003egeoalchemy/geoalchemy2#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/580\"\u003egeoalchemy/geoalchemy2#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Fix package discovery by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/581\"\u003egeoalchemy/geoalchemy2#581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.2 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/582\"\u003egeoalchemy/geoalchemy2#582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.2\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.19.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Ensure _GISType.column_expression is compatible with TypeDecorator - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/598\"\u003e#598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Improve WKT parsing and fix comparator doc typo - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/594\"\u003e#594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Fix Too many connections errors in MySQL and MariaDB - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Fix triggers after default branch was renamed main - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/593\"\u003e#593\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Move to the official Coveralls action - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Fix shapely import - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Fix package discovery - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/576\"\u003e#576\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/geoalchemy/geoalchemy2/commit/792cc5efe8d335b7009ea44e598c138bdd7ab5b2\"\u003e\u003ccode\u003e792cc5e\u003c/code\u003e\u003c/a\u003e Release: 0.19.0 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/599\"\u003e#599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/9d17680de522ce4c8734b2c547aa42ccf51eaf2f\"\u003e\u003ccode\u003e9d17680\u003c/code\u003e\u003c/a\u003e Fix: Ensure _GISType.column_expression is compatible with TypeDecorator (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/598\"\u003e#598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/3d4d8ec6b8b84049c9d93c49593a8726c79f3596\"\u003e\u003ccode\u003e3d4d8ec\u003c/code\u003e\u003c/a\u003e CI: Fix Too many connections errors in MySQL and MariaDB (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/b5d6336964efa9d7f85badda7f847ad09b9c5bb0\"\u003e\u003ccode\u003eb5d6336\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/595\"\u003e#595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/187f0923047ffa64bb84e0817310f40e42af8959\"\u003e\u003ccode\u003e187f092\u003c/code\u003e\u003c/a\u003e Improve WKT parsing and fix comparator doc typo (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/594\"\u003e#594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/dce1bb13b0b17442fb4a88b813eec5618d4120a7\"\u003e\u003ccode\u003edce1bb1\u003c/code\u003e\u003c/a\u003e CI: Fix triggers after default branch was renamed main (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/593\"\u003e#593\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/beb96c39754704a2ec712de3857d72b8a8ecc4d3\"\u003e\u003ccode\u003ebeb96c3\u003c/code\u003e\u003c/a\u003e Release: 0.18.4 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/6266c25a12b3d406c403db2112e7c55bf3739d97\"\u003e\u003ccode\u003e6266c25\u003c/code\u003e\u003c/a\u003e CI: Move to the official Coveralls action (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f402f6347454374b7719e612a5ebe5a1a766c8fa\"\u003e\u003ccode\u003ef402f63\u003c/code\u003e\u003c/a\u003e CI: Make Coveralls optional since the service is down at the moment (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/590\"\u003e#590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/36ebd0f650d1c60b2e24c896d4662818f0162414\"\u003e\u003ccode\u003e36ebd0f\u003c/code\u003e\u003c/a\u003e Fix: fix setuptools deprecation warning (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.19.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymongo` from 4.15.5 to 4.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.17.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-17-released/338426\"\u003eCommunity notes\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(ci): replace shell=True and awk pipes with native Python by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2671\"\u003emongodb/mongo-python-driver#2671\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5697 - Migrate 8.0+ tests to Windows 2022 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2681\"\u003emongodb/mongo-python-driver#2681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 01-19-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2680\"\u003emongodb/mongo-python-driver#2680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pyright from 1.1.407 to 1.1.408 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2675\"\u003emongodb/mongo-python-driver#2675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5692 - [Infrastructure] Improve dependabot version updates by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2682\"\u003emongodb/mongo-python-driver#2682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5605 - Drop usage of Ubuntu 20 by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2683\"\u003emongodb/mongo-python-driver#2683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5699 \u0026amp; PYTHON-5698 [Spec Resync] 01-26-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2685\"\u003emongodb/mongo-python-driver#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5703 Use Ubuntu24 for AWS Auth tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2686\"\u003emongodb/mongo-python-driver#2686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5704 Skip free-threading for enterprise auth builds by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2687\"\u003emongodb/mongo-python-driver#2687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.1.6 to 7.2.0 in the actions group across 1 directory by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2684\"\u003emongodb/mongo-python-driver#2684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump peter-evans/create-pull-request from 8.0.0 to 8.1.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/mongodb/mongo-python-driver/pull/2692\"\u003emongodb/mongo-python-driver#2692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-1357 - Refactor Cursor and CommandCursor by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2691\"\u003emongodb/mongo-python-driver#2691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 02-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2694\"\u003emongodb/mongo-python-driver#2694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Add codecov integration by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2690\"\u003emongodb/mongo-python-driver#2690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.2.0 to 7.2.1 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/mongodb/mongo-python-driver/pull/2700\"\u003emongodb/mongo-python-driver#2700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-XXXX Fixed typo in Running Tests Locally section. by \u003ca href=\"https://github.com/caseyclements\"\u003e\u003ccode\u003e@​caseyclements\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2698\"\u003emongodb/mongo-python-driver#2698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2701\"\u003emongodb/mongo-python-driver#2701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5467 Fix codecov upload on Evergreen by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2702\"\u003emongodb/mongo-python-driver#2702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5715 Add appName to OIDC test failpoints by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2697\"\u003emongodb/mongo-python-driver#2697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5705 Improve fallback for PyOpenSSL windows system certs loading by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2688\"\u003emongodb/mongo-python-driver#2688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-3898 Add coverage to all variants by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2705\"\u003emongodb/mongo-python-driver#2705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5729 Pin setuptools when using older gevent by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2708\"\u003emongodb/mongo-python-driver#2708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump 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/mongodb/mongo-python-driver/pull/2711\"\u003emongodb/mongo-python-driver#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5708 Temporarily skip some BSON encryption tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2709\"\u003emongodb/mongo-python-driver#2709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5732 Use mongodb-runner in Evergreen Tests by \u003ca href=\"https://github.com/blink1073\"\u003e\u003ccode\u003e@​blink1073\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2703\"\u003emongodb/mongo-python-driver#2703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5731 - Server selection deprioritization only for overload errors on replica sets by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2710\"\u003emongodb/mongo-python-driver#2710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5737 - BSON encoding/decoding performance improvements by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2715\"\u003emongodb/mongo-python-driver#2715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-02-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2716\"\u003emongodb/mongo-python-driver#2716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 4542 - Improved sessions API by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2712\"\u003emongodb/mongo-python-driver#2712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5742 - Add Copilot instructions by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2717\"\u003emongodb/mongo-python-driver#2717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5747 Add jira link to spec resync PR by \u003ca href=\"https://github.com/sleepyStick\"\u003e\u003ccode\u003e@​sleepyStick\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2723\"\u003emongodb/mongo-python-driver#2723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5114 Test suite reduce killAllSessions calls by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2721\"\u003emongodb/mongo-python-driver#2721\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5748 Remove unused SpecRunner class by \u003ca href=\"https://github.com/ShaneHarvey\"\u003e\u003ccode\u003e@​ShaneHarvey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2725\"\u003emongodb/mongo-python-driver#2725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5754 Fix USE_ACTIVE_VENV support by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2728\"\u003emongodb/mongo-python-driver#2728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5753 Add just recipes for running coverage tests locally by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2727\"\u003emongodb/mongo-python-driver#2727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5758 Remove unused validation functions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2733\"\u003emongodb/mongo-python-driver#2733\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5757 Deprecate Python 2 methods in SON by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2732\"\u003emongodb/mongo-python-driver#2732\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5766 Add codecov badge to readme by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2737\"\u003emongodb/mongo-python-driver#2737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the actions group across 1 directory with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2736\"\u003emongodb/mongo-python-driver#2736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Spec Resync] 03-30-2026 by \u003ca href=\"https://github.com/mongodb-drivers-pr-bot\"\u003e\u003ccode\u003e@​mongodb-drivers-pr-bot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2741\"\u003emongodb/mongo-python-driver#2741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 7.3.0 to 7.6.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/mongodb/mongo-python-driver/pull/2740\"\u003emongodb/mongo-python-driver#2740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5401: Add AI Generated Contributions Policy by \u003ca href=\"https://github.com/Jibola\"\u003e\u003ccode\u003e@​Jibola\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2696\"\u003emongodb/mongo-python-driver#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5768 Add AGENTS.md w/copilot instructions by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2744\"\u003emongodb/mongo-python-driver#2744\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5791 - test_list_database_names should not check ordering by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2751\"\u003emongodb/mongo-python-driver#2751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5668 - Merge backpressure branch into mainline by \u003ca href=\"https://github.com/NoahStapp\"\u003e\u003ccode\u003e@​NoahStapp\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2729\"\u003emongodb/mongo-python-driver#2729\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md by \u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/pull/2756\"\u003emongodb/mongo-python-driver#2756\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/mongodb/mongo-python-driver/blob/master/doc/changelog.rst\"\u003epymongo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChanges in Version 4.17.0 (2026/04/20)\u003c/h2\u003e\n\u003cp\u003ePyMongo 4.17 brings a number of changes including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ehas_key\u003c/code\u003e, \u003ccode\u003eiterkeys\u003c/code\u003e and \u003ccode\u003eitervalues\u003c/code\u003e in :class:\u003ccode\u003ebson.son.SON\u003c/code\u003e have\nbeen deprecated and will be removed in PyMongo 5.0. These methods were\ndeprecated in favor of the standard dictionary containment operator \u003ccode\u003ein\u003c/code\u003e\nand the \u003ccode\u003ekeys()\u003c/code\u003e and \u003ccode\u003evalues()\u003c/code\u003e methods, respectively.\u003c/li\u003e\n\u003cli\u003eAdded the :meth:\u003ccode\u003e~pymongo.asynchronous.client_session.AsyncClientSession.bind\u003c/code\u003e and :meth:\u003ccode\u003e~pymongo.client_session.ClientSession.bind\u003c/code\u003e methods\nthat allow users to bind a session to all database operations within the scope of a context manager instead of having to explicitly pass the session to each individual operation.\nSee the \u003ccode\u003eTransactions docs \u0026lt;https://www.mongodb.com/docs/languages/python/pymongo-driver/current/crud/transactions/#methods\u0026gt;\u003c/code\u003e_ for examples and more information.\u003c/li\u003e\n\u003cli\u003eAdded support for MongoDB's Intelligent Workload Management (IWM) and ingress connection rate limiting features.\nThe driver now gracefully handles write-blocking scenarios and optimizes connection establishment during high-load conditions to maintain application availability.\nSee the \u003ccode\u003eIWM \u0026lt;https://www.mongodb.com/docs/atlas/intelligent-workload-management\u0026gt;\u003c/code\u003e_ or \u003ccode\u003eOverload Errors \u0026lt;https://www.mongodb.com/docs/atlas/overload-errors/?interface=driver\u0026amp;language=python\u0026gt;\u003c/code\u003e_ docs for more information.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges in Version 4.16.0 (2026/01/07)\u003c/h2\u003e\n\u003cp\u003ePyMongo 4.16 brings a number of changes including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved invalid documents from :class:\u003ccode\u003ebson.errors.InvalidDocument\u003c/code\u003e error messages as\ndoing so may leak sensitive user data.\nInstead, invalid documents are stored in :attr:\u003ccode\u003ebson.errors.InvalidDocument.document\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003ePyMongo now requires \u003ccode\u003ednspython\u0026gt;=2.6.1\u003c/code\u003e, since \u003ccode\u003ednspython\u003c/code\u003e 1.0 is no longer maintained.\nThe minimum version is \u003ccode\u003e2.6.1\u003c/code\u003e to account for \u003ccode\u003eCVE-2023-29483 \u0026lt;https://www.cve.org/CVERecord?id=CVE-2023-29483\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eRemoved support for Eventlet.\nEventlet is actively being sunset by its maintainers and has compatibility issues with PyMongo's dnspython dependency.\u003c/li\u003e\n\u003cli\u003eUse Zstandard support from the standard library for Python 3.14+, and use \u003ccode\u003ebackports.zstd\u003c/code\u003e for older versions.\u003c/li\u003e\n\u003cli\u003eFixed return type annotation for \u003ccode\u003efind_one_and_*\u003c/code\u003e methods on :class:\u003ccode\u003e~pymongo.asynchronous.collection.AsyncCollection\u003c/code\u003e\nand :class:\u003ccode\u003e~pymongo.synchronous.collection.Collection\u003c/code\u003e to include \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded support for NumPy 1D-arrays in :class:\u003ccode\u003ebson.binary.BinaryVector\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003ePrevented :class:\u003ccode\u003e~pymongo.encryption.ClientEncryption\u003c/code\u003e from loading the crypt\nshared library to fix \u0026quot;MongoCryptError: An existing crypt_shared library is\nloaded by the application\u0026quot; unless the linked library search path is set.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f2103a95870ab5c00b436f757cbaeb86a1047679\"\u003e\u003ccode\u003ef2103a9\u003c/code\u003e\u003c/a\u003e Prep branch v4.17\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/3491c08ef6505d42d07b9a17100b5190ed1294fc\"\u003e\u003ccode\u003e3491c08\u003c/code\u003e\u003c/a\u003e PYTHON-5801 - Update changelog for 4.17 release (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2762\"\u003e#2762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/912ef337f90852b58eaf6318e59f97206b281980\"\u003e\u003ccode\u003e912ef33\u003c/code\u003e\u003c/a\u003e PYTHON-5798 - Overload retargeting prose tests do not ensure that sec… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2760\"\u003e#2760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/b4e2c03a927ca275e097342f847eb9705465e975\"\u003e\u003ccode\u003eb4e2c03\u003c/code\u003e\u003c/a\u003e PYTHON-5800 - Simple collation is included in index information (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2761\"\u003e#2761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f31ba09713ff61086f5ebddb43a1e79b419b9802\"\u003e\u003ccode\u003ef31ba09\u003c/code\u003e\u003c/a\u003e PYTHON-5797 - Add IWM and Overload Error links to changelog (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2757\"\u003e#2757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/5da91837d4db9b2f1d3521f2e39cff9e0ff94334\"\u003e\u003ccode\u003e5da9183\u003c/code\u003e\u003c/a\u003e PYTHON-5794 - Add prose tests to verify correct retry behavior when a… (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2755\"\u003e#2755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/35e51a50f3ecf2020be10b6eae96e3ad0038174a\"\u003e\u003ccode\u003e35e51a5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;PYTHON-5768 Add AGENTS.md w/copilot instructions\u0026quot; (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2744\"\u003e#2744\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2754\"\u003e#2754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/f41dd5c08b352f2ca885e19e475e366383dd3ec8\"\u003e\u003ccode\u003ef41dd5c\u003c/code\u003e\u003c/a\u003e PYTHON-5772 Increase _gcp_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2749\"\u003e#2749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/49e7a052e2fdf864ec3eb73e308d6cfd11b5f31d\"\u003e\u003ccode\u003e49e7a05\u003c/code\u003e\u003c/a\u003e PYTHON-5760 Increase _azure_helpers.py coverage (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2747\"\u003e#2747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/a2b0cd85e3a57cd63cbce9bc24500afb0fa062c6\"\u003e\u003ccode\u003ea2b0cd8\u003c/code\u003e\u003c/a\u003e PYTHON-5795 Fix absolute link to CONTRIBUTING.md in README.md (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2756\"\u003e#2756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mongodb/mongo-python-driver/compare/4.15.5...4.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mongoengine` from 0.29.1 to 0.29.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MongoEngine/mongoengine/blob/v0.29.3/docs/changelog.rst\"\u003emongoengine's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChanges in 0.29.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRemove mentions of mongoengine[dot]org has we no longer own it \u003ca href=\"https://redirect.github.com/MongoEngine/mongoengine/issues/2905\"\u003e#2905\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eChanges in 0.29.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efixes relted with\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MongoEngine/mongoengine/commit/30f6d56c5c0777f084213faf6b6e923acea225f7\"\u003e\u003ccode\u003e30f6d56\u003c/code\u003e\u003c/a\u003e prep release 0.29.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MongoEngine/mongoengine/commit/a5fb2bdd7760355d925001dd105ce7d5639af7d3\"\u003e\u003ccode\u003ea5fb2bd\u003c/code\u003e\u003c/a\u003e prepare 0.29.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MongoEngine/mongoengine/commit/a362dddc72ba189b3797a7b87fb0a66ea96b0877\"\u003e\u003ccode\u003ea362ddd\u003c/code\u003e\u003c/a\u003e fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MongoEngine/mongoengine/commit/1fcbad8e8395eef31a4a08b4e16540ca8dbaa534\"\u003e\u003ccode\u003e1fcbad8\u003c/code\u003e\u003c/a\u003e fix CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MongoEngine/mongoengine/commit/19553b880a062c2327642fb771eaf6d097174e6e\"\u003e\u003ccode\u003e19553b8\u003c/code\u003e\u003c/a\u003e use ubuntu 22.04 for test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MongoEngine/mongoengine/commit/0eeec004ef777f61f019a2d0f066621727fc515f\"\u003e\u003ccode\u003e0eeec00\u003c/code\u003e\u003c/a\u003e prepare 0.29.2 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/MongoEngine/mongoengine/compare/v0.29.1...v0.29.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `peewee` from 3.18.3 to 4.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coleifer/peewee/releases\"\u003epeewee's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SQL generation for partial indexes with nulls (not) distinct clause.\u003c/li\u003e\n\u003cli\u003eRaise an \u003ccode\u003eImproperlyConfigured\u003c/code\u003e if pg driver unavailable at model definition-time when field db-hooks are used, rather than \u003ccode\u003eAttributeError\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.3...4.0.4\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://github.com/user-attachments/assets/db2cf828-2c4d-4e2a-8c49-3c7432db520c\" alt=\"alien_moon_mission_flags_full\" /\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor test suite - this was a mechanical refactor, just moving things around and trying to group things more clearly. Also added new tests covering some gaps.\u003c/li\u003e\n\u003cli\u003eExpand multi-value types to include generator expressions, so you can write stuff like \u003ccode\u003e.in(a for a in iterable if cond)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eEnsure quotes embedded in entity names are escaped.\u003c/li\u003e\n\u003cli\u003eImproved specification of \u003ccode\u003eFOR UPDATE\u003c/code\u003e clauses.\u003c/li\u003e\n\u003cli\u003eFix for negative values in \u003ccode\u003epaginate()\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eFix for newer MySQL server versions in feature detection code.\u003c/li\u003e\n\u003cli\u003eMore robust handling of unusual aliases / invalid attr names in cursor wrapper.\u003c/li\u003e\n\u003cli\u003eBetter handling of duplicated column names in cursor wrapper implementations.\u003c/li\u003e\n\u003cli\u003eImprove performance of ModelCursorWrapper when reconstructing model instance graphs after multi-table selects.\u003c/li\u003e\n\u003cli\u003eIf only psycopg3 is installed, use it by default (\u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3036\"\u003e#3036\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.2...4.0.3\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://github.com/user-attachments/assets/15d6ec7f-0387-456a-b6db-e10d5b2e5b9f\" alt=\"1871_Vereshchagin_Apotheose_des_Krieges_anagoria\" /\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove all Python 2.x compatibility code.\u003c/li\u003e\n\u003cli\u003eAdd streaming result cursors to pwasyncio module via \u003ccode\u003edb.iterate(query)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eBetter serialization and deserialization of datetimes and binary data in the DataSet module. Previously binary data was encoded as base64, going forward hex is the new default. For base64 specify \u003ccode\u003ebase64_bytes=True\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImprovements to Postgres \u003ccode\u003eBinaryJSONField\u003c/code\u003e, support atomic removal of sub-elements, as well as alternate helper for extracting sub-elements and querying array length.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.peewee-orm.com/en/latest/peewee/orm_utils.html#module-playhouse.pydantic_utils\"\u003ePydantic integration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.1...4.0.2\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003egr_context\u003c/code\u003e is set on greenlet in \u003ccode\u003egreenlet_spawn\u003c/code\u003e so that contextvars will be operable in sync handlers.\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eSqliteExtDatabase\u003c/code\u003e (it basically served no purpose in 4.0). Use \u003ccode\u003eSqliteDatabase\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eMoved driver and extension-specific pooled implementations into the corresponding extension module rather than putting all into \u003ccode\u003eplayhouse.pool\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRestore custom \u003ccode\u003edumps\u003c/code\u003e option for postgres JSON fields.\u003c/li\u003e\n\u003cli\u003eMajor docs rewrite / reorganization.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.0...4.0.1\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds preliminary support for \u003ccode\u003easyncio\u003c/code\u003e via a new playhouse extension. See \u003ca href=\"http://docs.peewee-orm.com/en/latest/peewee/asyncio.html\"\u003ethe documentation\u003c/a\u003e for details.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePostgresqlDatabase\u003c/code\u003e can use \u003ccode\u003epsycopg\u003c/code\u003e (psycopg3) if it is installed. If both psycopg2 and psycopg3 are installed, Peewee will prefer psycopg2, but this can be controlled by specifying \u003ccode\u003eprefer_psycopg3=True\u003c/code\u003e in the constructor. Same applies to \u003ccode\u003ePostgresqlExtDatabase\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePsycopg3Database\u003c/code\u003e class has been moved to \u003ccode\u003eplayhouse.postgres_ext\u003c/code\u003e and is now just a thin wrapper around \u003ccode\u003ePostgresqlExtDatabase\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003ePostgres JSON operations no longer dump and try to do minimal casts, instead relying on the driver-provided \u003ccode\u003eJson()\u003c/code\u003e wrapper(s).\u003c/li\u003e\n\u003cli\u003eAdds new \u003ccode\u003eISODateTimeField\u003c/code\u003e for Sqlite that encodes datetimes in ISO format (more friendly when db is shared with other tools), and also properly reads back UTC offset info.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003eplayhouse.sqlite_ext.ClosureTable\u003c/code\u003e implementation.\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003eModel.dirty_field_names\u003c/code\u003e attribute that is safe for membership testing, since testing \u003ccode\u003ex in dirty_fields\u003c/code\u003e returns True if one or more field exists due to operator overloads returning a truthy Expression object. Refs \u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3028\"\u003e#3028\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/coleifer/peewee/blob/master/CHANGELOG.md\"\u003epeewee's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SQL generation for partial indexes with nulls (not) distinct clause.\u003c/li\u003e\n\u003cli\u003eRaise an \u003ccode\u003eImproperlyConfigured\u003c/code\u003e if pg driver unavailable at model\ndefinition-time when field db-hooks are used, rather than \u003ccode\u003eAttributeError\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.3...4.0.4\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor test suite - this was a mechanical refactor, just moving things\naround and trying to group things more clearly. Also added new tests covering\nsome gaps.\u003c/li\u003e\n\u003cli\u003eExpand multi-value types to include generator expressions, so you can write\nstuff like \u003ccode\u003e.in(a for a in iterable if cond)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eEnsure quotes embedded in entity names are escaped.\u003c/li\u003e\n\u003cli\u003eImproved specification of \u003ccode\u003eFOR UPDATE\u003c/code\u003e clauses.\u003c/li\u003e\n\u003cli\u003eFix for negative values in \u003ccode\u003epaginate()\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eFix for newer MySQL server versions in feature detection code.\u003c/li\u003e\n\u003cli\u003eMore robust handling of unusual aliases / invalid attr names in cursor\nwrapper.\u003c/li\u003e\n\u003cli\u003eBetter handling of duplicated column names in cursor wrapper implementations.\u003c/li\u003e\n\u003cli\u003eImprove performance of ModelCursorWrapper when reconstructing model instance\ngraphs after multi-table selects.\u003c/li\u003e\n\u003cli\u003eIf only psycopg3 is installed, use it by default (\u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3036\"\u003e#3036\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.2...4.0.3\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove all Python 2.x compatibility code.\u003c/li\u003e\n\u003cli\u003eAdd streaming result cursors to pwasyncio module via \u003ccode\u003edb.iterate(query)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eBetter serialization and deserialization of datetimes and binary data in the\nDataSet module. Previously binary data was encoded as base64, going forward\nhex is the new default. For base64 specify \u003ccode\u003ebase64_bytes=True\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImprovements to Postgres \u003ccode\u003eBinaryJSONField\u003c/code\u003e, support atomic removal of\nsub-elements, as well as alternate helper for extracting sub-elements and\nquerying array length.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.peewee-orm.com/en/latest/peewee/orm_utils.html#module-playhouse.pydantic_utils\"\u003ePydantic integration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.1...4.0.2\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003egr_context\u003c/code\u003e is set on greenlet in \u003ccode\u003egreenlet_spawn\u003c/code\u003e so that\ncontextvars will be operable in sync handlers.\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eSqliteExtDatabase\u003c/code\u003e (it basically served no purpose in 4.0). Use\n\u003ccode\u003eSqliteDatabase\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eMoved driver and extension-specific pooled implementations into the\ncorresponding extension module rather than putting all into \u003ccode\u003eplayhouse.pool\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/coleifer/peewee/commit/1c5e37934b81cad37fb506388926325d55f1e437\"\u003e\u003ccode\u003e1c5e379\u003c/code\u003e\u003c/a\u003e 4.0.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/c511fb137f7b3d91436aabc5a7963ada217147ec\"\u003e\u003ccode\u003ec511fb1\u003c/code\u003e\u003c/a\u003e Fix syntax when using nulls_distinct on partial index.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/f8ff6af96cd8b0d3a303a5ec1d514b59837178d6\"\u003e\u003ccode\u003ef8ff6af\u003c/code\u003e\u003c/a\u003e Raise an \u003ccode\u003eImproperlyConfigured\u003c/code\u003e instead of AttributeError if pg missing.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/bd0e434e83ade196d754615198e911e36c045903\"\u003e\u003ccode\u003ebd0e434\u003c/code\u003e\u003c/a\u003e 4.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/89f3031dac7c19b10748dce5c80c0439ae6aee66\"\u003e\u003ccode\u003e89f3031\u003c/code\u003e\u003c/a\u003e Use psycopg3 if psycopg2 is not installed.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/007fd50bc74d6612d3551de12f28f901f43c40fb\"\u003e\u003ccode\u003e007fd50\u003c/code\u003e\u003c/a\u003e Just some housekeeping\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/eda231b047b023515c161cc54fad83c8a87e5eeb\"\u003e\u003ccode\u003eeda231b\u003c/code\u003e\u003c/a\u003e Update changelog, fix failing crdb sql test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/071d0a036298f49e998a7595990128f9763dafbe\"\u003e\u003ccode\u003e071d0a0\u003c/code\u003e\u003c/a\u003e Cleanup cruft in sql and merge it into appropriate cases.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/ab9a94311d9699367301ebc276483856ed58456d\"\u003e\u003ccode\u003eab9a943\u003c/code\u003e\u003c/a\u003e Test cleanup in prefetch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/2d20c8acb43878733ecca178e7c5680422f1e63f\"\u003e\u003ccode\u003e2d20c8a\u003c/code\u003e\u003c/a\u003e Updates to tests, gone through model_sql and cleaned-up.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coleifer/peewee/compare/3.18.3...4.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `wtf-peewee` from 3.0.6 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/wtf-peewee/commit/d16af6d54ed98e51d9ece9ab440125fa9cb17716\"\u003e\u003ccode\u003ed16af6d\u003c/code\u003e\u003c/a\u003e 3.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/wtf-peewee/commit/15d1fe8fdf71609ebfdaf5cff467152f67a7c514\"\u003e\u003ccode\u003e15d1fe8\u003c/code\u003e\u003c/a\u003e Clean up error messages and add test for length validator too.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/wtf-peewee/commit/810bdb2545c30f07d7a42cb95d6fa5cf3a4e5e3b\"\u003e\u003ccode\u003e810bdb2\u003c/code\u003e\u003c/a\u003e Fix validation on foreign-key for missing object.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/wtf-peewee/commit/0638331d57b09d6495434a5a6980d52861b18018\"\u003e\u003ccode\u003e0638331\u003c/code\u003e\u003c/a\u003e Add test for checking form data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/wtf-peewee/commit/9a2af51636557ec390b40d83874f79c840163c35\"\u003e\u003ccode\u003e9a2af51\u003c/code\u003e\u003c/a\u003e Add support for JSON fields in PostgreSQL and SQLite\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/wtf-peewee/commit/6eed1003bdaff03ae3278b5a0094841b2235a405\"\u003e\u003ccode\u003e6eed100\u003c/code\u003e\u003c/a\u003e 3.0.7\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/coleifer/wtf-peewee/compare/3.0.6...3.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.42.14 to 1.42.92\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/d431bb03c76582926b04618b3704302b55579a45\"\u003e\u003ccode\u003ed431bb0\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.92'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5cb8aa5dcb543bc6f518eaee723ddee9590f9f8e\"\u003e\u003ccode\u003e5cb8aa5\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.92\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c5949008514dba8cf8d1bef02d53632f657d7eaf\"\u003e\u003ccode\u003ec594900\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/7eff2b3c823c0c9500038276ddfd16a89b9c2cd1\"\u003e\u003ccode\u003e7eff2b3\u003c/code\u003e\u003c/a\u003e Update presigned URL docs to include addressing style config (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4768\"\u003e#4768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/d5b7391bc05f6c06e7bf882c6a4047af74ab3852\"\u003e\u003ccode\u003ed5b7391\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.91'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c0506106ce4f327731630f0208fcb3edbed0efc3\"\u003e\u003ccode\u003ec050610\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.91' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/f8d138599c975669a27529d86bc199a303d03e8d\"\u003e\u003ccode\u003ef8d1385\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.91\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/3e834220990a6ca6e633e9f566ff47fbba68f32a\"\u003e\u003ccode\u003e3e83422\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/ac298d48400d1d9ccd7fd15f6f06bba73fe40914\"\u003e\u003ccode\u003eac298d4\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.90'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/1a9278380d932a9b384451c9056f518ff4136b53\"\u003e\u003ccode\u003e1a92783\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.90' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.42.14...1.42.92\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-storage-blob` from 12.27.1 to 12.28.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b3301acbed95d1e11f8ab859eced5292627c763a\"\u003e\u003ccode\u003eb3301ac\u003c/code\u003e\u003c/a\u003e STG 100 GA Release Date for 2026-01-06\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/beb8dfaad1420c54288adb8e0ceb468cff144a70\"\u003e\u003ccode\u003ebeb8dfa\u003c/code\u003e\u003c/a\u003e [Storage][STG 100] Prepare branch for GA + cherry-pick block size change (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44\"\u003e#44\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/874cfcf701ccc2a2ef9a3444fe0563ce2efdc058\"\u003e\u003ccode\u003e874cfcf\u003c/code\u003e\u003c/a\u003e [Storage] Update Swagger and Release Date (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44243\"\u003e#44243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/4aca0cc83494e1fe243a21d31af357acf60160be\"\u003e\u003ccode\u003e4aca0cc\u003c/code\u003e\u003c/a\u003e Fix perf tests on Python 3.14 + Storage change (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44230\"\u003e#44230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/cd5ecc5c0e05c1deeb4b74f72d85f01418e5d27c\"\u003e\u003ccode\u003ecd5ecc5\u003c/code\u003e\u003c/a\u003e [Storage] Fix 100 Live Tests (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44108\"\u003e#44108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/1cd78b1c3dbc5acb2a40d81cf4d3587783a187eb\"\u003e\u003ccode\u003e1cd78b1\u003c/code\u003e\u003c/a\u003e [Storage] Added support for Python 3.14 + update 100 release date (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44224\"\u003e#44224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/471cda17da08c0320c12c4f2ee30becaaec94a7a\"\u003e\u003ccode\u003e471cda1\u003c/code\u003e\u003c/a\u003e [Storage] Add Blob download perf test that uses HTTP library directly (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44111\"\u003e#44111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/9e53510dc0e1acfdbbf418174f656fac5025ea92\"\u003e\u003ccode\u003e9e53510\u003c/code\u003e\u003c/a\u003e [Storage] Decompression for Binary Response in Download APIs (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43587\"\u003e#43587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/68b646be00366dc3f9157065eccf55dd0c7c21b2\"\u003e\u003ccode\u003e68b646b\u003c/code\u003e\u003c/a\u003e Removed create file with data and file semantics features (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43978\"\u003e#43978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/09f0066bee9b717da6e15aa5fc2183e3490fe7f1\"\u003e\u003ccode\u003e09f0066\u003c/code\u003e\u003c/a\u003e [Storage] Added Support for \u003ccode\u003eUseDevelopmentStorage=true;\u003c/code\u003e for Connection Stri...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-storage-blob_12.27.1...azure-storage-blob_12.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.1.0 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eOpenTelemetry Native Metrics Support for asynchronous clients\u003c/strong\u003e\nAdded comprehensive OpenTelemetry metrics support for asynchronous clients following the \u003ca href=\"https://opentelemetry.io/docs/specs/semconv/database/database-metrics/\"\u003eOpenTelemetry Database Client Semantic Conventions\u003c/a\u003e.\nMetric groups include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCommand metrics: Operation duration with retry tracking\u003c/li\u003e\n\u003cli\u003eConnection basic: Connection count and creation time\u003c/li\u003e\n\u003cli\u003eResiliency: Errors, handoffs, timeout relaxation\u003c/li\u003e\n\u003cli\u003eConnection advanced: Wait time and use time\u003c/li\u003e\n\u003cli\u003ePubsub metrics: Published and received messages\u003c/li\u003e\n\u003cli\u003eStream metrics: Processing duration and maintenance notifications\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded OTel instrumentation and metrics export for async client (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3977\"\u003e#3977\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[async] Adding access to cluster client's nodes_manager and set_response_callback in ClusterPipeline objects (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3989\"\u003e#3989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(connection): Ensure we have an initialized protocol in connection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3981\"\u003e#3981\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use KeysT for blpop and brpop keys parameter type annotation (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3987\"\u003e#3987\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3990\"\u003e#3990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3985\"\u003e#3985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: replace 3 bare except clauses with except Exception (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3980\"\u003e#3980\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/turanalmammadov\"\u003e\u003ccode\u003e@​turanalmammadov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/haosenwang1018\"\u003e\u003ccode\u003e@​haosenwang1018\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/Medno\"\u003e\u003ccode\u003e@​Medno\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.2.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/8ecbc7a728792ab9c71078cb330a64c225cb3351\"\u003e\u003ccode\u003e8ecbc7a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/11043df86ed5f892cde1f34f08f3450f13bb6339\"\u003e\u003ccode\u003e11043df\u003c/code\u003e\u003c/a\u003e typing: accept single-key input for blpop and brpop (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3990\"\u003e#3990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d9581250202123ebf68d299e8f2ea79fa9bd7210\"\u003e\u003ccode\u003ed958125\u003c/code\u003e\u003c/a\u003e fix: use KeysT for blpop and brpop keys parameter type annotation (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3987\"\u003e#3987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/75bf91b8a28bfc3f8417e58d1b78bd112ffcf6de\"\u003e\u003ccode\u003e75bf91b\u003c/code\u003e\u003c/a\u003e [async] Adding access to cluster client's nodes_manager and set_response_call...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.1.0...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tox` from 4.29.0 to 4.53.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/releases\"\u003etox's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cb...\n\n_Description has been truncated_","html_url":"https://github.com/pallets-eco/flask-admin/pull/2877","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pallets-eco%2Fflask-admin/issues/2877","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2877/packages"}},{"old_version":"0.18.1","new_version":"0.18.4","update_type":"patch","path":null,"pr_created_at":"2026-04-02T00:26:40.000Z","version_change":"0.18.1 → 0.18.4","issue":{"uuid":"4190650262","node_id":"PR_kwDOG5WtHM7Paafw","number":2830,"state":"open","title":"[Tech] Bump the non-major-dependencies group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["tech. enhancement","dependencies"],"assignees":["VincentAntoine"],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-02T00:26:40.000Z","updated_at":"2026-04-02T00:27:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[Tech] Bump","group_name":"non-major-dependencies","update_count":7,"packages":[{"name":"geopandas","old_version":"1.1.2","new_version":"1.1.3","repository_url":"https://github.com/geopandas/geopandas"},{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"geoalchemy2","old_version":"0.18.1","new_version":"0.18.4","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"prefect","old_version":"3.6.9","new_version":"3.6.24","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"coverage","old_version":"7.13.4","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"sqlalchemy","old_version":"2.0.46","new_version":"2.0.48","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"css-inline","old_version":"0.20.0","new_version":"0.20.1","repository_url":"https://github.com/Stranger6667/css-inline"}],"path":null,"ecosystem":"pip"},"body":"Bumps the non-major-dependencies group with 7 updates in the /pipeline directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [geopandas](https://github.com/geopandas/geopandas) | `1.1.2` | `1.1.3` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.18.1` | `0.18.4` |\n| [prefect](https://github.com/PrefectHQ/prefect) | `3.6.9` | `3.6.24` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.4` | `7.13.5` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.46` | `2.0.48` |\n| [css-inline](https://github.com/Stranger6667/css-inline) | `0.20.0` | `0.20.1` |\n\n\nUpdates `geopandas` from 1.1.2 to 1.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geopandas/geopandas/releases\"\u003egeopandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.1.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eThis release addresses a handful of small compatibility issues with pandas 3.0 and backports some bugfixes.\u003c/p\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImproved compatibility with pandas 3.0 Copy-on-Write feature, making use of deferred copies where possible (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3298\"\u003e#3298\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3711\"\u003e#3711\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eGeoSeries.sample_points\u003c/code\u003e not accepting list-like \u003ccode\u003esize\u003c/code\u003e when generating points using\n\u003ccode\u003epointpaterns\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3710\"\u003e#3710\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efrom_wkt/wkb\u003c/code\u003e to correctly handle missing values with pandas 3 (where the new \u003ccode\u003estr\u003c/code\u003e dtype is used) (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3714\"\u003e#3714\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eto_postgis\u003c/code\u003e to correctly handle missing values with pandas 3 (where the new \u003ccode\u003estr\u003c/code\u003e dtype is used) (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3722\"\u003e#3722\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUsing \u003ccode\u003eloc\u003c/code\u003e to assign column values to a new row index now correctly preserves the column CRS and geometry dtype\non pandas 3.1, due to an upstream bug fix (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3741\"\u003e#3741\u003c/a\u003e, Pandas \u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/62523\"\u003e#62523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRandom states in \u003ccode\u003epointpats\u003c/code\u003e methods of \u003ccode\u003esample_points\u003c/code\u003e can now be fixed with \u003ccode\u003erng\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3737\"\u003e#3737\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geopandas/geopandas/compare/v1.1.2...v1.1.3\"\u003ehttps://github.com/geopandas/geopandas/compare/v1.1.2...v1.1.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geopandas/geopandas/blob/main/CHANGELOG.md\"\u003egeopandas's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.1.3 (March 10, 2026)\u003c/h2\u003e\n\u003cp\u003eThis release addresses a handful of small compatibility issues with pandas 3.0 and backports some bugfixes.\u003c/p\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImproved compatibility with pandas 3.0 Copy-on-Write feature, making use of deferred copies where possible (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3298\"\u003e#3298\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3711\"\u003e#3711\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eGeoSeries.sample_points\u003c/code\u003e not accepting list-like \u003ccode\u003esize\u003c/code\u003e when generating points using\n\u003ccode\u003epointpaterns\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3710\"\u003e#3710\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efrom_wkt/wkb\u003c/code\u003e to correctly handle missing values with pandas 3 (where the new \u003ccode\u003estr\u003c/code\u003e dtype is used) (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3714\"\u003e#3714\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eto_postgis\u003c/code\u003e to correctly handle missing values with pandas 3 (where the new \u003ccode\u003estr\u003c/code\u003e dtype is used) (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3722\"\u003e#3722\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eUsing \u003ccode\u003eloc\u003c/code\u003e to assign column values to a new row index now correctly preserves the column CRS and geometry dtype\non pandas 3.1, due to an upstream bug fix (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3741\"\u003e#3741\u003c/a\u003e, Pandas \u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/62523\"\u003e#62523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRandom states in \u003ccode\u003epointpats\u003c/code\u003e methods of \u003ccode\u003esample_points`` can now be fixed with \u003c/code\u003erng` (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3737\"\u003e#3737\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/geopandas/geopandas/commit/f5fe3ff5f0e473603cd0e81673d9f1f300f4975d\"\u003e\u003ccode\u003ef5fe3ff\u003c/code\u003e\u003c/a\u003e RLS: v1.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/c1046702f4444659cb9cf3d8cb389ecd45c35e3c\"\u003e\u003ccode\u003ec104670\u003c/code\u003e\u003c/a\u003e pointpats \u0026lt;2.5.3 test compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/af36b140f911641e9a7909e3be76e766d7383c22\"\u003e\u003ccode\u003eaf36b14\u003c/code\u003e\u003c/a\u003e ENH: add \u003ccode\u003epointpats\u003c/code\u003e as an optional dependency \u0026amp; pass in \u003ccode\u003erng\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3737\"\u003e#3737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/d9ed84a9d4e33524498eac197d11ece3ba67637e\"\u003e\u003ccode\u003ed9ed84a\u003c/code\u003e\u003c/a\u003e COMPAT: fix failing test for loc concatenation crs preservation with pandas 3...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/1b1ddc23796bbe06589f2262d548219d0b065daf\"\u003e\u003ccode\u003e1b1ddc2\u003c/code\u003e\u003c/a\u003e MAINT: use trusted publishing for releasing to PyPI (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3734\"\u003e#3734\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/8d0c05dbd588031f9c10913b3302b2d347dc9e8e\"\u003e\u003ccode\u003e8d0c05d\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/a424f1750945bcc9a6c6122c7aca8b0829202201\"\u003e\u003ccode\u003ea424f17\u003c/code\u003e\u003c/a\u003e Avoid returning deep copies with pandas 3.0 (with Copy-on-Write) (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3298\"\u003e#3298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/03fa43e9029ced09314b915277309e7fee7097ba\"\u003e\u003ccode\u003e03fa43e\u003c/code\u003e\u003c/a\u003e MAINT: cleanup release warning for project.license table (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3603\"\u003e#3603\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/29fdb3057195aa4cb7adbd771425e3a47ad52b66\"\u003e\u003ccode\u003e29fdb30\u003c/code\u003e\u003c/a\u003e CI: remove usage of PANDAS_FUTURE_INFER_STRINGS=0 (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3715\"\u003e#3715\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/9070e1346fc070ee077cb7027f6fa7737391402e\"\u003e\u003ccode\u003e9070e13\u003c/code\u003e\u003c/a\u003e missing changelog entries\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geopandas/geopandas/compare/v1.1.2...v1.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.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/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\u003c/blockquote\u003e\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\u003c/blockquote\u003e\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.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 `geoalchemy2` from 0.18.1 to 0.18.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: fix shapely import by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/588\"\u003egeoalchemy/geoalchemy2#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/589\"\u003egeoalchemy/geoalchemy2#589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Make Coveralls optional since the service is down at the moment by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/590\"\u003egeoalchemy/geoalchemy2#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: try the official Coveralls action by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/592\"\u003egeoalchemy/geoalchemy2#592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.4 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/591\"\u003egeoalchemy/geoalchemy2#591\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/584\"\u003egeoalchemy/geoalchemy2#584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.3 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/587\"\u003egeoalchemy/geoalchemy2#587\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/575\"\u003egeoalchemy/geoalchemy2#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/576\"\u003egeoalchemy/geoalchemy2#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/577\"\u003egeoalchemy/geoalchemy2#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/578\"\u003egeoalchemy/geoalchemy2#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/580\"\u003egeoalchemy/geoalchemy2#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Fix package discovery by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/581\"\u003egeoalchemy/geoalchemy2#581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.2 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/582\"\u003egeoalchemy/geoalchemy2#582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.2\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Move to the official Coveralls action - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Fix shapely import - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Fix package discovery - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/576\"\u003e#576\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/geoalchemy/geoalchemy2/commit/beb96c39754704a2ec712de3857d72b8a8ecc4d3\"\u003e\u003ccode\u003ebeb96c3\u003c/code\u003e\u003c/a\u003e Release: 0.18.4 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/6266c25a12b3d406c403db2112e7c55bf3739d97\"\u003e\u003ccode\u003e6266c25\u003c/code\u003e\u003c/a\u003e CI: Move to the official Coveralls action (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f402f6347454374b7719e612a5ebe5a1a766c8fa\"\u003e\u003ccode\u003ef402f63\u003c/code\u003e\u003c/a\u003e CI: Make Coveralls optional since the service is down at the moment (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/590\"\u003e#590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/36ebd0f650d1c60b2e24c896d4662818f0162414\"\u003e\u003ccode\u003e36ebd0f\u003c/code\u003e\u003c/a\u003e Fix: fix setuptools deprecation warning (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f11a1dadb94a31272cb58f3ef04f07490d174d34\"\u003e\u003ccode\u003ef11a1da\u003c/code\u003e\u003c/a\u003e Fix: Fix shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/943b456ee3726db7a4b890309d9e864866bd8614\"\u003e\u003ccode\u003e943b456\u003c/code\u003e\u003c/a\u003e Release: 0.18.3 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/55ab8737ae818b47c28a17fb6102b3eb94208c06\"\u003e\u003ccode\u003e55ab873\u003c/code\u003e\u003c/a\u003e Fix: Fix Shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/5e9680be84369cf64c90f70a0f2ddac6cd27f15f\"\u003e\u003ccode\u003e5e9680b\u003c/code\u003e\u003c/a\u003e Release: 0.18.2 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/582\"\u003e#582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/59440f1aa593917b4c27997b22cb9eac54b54040\"\u003e\u003ccode\u003e59440f1\u003c/code\u003e\u003c/a\u003e Build: Fix package discovery (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/b6440a2fe70dd0629d3b882c8fb0e7bfba13f922\"\u003e\u003ccode\u003eb6440a2\u003c/code\u003e\u003c/a\u003e Chore: Add more type hints in from_shape module (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prefect` from 3.6.9 to 3.6.24\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PrefectHQ/prefect/releases\"\u003eprefect's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.6.24 - A watched flow never boils\u003c/h2\u003e\n\u003cp\u003eNote: unwatched flows also never boil\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNew Features 🎉\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eflow-run watch\u003c/code\u003e command to watch any flow run until it reaches a terminal state by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21260\"\u003e#21260\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ewith_context()\u003c/code\u003e for propagating Prefect run context into user-spawned subprocesses by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21304\"\u003e#21304\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements ➕➕\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd bounded queue support to \u003ccode\u003eQueueService\u003c/code\u003e to prevent OOM during server outages by \u003ca href=\"https://github.com/zionts\"\u003e\u003ccode\u003e@​zionts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21033\"\u003e#21033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd time-based checkpoint to events websocket client by \u003ca href=\"https://github.com/zangell44\"\u003e\u003ccode\u003e@​zangell44\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21264\"\u003e#21264\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eposition\u003c/code\u003e to block schema properties for UI field ordering by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21307\"\u003e#21307\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd opt-in BuildKit/buildx support via \u003ccode\u003epython-on-whales\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21286\"\u003e#21286\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove default timeout on \u003ccode\u003esuspend_flow_run\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21285\"\u003e#21285\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003ePREFECT_CLIENT_CUSTOM_HEADERS\u003c/code\u003e in standalone version check by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21262\"\u003e#21262\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug Fixes 🐞\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ePrefectFutureList.result()\u003c/code\u003e raising \u003ccode\u003eAttributeError\u003c/code\u003e after flow resolution by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21221\"\u003e#21221\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Jinja template parameter type coercion in \u003ccode\u003eRunDeployment\u003c/code\u003e actions by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21231\"\u003e#21231\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eprefect deploy --all\u003c/code\u003e to respect default work pool settings by \u003ca href=\"https://github.com/bdalpe\"\u003e\u003ccode\u003e@​bdalpe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21258\"\u003e#21258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eUnicodeDecodeError\u003c/code\u003e when subprocess outputs non-UTF-8 bytes by \u003ca href=\"https://github.com/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21267\"\u003e#21267\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eValueError\u003c/code\u003e when deploying flows whose source is outside cwd by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21281\"\u003e#21281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInline orphan condition into batch delete to prevent vacuum timeout by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21298\"\u003e#21298\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDefault missing \u003ccode\u003eContent-Type\u003c/code\u003e to \u003ccode\u003eapplication/json\u003c/code\u003e for old client compatibility by \u003ca href=\"https://github.com/chuqCTC\"\u003e\u003ccode\u003e@​chuqCTC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21302\"\u003e#21302\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eallow_failure()\u003c/code\u003e not working with mapped tasks in \u003ccode\u003ewait_for\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21305\"\u003e#21305\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003ePREFECT_SERVER_ANALYTICS_ENABLED\u003c/code\u003e env var in CLI by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21315\"\u003e#21315\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve field aliases during Block serialization with \u003ccode\u003einclude_secrets\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21306\"\u003e#21306\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003edotenv_values\u003c/code\u003e when \u003ccode\u003e.env\u003c/code\u003e is not a regular file by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21320\"\u003e#21320\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix heartbeat starvation under CPU-bound workloads by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21276\"\u003e#21276\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eEventsWorker\u003c/code\u003e class variable mutation and add \u003ccode\u003e_on_item_dropped\u003c/code\u003e for queue cleanup by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21273\"\u003e#21273\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve deployment concurrency lease ID across state transitions by \u003ca href=\"https://github.com/bunchesofdonald\"\u003e\u003ccode\u003e@​bunchesofdonald\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21280\"\u003e#21280\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDevelopment \u0026amp; Tidiness 🧹\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix flaky test: switch work queue tests to in-process client by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21042\"\u003e#21042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pre-commit hook to prevent double backticks by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21211\"\u003e#21211\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix flaky test: handle \u003ccode\u003eCancelledError\u003c/code\u003e during sync concurrency slot release by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21212\"\u003e#21212\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit client tests into two matrix jobs to avoid CI timeouts by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21213\"\u003e#21213\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace bare \u003ccode\u003eexcept:\u003c/code\u003e with explicit \u003ccode\u003eException\u003c/code\u003e/\u003ccode\u003eBaseException\u003c/code\u003e branches in \u003ccode\u003erun_flow()\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21228\"\u003e#21228\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise versioningit default-version so Dependabot \u003ccode\u003euv lock\u003c/code\u003e succeeds by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21230\"\u003e#21230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit orchestration tests into core and API suites by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21232\"\u003e#21232\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet versioningit \u003ccode\u003edefault-tag\u003c/code\u003e above integration floors by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21234\"\u003e#21234\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch Python dependabot updates weekly with grouping by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21242\"\u003e#21242\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Docker CI job failing on dependabot PRs by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21243\"\u003e#21243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd document-changes skill and CI workflow by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21248\"\u003e#21248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove internal \u003ccode\u003eRunner\u003c/code\u003e usage from bundle execution and CLI paths by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21252\"\u003e#21252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExclude auto-generated docs from document-changes skill by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21275\"\u003e#21275\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove Postgres container to a service in python-tests workflow by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/21282\"\u003e#21282\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/PrefectHQ/prefect/commit/195d63c90a0f478ab6366c15a9d2159804136219\"\u003e\u003ccode\u003e195d63c\u003c/code\u003e\u003c/a\u003e docs: Add release notes for 3.6.24 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21322\"\u003e#21322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/d4d531034448cd8f5bf8c5d199e509800c5f8011\"\u003e\u003ccode\u003ed4d5310\u003c/code\u003e\u003c/a\u003e Fix heartbeat starvation under CPU-bound workloads (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21276\"\u003e#21276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/f76299fd680a8462a340cd56aef1f7b2e88d3ea4\"\u003e\u003ccode\u003ef76299f\u003c/code\u003e\u003c/a\u003e Add opt-in BuildKit/buildx support via python-on-whales (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21286\"\u003e#21286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/6c3994096c8eab8bb376f747870fe53ea6b7dff9\"\u003e\u003ccode\u003e6c39940\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003ewith_context()\u003c/code\u003e for logging from subprocesses (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21304\"\u003e#21304\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/b1dea50d55b868f8e183c2f03c2bb230868e091a\"\u003e\u003ccode\u003eb1dea50\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21319\"\u003e#21319\u003c/a\u003e: Skip dotenv_values when .env is not a regular file (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21320\"\u003e#21320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/316330b174f625fc63b899706cc15f42acd4f7cd\"\u003e\u003ccode\u003e316330b\u003c/code\u003e\u003c/a\u003e Remove expired docs banner (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21321\"\u003e#21321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/d325a6c5e52b8f18da30376babd55f280857f7e4\"\u003e\u003ccode\u003ed325a6c\u003c/code\u003e\u003c/a\u003e Update AGENTS.md files for f03e181 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21318\"\u003e#21318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/f03e18107c07cdd327c732af3d7cd782e079b178\"\u003e\u003ccode\u003ef03e181\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eposition\u003c/code\u003e to block schema properties for UI field ordering (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21307\"\u003e#21307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/4a5e03a1b8788d625cb4ca0c78e0f5b898cb2a86\"\u003e\u003ccode\u003e4a5e03a\u003c/code\u003e\u003c/a\u003e fix: preserve field aliases during Block serialization with include_secrets (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/af02e07e3c36d2b9aa7463a097fd72c2750d74ff\"\u003e\u003ccode\u003eaf02e07\u003c/code\u003e\u003c/a\u003e Respect PREFECT_SERVER_ANALYTICS_ENABLED env var in CLI (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/21315\"\u003e#21315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.9...3.6.24\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.4 to 7.13.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.5 — 2026-03-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eissue 2138\u003c/code\u003e_ describes a memory leak that happened when repeatedly\nusing the Coverage API with in-memory data. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the markdown-formatted coverage report didn't fully escape special\ncharacters in file paths (\u003ccode\u003eissue 2141\u003c/code\u003e\u003cem\u003e). This would be very unlikely to\ncause a problem, but now it's done properly, thanks to \u003ccode\u003eEllie Ayla \u0026lt;pull 2142_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the C extension wouldn't build on VS2019, but now it does (\u003ccode\u003eissue 2145\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2138: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2138\"\u003ecoveragepy/coveragepy#2138\u003c/a\u003e\n.. _issue 2141: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2141\"\u003ecoveragepy/coveragepy#2141\u003c/a\u003e\n.. _pull 2142: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2142\"\u003ecoveragepy/coveragepy#2142\u003c/a\u003e\n.. _issue 2145: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2145\"\u003ecoveragepy/coveragepy#2145\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-4:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c88da144eef8cf78424331e5cbbde3e002eef43f\"\u003e\u003ccode\u003ec88da14\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e2ac3e1ef644370101ff365acad3431d16076512\"\u003e\u003ccode\u003ee2ac3e1\u003c/code\u003e\u003c/a\u003e build: sample HTML shouldn't include the status.json file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/910f8f336541c2dcb4e9ec468144c7eb4a7779ac\"\u003e\u003ccode\u003e910f8f3\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3a4819c24d3d20cb2670b99141517812ffa3fab0\"\u003e\u003ccode\u003e3a4819c\u003c/code\u003e\u003c/a\u003e style: make workflows more uniform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2a53705f5fe588158b8a8d37ff3beee86388b9e4\"\u003e\u003ccode\u003e2a53705\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 4 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e7c878d201db819416b978150944d9a842d22b18\"\u003e\u003ccode\u003ee7c878d\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ab4db406a9c35acf977cf3ddb94a78d696b77bc5\"\u003e\u003ccode\u003eab4db40\u003c/code\u003e\u003c/a\u003e build: use --generate-hashes when pinning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a438753eef870441044cef588e29ce4b9a28adf1\"\u003e\u003ccode\u003ea438753\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/7b33457d2c6367dfd5a563239998b3980444e090\"\u003e\u003ccode\u003e7b33457\u003c/code\u003e\u003c/a\u003e refactor: some leftover pyupgrade 3.10 bits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2ff968db91a7cdafe6f6569ac7659a3a93a2da07\"\u003e\u003ccode\u003e2ff968d\u003c/code\u003e\u003c/a\u003e refactor: this type wasn't used anywhere\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.4...7.13.5\"\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.46 to 2.0.48\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.48\u003c/h1\u003e\n\u003cp\u003eReleased: March 2, 2026\u003c/p\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [bug]\u003c/strong\u003e Fixed a critical issue in \u003ccode\u003eEngine\u003c/code\u003e where connections created in\nconjunction with the \u003ccode\u003eDialectEvents.do_connect()\u003c/code\u003e event listeners\nwould receive shared, mutable collections for the connection arguments,\nleading to a variety of potential issues including unlimited growth of the\nargument list as well as elements within the parameter dictionary being\nshared among concurrent connection calls.  In particular this could impact\ndo_connect routines making use of complex mutable authentication\nstructures.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13144\"\u003e#13144\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.0.47\u003c/h1\u003e\n\u003cp\u003eReleased: February 24, 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 when using ORM mappings with Python 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e feature\nthat no longer requires \u0026quot;future annotations\u0026quot;, where the ORM's introspection\nof the \u003ccode\u003e__init__\u003c/code\u003e method of mapped classes would fail if non-present\nidentifiers in annotations were present.  The vendored \u003ccode\u003egetfullargspec()\u003c/code\u003e\nmethod has been amended to use \u003ccode\u003eFormat.FORWARDREF\u003c/code\u003e under Python 3.14 to\nprevent resolution of names that aren't present.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13104\"\u003e#13104\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [usecase]\u003c/strong\u003e The connection object returned by \u003ccode\u003e_engine.Engine.raw_connection()\u003c/code\u003e\nnow supports the context manager protocol, automatically returning the\nconnection to the pool when exiting the context.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13116\"\u003e#13116\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed an issue in the PostgreSQL dialect where foreign key constraint\nreflection would incorrectly swap or fail to capture \u003ccode\u003eonupdate\u003c/code\u003e and\n\u003ccode\u003eondelete\u003c/code\u003e values when these clauses appeared in a different order than\nexpected in the constraint definition. This issue primarily affected\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\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 `css-inline` from 0.20.0 to 0.20.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Stranger6667/css-inline/releases\"\u003ecss-inline's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[C] Release 0.20.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ehtml5ever\u003c/code\u003e to \u003ccode\u003e0.39\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eselectors\u003c/code\u003e to \u003ccode\u003e0.36\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when inlining styles onto elements with existing inline \u003ccode\u003estyle\u003c/code\u003e attributes. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when \u003ccode\u003eminify_css\u003c/code\u003e is enabled due to separator mismatch during property lookup. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Java] Release 0.20.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ehtml5ever\u003c/code\u003e to \u003ccode\u003e0.39\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eselectors\u003c/code\u003e to \u003ccode\u003e0.36\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when inlining styles onto elements with existing inline \u003ccode\u003estyle\u003c/code\u003e attributes. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when \u003ccode\u003eminify_css\u003c/code\u003e is enabled due to separator mismatch during property lookup. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[JavaScript] Release 0.20.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ehtml5ever\u003c/code\u003e to \u003ccode\u003e0.39\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eselectors\u003c/code\u003e to \u003ccode\u003e0.36\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when inlining styles onto elements with existing inline \u003ccode\u003estyle\u003c/code\u003e attributes. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when \u003ccode\u003eminify_css\u003c/code\u003e is enabled due to separator mismatch during property lookup. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[PHP] Release 0.20.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ehtml5ever\u003c/code\u003e to \u003ccode\u003e0.39\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eselectors\u003c/code\u003e to \u003ccode\u003e0.36\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when inlining styles onto elements with existing inline \u003ccode\u003estyle\u003c/code\u003e attributes. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when \u003ccode\u003eminify_css\u003c/code\u003e is enabled due to separator mismatch during property lookup. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Python] Release 0.20.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ehtml5ever\u003c/code\u003e to \u003ccode\u003e0.39\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eselectors\u003c/code\u003e to \u003ccode\u003e0.36\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Stranger6667/css-inline/blob/master/CHANGELOG.md\"\u003ecss-inline's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.20.1] - 2026-03-26\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ehtml5ever\u003c/code\u003e to \u003ccode\u003e0.39\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003eselectors\u003c/code\u003e to \u003ccode\u003e0.36\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when inlining styles onto elements with existing inline \u003ccode\u003estyle\u003c/code\u003e attributes. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e!important\u003c/code\u003e lost when \u003ccode\u003eminify_css\u003c/code\u003e is enabled due to separator mismatch during property lookup. \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/682\"\u003e#682\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/Stranger6667/css-inline/commit/7d6847862f337e583adb505f2c606a57ddaf9746\"\u003e\u003ccode\u003e7d68478\u003c/code\u003e\u003c/a\u003e chore(c): Release 0.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/ae5802548375552285bd9ebb5538425e2b1f18a4\"\u003e\u003ccode\u003eae58025\u003c/code\u003e\u003c/a\u003e chore(python): Release 0.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/63aa891d1ed981ee3c295d540cb2c70dab6f5970\"\u003e\u003ccode\u003e63aa891\u003c/code\u003e\u003c/a\u003e build(deps): bump picomatch from 2.3.1 to 2.3.2 in /bindings/javascript\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/e813347ea8817c802b1efa8256ffbbbccb63d4f2\"\u003e\u003ccode\u003ee813347\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump nokogiri from 1.18.10 to 1.19.1 in /bindings/ruby\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/89f881401b0c0a9d96d5fb1c6efbb0e17ea3bcc6\"\u003e\u003ccode\u003e89f8814\u003c/code\u003e\u003c/a\u003e build(deps): bump flatted from 3.3.3 to 3.4.2 in /bindings/javascript\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/66b1c5cee3a061c4d10c9f375081598ab1812a16\"\u003e\u003ccode\u003e66b1c5c\u003c/code\u003e\u003c/a\u003e docs: Update README \u0026amp; changelogs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/49eccbf06735b6556c90692834c1a408cd65d644\"\u003e\u003ccode\u003e49eccbf\u003c/code\u003e\u003c/a\u003e build(deps): bump undici from 6.22.0 to 6.24.1 in /bindings/javascript\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/e1c92fcdb8188667c4e58552027ee6d5fb88774d\"\u003e\u003ccode\u003ee1c92fc\u003c/code\u003e\u003c/a\u003e build(deps): bump rustls-webpki in /bindings/ruby/ext/css_inline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/e34094f33bc8e9d8e56f5ec6ea533e3d35bb2203\"\u003e\u003ccode\u003ee34094f\u003c/code\u003e\u003c/a\u003e build(deps): bump rustls-webpki in /bindings/ruby\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/77d743cbe0e839cc2a2d60f10bc2ba3ccbdf6bd3\"\u003e\u003ccode\u003e77d743c\u003c/code\u003e\u003c/a\u003e build(deps): bump quinn-proto in /bindings/ruby/ext/css_inline\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Stranger6667/css-inline/compare/c-v0.20.0...c-v0.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/MTES-MCT/monitorenv/pull/2830","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MTES-MCT%2Fmonitorenv/issues/2830","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2830/packages"}},{"old_version":"0.18.3","new_version":"0.18.4","update_type":"patch","path":null,"pr_created_at":"2026-03-23T08:35:16.000Z","version_change":"0.18.3 → 0.18.4","issue":{"uuid":"4119184945","node_id":"PR_kwDOROLWo87Mm-cP","number":47,"state":"open","title":"chore(deps): Bump the python-minor group across 1 directory with 10 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-03-23T08:35:16.000Z","updated_at":"2026-03-23T08:35:17.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python-minor","update_count":10,"packages":[{"name":"fastapi","old_version":"0.133.0","new_version":"0.135.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.41.0","new_version":"0.42.0"},{"name":"sqlalchemy","old_version":"2.0.47","new_version":"2.0.48"},{"name":"geoalchemy2","old_version":"0.18.3","new_version":"0.18.4","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"redis","old_version":"7.2.0","new_version":"7.3.0","repository_url":"https://github.com/redis/redis-py"},{"name":"hiredis","old_version":"3.3.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"sentry-sdk","old_version":"2.53.0","new_version":"2.55.0"},{"name":"testcontainers","old_version":"4.14.1","new_version":"4.14.2"},{"name":"coverage","old_version":"7.13.4","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"ruff","old_version":"0.15.2","new_version":"0.15.7","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.133.0` | `0.135.1` |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.41.0` | `0.42.0` |\n| [sqlalchemy[asyncio]](https://github.com/sqlalchemy/sqlalchemy) | `2.0.47` | `2.0.48` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.18.3` | `0.18.4` |\n| [redis](https://github.com/redis/redis-py) | `7.2.0` | `7.3.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.3.0` | `3.3.1` |\n| [sentry-sdk[fastapi]](https://github.com/getsentry/sentry-python) | `2.53.0` | `2.55.0` |\n| [testcontainers[postgres,redis]](https://github.com/testcontainers/testcontainers-python) | `4.14.1` | `4.14.2` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.4` | `7.13.5` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.2` | `0.15.7` |\n\n\nUpdates `fastapi` from 0.133.0 to 0.135.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.135.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed in the request async exit stack. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15038\"\u003e#15038\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15007\"\u003e#15007\u003c/a\u003e by \u003ca href=\"https://github.com/adityagiri3600\"\u003e\u003ccode\u003e@​adityagiri3600\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update Skill, optimize context, trim and refactor into references. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15031\"\u003e#15031\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👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15037\"\u003e#15037\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 FastAPI People - Contributors and Translators. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15029\"\u003e#15029\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 FastAPI GitHub topic repositories. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15036\"\u003e#15036\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Server Sent Events. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15030\"\u003e#15030\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/server-sent-events/\"\u003eServer-Sent Events (SSE)\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.134.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for streaming JSON Lines and binary data with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15022\"\u003e#15022\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eThis also upgrades Starlette from \u003ccode\u003e\u0026gt;=0.40.0\u003c/code\u003e to \u003ccode\u003e\u0026gt;=0.46.0\u003c/code\u003e, as it's needed to properly unrwap and re-raise exceptions from exception groups.\u003c/li\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/stream-json-lines/\"\u003eStream JSON Lines\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAnd new docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/stream-data/\"\u003eStream Data\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update Library Agent Skill with streaming responses. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15024\"\u003e#15024\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 docs for responses and new stream with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15023\"\u003e#15023\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 \u003ccode\u003eawait\u003c/code\u003e in \u003ccode\u003eStreamingResponse\u003c/code\u003e code example to allow cancellation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14681\"\u003e#14681\u003c/a\u003e by \u003ca href=\"https://github.com/casperdcl\"\u003e\u003ccode\u003e@​casperdcl\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Rename \u003ccode\u003edocs_src/websockets\u003c/code\u003e to \u003ccode\u003edocs_src/websockets_\u003c/code\u003e to avoid import errors. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14979\"\u003e#14979\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Run tests with \u003ccode\u003epytest-xdist\u003c/code\u003e and \u003ccode\u003epytest-cov\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14992\"\u003e#14992\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.133.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add FastAPI Agent Skill. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14982\"\u003e#14982\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eRead more about it in \u003ca href=\"https://tiangolo.com/ideas/library-agent-skills/\"\u003eLibrary Agent Skills\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Fix all tests are skipped on Windows. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14994\"\u003e#14994\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/ca5f60ee72f35fb2134d8b5d26bbb75965bcff66\"\u003e\u003ccode\u003eca5f60e\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/87f75aa62c1dde90f4dfbfa7fc2c33127d757d34\"\u003e\u003ccode\u003e87f75aa\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8a9258b169dce3e321f614c14b1877c18750d6c7\"\u003e\u003ccode\u003e8a9258b\u003c/code\u003e\u003c/a\u003e 🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/60385078233e00f9f13307ff038f12f88fc5c240\"\u003e\u003ccode\u003e6038507\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c796ba4f46a6e81477ce44eabe13fd01d82f2c4a\"\u003e\u003ccode\u003ec796ba4\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Experts (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15037\"\u003e#15037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b24aa03b888b78dd2ec6540d47c84a8676d6a7cb\"\u003e\u003ccode\u003eb24aa03\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2c6104752a97273976c8a63e897de98a48f19ce0\"\u003e\u003ccode\u003e2c61047\u003c/code\u003e\u003c/a\u003e ✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15007\"\u003e#15007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3bbeef8a2687fdf34d4de2d304a59135a30e63c\"\u003e\u003ccode\u003ee3bbeef\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d726c8cb2b8e00279487fa8661a5276d2ff2125f\"\u003e\u003ccode\u003ed726c8c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cf514e6d3839ca69ca45a55a6f862e74892339b9\"\u003e\u003ccode\u003ecf514e6\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Contributors and Translators (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15029\"\u003e#15029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.133.0...0.135.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.41.0 to 0.42.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[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.42.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEscape brackets and backslash in httptools \u003ccode\u003eHEADER_RE\u003c/code\u003e regex (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2824\"\u003e#2824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix multiple issues in websockets sans-io implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2825\"\u003e#2825\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2825\"\u003eKludex/uvicorn#2825\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.41.0...0.42.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.41.0...0.42.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0 (March 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEscape brackets and backslash in httptools \u003ccode\u003eHEADER_RE\u003c/code\u003e regex (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2824\"\u003e#2824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix multiple issues in websockets sans-io implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2825\"\u003e#2825\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/02bed6f8c38e74f684bb0e572977a9bfdc1f6fea\"\u003e\u003ccode\u003e02bed6f\u003c/code\u003e\u003c/a\u003e Version 0.42.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2852\"\u003e#2852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d8f25013161d8206e129e39bf48432d3a85e1744\"\u003e\u003ccode\u003ed8f2501\u003c/code\u003e\u003c/a\u003e chore: pre-create Config objects in benchmarks to measure protocol hot paths ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9dbb7836bb0fdb446d083ecd8dc5a2a95bb96b98\"\u003e\u003ccode\u003e9dbb783\u003c/code\u003e\u003c/a\u003e Add WebSocket protocol benchmarks for wsproto and websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2849\"\u003e#2849\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/b3c69da8c1a36e1834e614abe38243671e156077\"\u003e\u003ccode\u003eb3c69da\u003c/code\u003e\u003c/a\u003e Use bytearray for request body accumulation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3f3ebee20f46504a3f7279dd72f9c24ce9070b11\"\u003e\u003ccode\u003e3f3ebee\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003epytest-xdist\u003c/code\u003e for CodSpeed benchmark runs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2847\"\u003e#2847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d072de754f825bee4710363dd49d41efd5285dcc\"\u003e\u003ccode\u003ed072de7\u003c/code\u003e\u003c/a\u003e Add fragmented body benchmark for chunked body accumulation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2846\"\u003e#2846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/e300c2c75d71bea6f8d1799ca6f182f1e5583aaa\"\u003e\u003ccode\u003ee300c2c\u003c/code\u003e\u003c/a\u003e Add CodSpeed benchmark suite for HTTP protocol hot paths (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2844\"\u003e#2844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/1fa697651bacf10d72f74de104ead814ce6fcdc0\"\u003e\u003ccode\u003e1fa6976\u003c/code\u003e\u003c/a\u003e Escape brackets and backslash in httptools HEADER_RE regex (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2824\"\u003e#2824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/59ec1de7a4f07afbd139812f033f3af8b784de74\"\u003e\u003ccode\u003e59ec1de\u003c/code\u003e\u003c/a\u003e Fix multiple issues in websockets sansio implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2825\"\u003e#2825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2fc0efcdd958abd3adbe6ea19682408d6b2e1b18\"\u003e\u003ccode\u003e2fc0efc\u003c/code\u003e\u003c/a\u003e Clarify Windows asyncio event loop selection in docs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2843\"\u003e#2843\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.41.0...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy[asyncio]` from 2.0.47 to 2.0.48\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[asyncio]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.48\u003c/h1\u003e\n\u003cp\u003eReleased: March 2, 2026\u003c/p\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [bug]\u003c/strong\u003e Fixed a critical issue in \u003ccode\u003eEngine\u003c/code\u003e where connections created in\nconjunction with the \u003ccode\u003eDialectEvents.do_connect()\u003c/code\u003e event listeners\nwould receive shared, mutable collections for the connection arguments,\nleading to a variety of potential issues including unlimited growth of the\nargument list as well as elements within the parameter dictionary being\nshared among concurrent connection calls.  In particular this could impact\ndo_connect routines making use of complex mutable authentication\nstructures.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13144\"\u003e#13144\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geoalchemy2` from 0.18.3 to 0.18.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: fix shapely import by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/588\"\u003egeoalchemy/geoalchemy2#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/589\"\u003egeoalchemy/geoalchemy2#589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Make Coveralls optional since the service is down at the moment by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/590\"\u003egeoalchemy/geoalchemy2#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: try the official Coveralls action by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/592\"\u003egeoalchemy/geoalchemy2#592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.4 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/591\"\u003egeoalchemy/geoalchemy2#591\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Move to the official Coveralls action - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Fix shapely import - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\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/geoalchemy/geoalchemy2/commit/beb96c39754704a2ec712de3857d72b8a8ecc4d3\"\u003e\u003ccode\u003ebeb96c3\u003c/code\u003e\u003c/a\u003e Release: 0.18.4 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/6266c25a12b3d406c403db2112e7c55bf3739d97\"\u003e\u003ccode\u003e6266c25\u003c/code\u003e\u003c/a\u003e CI: Move to the official Coveralls action (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f402f6347454374b7719e612a5ebe5a1a766c8fa\"\u003e\u003ccode\u003ef402f63\u003c/code\u003e\u003c/a\u003e CI: Make Coveralls optional since the service is down at the moment (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/590\"\u003e#590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/36ebd0f650d1c60b2e24c896d4662818f0162414\"\u003e\u003ccode\u003e36ebd0f\u003c/code\u003e\u003c/a\u003e Fix: fix setuptools deprecation warning (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f11a1dadb94a31272cb58f3ef04f07490d174d34\"\u003e\u003ccode\u003ef11a1da\u003c/code\u003e\u003c/a\u003e Fix: Fix shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.2.0 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eOpenTelemetry Native Metrics Support for asynchronous clients\u003c/strong\u003e\nAdded comprehensive OpenTelemetry metrics support for asynchronous clients following the \u003ca href=\"https://opentelemetry.io/docs/specs/semconv/database/database-metrics/\"\u003eOpenTelemetry Database Client Semantic Conventions\u003c/a\u003e.\nMetric groups include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCommand metrics: Operation duration with retry tracking\u003c/li\u003e\n\u003cli\u003eConnection basic: Connection count and creation time\u003c/li\u003e\n\u003cli\u003eResiliency: Errors, handoffs, timeout relaxation\u003c/li\u003e\n\u003cli\u003eConnection advanced: Wait time and use time\u003c/li\u003e\n\u003cli\u003ePubsub metrics: Published and received messages\u003c/li\u003e\n\u003cli\u003eStream metrics: Processing duration and maintenance notifications\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded OTel instrumentation and metrics export for async client (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3977\"\u003e#3977\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[async] Adding access to cluster client's nodes_manager and set_response_callback in ClusterPipeline objects (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3989\"\u003e#3989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(connection): Ensure we have an initialized protocol in connection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3981\"\u003e#3981\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use KeysT for blpop and brpop keys parameter type annotation (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3987\"\u003e#3987\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3990\"\u003e#3990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3985\"\u003e#3985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: replace 3 bare except clauses with except Exception (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3980\"\u003e#3980\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/turanalmammadov\"\u003e\u003ccode\u003e@​turanalmammadov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/haosenwang1018\"\u003e\u003ccode\u003e@​haosenwang1018\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/Medno\"\u003e\u003ccode\u003e@​Medno\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.2.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle connection attributes conditionally for metrics and set connection data on exceptions in cluster error handling (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3964\"\u003e#3964\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚠️ Deprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved batch_size and consumer_name attributes from OTel metrics (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3978\"\u003e#3978\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixing error handling of connection buffer purging of closed connections. Enabling troubleshooting logging for maintenance notifications e2e tests. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3971\"\u003e#3971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix protocol validation: replace finally with else and store parsed int (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3965\"\u003e#3965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn copies from _get_free/in_use_connections and fix async _mock (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3967\"\u003e#3967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing shard channel message types to async PubSub (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3966\"\u003e#3966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix issues with ClusterPipeline connection management (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3804\"\u003e#3804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(pubsub): avoid UnicodeDecodeError on reconnect with binary channel names (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHold references to ClusterNode disconnect task (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3826\"\u003e#3826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove remaining imports of typing_extensions (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3873\"\u003e#3873\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/dotlambda\"\u003e\u003ccode\u003e@​dotlambda\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/rhoboro\"\u003e\u003ccode\u003e@​rhoboro\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/skylarkoo7\"\u003e\u003ccode\u003e@​skylarkoo7\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/praboud\"\u003e\u003ccode\u003e@​praboud\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/8ecbc7a728792ab9c71078cb330a64c225cb3351\"\u003e\u003ccode\u003e8ecbc7a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/11043df86ed5f892cde1f34f08f3450f13bb6339\"\u003e\u003ccode\u003e11043df\u003c/code\u003e\u003c/a\u003e typing: accept single-key input for blpop and brpop (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3990\"\u003e#3990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d9581250202123ebf68d299e8f2ea79fa9bd7210\"\u003e\u003ccode\u003ed958125\u003c/code\u003e\u003c/a\u003e fix: use KeysT for blpop and brpop keys parameter type annotation (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3987\"\u003e#3987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/75bf91b8a28bfc3f8417e58d1b78bd112ffcf6de\"\u003e\u003ccode\u003e75bf91b\u003c/code\u003e\u003c/a\u003e [async] Adding access to cluster client's nodes_manager and set_response_call...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/abf5bcb2ded3f393cd3d74803b058df325e3755c\"\u003e\u003ccode\u003eabf5bcb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3985\"\u003e#3985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/5b0303bf90792cfdfff951f446c71ec7baf83e0e\"\u003e\u003ccode\u003e5b0303b\u003c/code\u003e\u003c/a\u003e fix: replace 3 bare except clauses with except Exception (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3980\"\u003e#3980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/e9fba8689f74e4aea45c8b9d75e517e29c54a76a\"\u003e\u003ccode\u003ee9fba86\u003c/code\u003e\u003c/a\u003e Added OTel instrumentation and metrics export for async client (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3977\"\u003e#3977\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/7ce513d262288fb2d79a1d59dff0cf5ff0cb13b0\"\u003e\u003ccode\u003e7ce513d\u003c/code\u003e\u003c/a\u003e fix(connection): Ensure we have an initialized protocol in connection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3981\"\u003e#3981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/8e3a5b2f10677c58951fd04f79db1802f79a9bea\"\u003e\u003ccode\u003e8e3a5b2\u003c/code\u003e\u003c/a\u003e remove remaining imports of typing_extensions (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3873\"\u003e#3873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/5b46430e23748d85140b143cbce02523e284482e\"\u003e\u003ccode\u003e5b46430\u003c/code\u003e\u003c/a\u003e Hold references to ClusterNode disconnect task (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3826\"\u003e#3826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.2.0...v7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.3.0 to 3.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cp\u003eThis release fixes a compatibility issue with Python 3.15:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMNT: do not use deprecated load_module method (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/pull/218\"\u003eredis/hiredis-py#218\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/tacaswell\"\u003e\u003ccode\u003e@​tacaswell\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3cb8f069006f7138620b065fba973ccc490bde3d\"\u003e\u003ccode\u003e3cb8f06\u003c/code\u003e\u003c/a\u003e Version 3.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/2836c965d28606fecfc8989059edb36a0c4fb320\"\u003e\u003ccode\u003e2836c96\u003c/code\u003e\u003c/a\u003e MNT: do not use deprecated load_module method (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/218\"\u003e#218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.3.0...v3.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sdk[fastapi]` from 2.53.0 to 2.55.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk[fastapi]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.55.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003ch4\u003eAnthropic\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRecord finish reasons in AI monitoring spans by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5678\"\u003e#5678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003egen_ai.chat\u003c/code\u003e spans for asynchronous \u003ccode\u003emessages.stream()\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5572\"\u003e#5572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit AI Client Spans for synchronous \u003ccode\u003emessages.stream()\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5565\"\u003e#5565\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet gen_ai.response.id span attribute by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5662\"\u003e#5662\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egen_ai.system\u003c/code\u003e attribute to spans by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5661\"\u003e#5661\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePydantic Ai\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eSupport ImageUrl content type in span instrumentation by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5629\"\u003e#5629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd tool description to execute_tool spans by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5596\"\u003e#5596\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(crons) Add owner field to MonitorConfig by \u003ca href=\"https://github.com/julwhitney13\"\u003e\u003ccode\u003e@​julwhitney13\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5610\"\u003e#5610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(otlp) Add collector_url option to OTLPIntegration by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5603\"\u003e#5603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Truncate list-based message content in AI monitoring by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5631\"\u003e#5631\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(anthropic) Close span on \u003ccode\u003eGeneratorExit\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5643\"\u003e#5643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(celery) Propagate user-set headers by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5581\"\u003e#5581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(langchain) Wrap finish_reason in array for gen_ai span attribute by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5666\"\u003e#5666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(logging) Fix deadlock in log batcher by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5684\"\u003e#5684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(profiler) Prevent buffer race condition during rapid start/stop cycles by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5622\"\u003e#5622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(utils) Avoid double serialization of strings in safe_serialize by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5587\"\u003e#5587\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable unused import ruff check and fix unused imports by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5652\"\u003e#5652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation 📚\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(openai-agents) Remove inapplicable comment by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5495\"\u003e#5495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd AGENTS.md by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5579\"\u003e#5579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eset_attribute\u003c/code\u003e example to changelog by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5578\"\u003e#5578\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003ch4\u003eAnthropic\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCheck system and response ID attributes on spans created by \u003ccode\u003estream()\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5665\"\u003e#5665\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip accumulation logic for unexpected types in streamed response by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5564\"\u003e#5564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFactor out streamed result handling by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5563\"\u003e#5563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStream valid JSON by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5641\"\u003e#5641\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop mocking response iterator by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5573\"\u003e#5573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOpenai Agents\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md\"\u003esentry-sdk[fastapi]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.55.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003ch4\u003eAnthropic\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRecord finish reasons in AI monitoring spans by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5678\"\u003e#5678\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003egen_ai.chat\u003c/code\u003e spans for asynchronous \u003ccode\u003emessages.stream()\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5572\"\u003e#5572\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit AI Client Spans for synchronous \u003ccode\u003emessages.stream()\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5565\"\u003e#5565\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet gen_ai.response.id span attribute by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5662\"\u003e#5662\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egen_ai.system\u003c/code\u003e attribute to spans by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5661\"\u003e#5661\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePydantic Ai\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eSupport ImageUrl content type in span instrumentation by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5629\"\u003e#5629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd tool description to execute_tool spans by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5596\"\u003e#5596\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(crons) Add owner field to MonitorConfig by \u003ca href=\"https://github.com/julwhitney13\"\u003e\u003ccode\u003e@​julwhitney13\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5610\"\u003e#5610\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(otlp) Add collector_url option to OTLPIntegration by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5603\"\u003e#5603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(ai) Truncate list-based message content in AI monitoring by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5631\"\u003e#5631\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(anthropic) Close span on \u003ccode\u003eGeneratorExit\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5643\"\u003e#5643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(celery) Propagate user-set headers by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5581\"\u003e#5581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(langchain) Wrap finish_reason in array for gen_ai span attribute by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5666\"\u003e#5666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(logging) Fix deadlock in log batcher by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5684\"\u003e#5684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(profiler) Prevent buffer race condition during rapid start/stop cycles by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5622\"\u003e#5622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(utils) Avoid double serialization of strings in safe_serialize by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5587\"\u003e#5587\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable unused import ruff check and fix unused imports by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5652\"\u003e#5652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation 📚\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(openai-agents) Remove inapplicable comment by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5495\"\u003e#5495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd AGENTS.md by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5579\"\u003e#5579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eset_attribute\u003c/code\u003e example to changelog by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5578\"\u003e#5578\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal Changes 🔧\u003c/h3\u003e\n\u003ch4\u003eAnthropic\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCheck system and response ID attributes on spans created by \u003ccode\u003estream()\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5665\"\u003e#5665\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip accumulation logic for unexpected types in streamed response by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5564\"\u003e#5564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFactor out streamed result handling by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5563\"\u003e#5563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStream valid JSON by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5641\"\u003e#5641\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop mocking response iterator by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/5573\"\u003e#5573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOpenai Agents\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/038a429023b9092503f65d554e7c2ad230bba542\"\u003e\u003ccode\u003e038a429\u003c/code\u003e\u003c/a\u003e release: 2.55.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/b29c4bb5ed300d63b4f78eeb1c69c1c6e0f9ec9b\"\u003e\u003ccode\u003eb29c4bb\u003c/code\u003e\u003c/a\u003e fix(logging): Fix deadlock in log batcher (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5684\"\u003e#5684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/b905cd3297fd824fc0f7ce41c9d67a4e85b43fc2\"\u003e\u003ccode\u003eb905cd3\u003c/code\u003e\u003c/a\u003e feat(anthropic): Record finish reasons in AI monitoring spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5678\"\u003e#5678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/6ea663f71d404bf7a261f31a22602ed85fb93544\"\u003e\u003ccode\u003e6ea663f\u003c/code\u003e\u003c/a\u003e fix(langchain): Wrap finish_reason in array for gen_ai span attribute (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5666\"\u003e#5666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/6345af9598de0dd730e85048e5fc68733bbd8b98\"\u003e\u003ccode\u003e6345af9\u003c/code\u003e\u003c/a\u003e fix(ai): Truncate list-based message content in AI monitoring (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5631\"\u003e#5631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/01346a9f2d6c900fed8d830c31143a6c089f0fc2\"\u003e\u003ccode\u003e01346a9\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/create-github-app-token from 2.2.1 to 3.0.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5667\"\u003e#5667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/0b946246062956e5228329b3a140c1ad3891800b\"\u003e\u003ccode\u003e0b94624\u003c/code\u003e\u003c/a\u003e build(deps): bump getsentry/testing-ai-sdk-integrations from 285c012e522f2415...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/39cf94d458093392c78f92aa167f566827b0f30d\"\u003e\u003ccode\u003e39cf94d\u003c/code\u003e\u003c/a\u003e build(deps): bump getsentry/craft from 2.23.1 to 2.24.1 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5668\"\u003e#5668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/ada153bcdc96813064bacccbc523d66cc1368dfe\"\u003e\u003ccode\u003eada153b\u003c/code\u003e\u003c/a\u003e ref: Add cont profiling support to span first (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5672\"\u003e#5672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/0b5f4f85b7d7fd93a6f8dc7932e6b3599c7b3da9\"\u003e\u003ccode\u003e0b5f4f8\u003c/code\u003e\u003c/a\u003e ci: 🤖 Update test matrix with new releases (03/16) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5671\"\u003e#5671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-python/compare/2.53.0...2.55.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `testcontainers[postgres,redis]` from 4.14.1 to 4.14.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/testcontainers/testcontainers-python/releases\"\u003etestcontainers[postgres,redis]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etestcontainers: v4.14.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/testcontainers/testcontainers-python/compare/testcontainers-v4.14.1...testcontainers-v4.14.2\"\u003e4.14.2\u003c/a\u003e (2026-03-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ekafka:\u003c/strong\u003e allow configurable listener name and security protocol (\u003ca href=\"https://redirect.github.com/testcontainers/testcontainers-python/issues/966\"\u003e#966\u003c/a\u003e) (\u003ca href=\"https://github.com/testcontainers/testcontainers-python/commit/44dd40b48c3a5020b487bae5d460124d9e594ac3\"\u003e44dd40b\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/testcontainers/testcontainers-python/blob/main/CHANGELOG.md\"\u003etestcontainers[postgres,redis]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/testcontainers/testcontainers-python/compare/testcontainers-v4.14.1...testcontainers-v4.14.2\"\u003e4.14.2\u003c/a\u003e (2026-03-18)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ekafka:\u003c/strong\u003e allow configurable listener name and security protocol (\u003ca href=\"https://redirect.github.com/testcontainers/testcontainers-python/issues/966\"\u003e#966\u003c/a\u003e) (\u003ca href=\"https://github.com/testcontainers/testcontainers-python/commit/44dd40b48c3a5020b487bae5d460124d9e594ac3\"\u003e44dd40b\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/testcontainers/testcontainers-python/commit/5c67efb8e51885021e6d41cd8bc60300978a8377\"\u003e\u003ccode\u003e5c67efb\u003c/code\u003e\u003c/a\u003e chore(main): release testcontainers 4.14.2 (\u003ca href=\"https://redirect.github.com/testcontainers/testcontainers-python/issues/969\"\u003e#969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/testcontainers/testcontainers-python/commit/44dd40b48c3a5020b487bae5d460124d9e594ac3\"\u003e\u003ccode\u003e44dd40b\u003c/code\u003e\u003c/a\u003e feat(kafka): allow configurable listener name and security protocol (\u003ca href=\"https://redirect.github.com/testcontainers/testcontainers-python/issues/966\"\u003e#966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/testcontainers/testcontainers-python/commit/a78475a92dabfc1b7166320f851280ab783f6b8a\"\u003e\u003ccode\u003ea78475a\u003c/code\u003e\u003c/a\u003e chore(main): Migrate to uv (\u003ca href=\"https://redirect.github.com/testcontainers/testcontainers-python/issues/960\"\u003e#960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/testcontainers/testcontainers-python/compare/testcontainers-v4.14.1...testcontainers-v4.14.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.4 to 7.13.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.5 — 2026-03-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eissue 2138\u003c/code\u003e_ describes a memory leak that happened when repeatedly\nusing the Coverage API with in-memory data. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the markdown-formatted coverage report didn't fully escape special\ncharacters in file paths (\u003ccode\u003eissue 2141\u003c/code\u003e\u003cem\u003e). This would be very unlikely to\ncause a problem, but now it's done properly, thanks to \u003ccode\u003eEllie Ayla \u0026lt;pull 2142_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the C extension wouldn't build on VS2019, but now it does (\u003ccode\u003eissue 2145\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2138: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2138\"\u003ecoveragepy/coveragepy#2138\u003c/a\u003e\n.. _issue 2141: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2141\"\u003ecoveragepy/coveragepy#2141\u003c/a\u003e\n.. _pull 2142: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2142\"\u003ecoveragepy/coveragepy#2142\u003c/a\u003e\n.. _issue 2145: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2145\"\u003ecoveragepy/coveragepy#2145\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-4:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c88da144eef8cf78424331e5cbbde3e002eef43f\"\u003e\u003ccode\u003ec88da14\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e2ac3e1ef644370101ff365acad3431d16076512\"\u003e\u003ccode\u003ee2ac3e1\u003c/code\u003e\u003c/a\u003e build: sample HTML shouldn't include the status.json file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/910f8f336541c2dcb4e9ec468144c7eb4a7779ac\"\u003e\u003ccode\u003e910f8f3\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3a4819c24d3d20cb2670b99141517812ffa3fab0\"\u003e\u003ccode\u003e3a4819c\u003c/code\u003e\u003c/a\u003e style: make workflows more uniform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2a53705f5fe588158b8a8d37ff3beee86388b9e4\"\u003e\u003ccode\u003e2a53705\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 4 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e7c878d201db819416b978150944d9a842d22b18\"\u003e\u003ccode\u003ee7c878d\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ab4db406a9c35acf977cf3ddb94a78d696b77bc5\"\u003e\u003ccode\u003eab4db40\u003c/code\u003e\u003c/a\u003e build: use --generate-hashes when pinning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a438753eef870441044cef588e29ce4b9a28adf1\"\u003e\u003ccode\u003ea438753\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/7b33457d2c6367dfd5a563239998b3980444e090\"\u003e\u003ccode\u003e7b33457\u003c/code\u003e\u003c/a\u003e refactor: some leftover pyupgrade 3.10 bits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2ff968db91a7cdafe6f6569ac7659a3a93a2da07\"\u003e\u003ccode\u003e2ff968d\u003c/code\u003e\u003c/a\u003e refactor: this type wasn't used anywhere\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.4...7.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.2 to 0.15.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.7\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisplay output severity in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23845\"\u003e#23845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't show \u003ccode\u003enoqa\u003c/code\u003e hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't return code actions for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23905\"\u003e#23905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd company AI policy to contributing guide (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24021\"\u003e#24021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument editor features for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23924\"\u003e#23924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse PEP 639 license information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19661\"\u003e#19661\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tmimmanuel\"\u003e\u003ccode\u003e@​tmimmanuel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statxc\"\u003e\u003ccode\u003e@​statxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.7\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.7/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.15.7/ruff-installer.ps1 | iex\u0026quot;\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.7\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisplay output severity in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23845\"\u003e#23845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't show \u003ccode\u003enoqa\u003c/code\u003e hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't return code actions for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23905\"\u003e#23905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd company AI policy to contributing guide (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24021\"\u003e#24021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument editor features for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23924\"\u003e#23924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse PEP 639 license information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19661\"\u003e#19661\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tmimmanuel\"\u003e\u003ccode\u003e@​tmimmanuel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statxc\"\u003e\u003ccode\u003e@​statxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-12.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003elazy\u003c/code\u003e import parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23755\"\u003e#23755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for star-unpacking of comprehensions (PEP 798) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23788\"\u003e#23788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject semantic syntax errors for lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23757\"\u003e#23757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop a few rules from the preview default set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23879\"\u003e#23879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag \u003ccode\u003eVariable.get()\u003c/code\u003e calls outside of task execution context (\u003ccode\u003eAIR003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23584\"\u003e#23584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag runtime-varying values in DAG/task constructor arguments (\u003ccode\u003eAIR304\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23631\"\u003e#23631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003edelattr-with-constant\u003c/code\u003e (\u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23737\"\u003e#23737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0ef39de46c006994fb1e90f7bd4ba09c0b2c1f79\"\u003e\u003ccode\u003e0ef39de\u003c/code\u003e\u003c/a\u003e Bump 0.15.7 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24049\"\u003e#24049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/beb543b5c666be9fd3f13c88df818f202b63e9d0\"\u003e\u003ccode\u003ebeb543b\u003c/code\u003e\u003c/a\u003e [ty] ecosystem-analyzer: Fail on newly panicking projects (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24043\"\u003e#24043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/378fe730929ccd67a7f2426b3012093da814b31d\"\u003e\u003ccode\u003e378fe73\u003c/code\u003e\u003c/a\u003e Don't show noqa hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b5665bd18eecab4d3b5ab1256b36904cd99a4c57\"\u003e\u003ccode\u003eb5665bd\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6e20f2219020e61eeae29458013d2d3684f75a79\"\u003e\u003ccode\u003e6e20f22\u003c/code\u003e\u003c/a\u003e test: migrate \u003ccode\u003eshow_settings\u003c/code\u003e and \u003ccode\u003eversion\u003c/code\u003e tests to use \u003ccode\u003eCliTest\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23702\"\u003e#23702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f99b284c1fe1399a82da7f6669467488017d44a7\"\u003e\u003ccode\u003ef99b284\u003c/code\u003e\u003c/a\u003e Drain file watcher events during test setup (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24030\"\u003e#24030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/744c996c35016a8c0e05aa2823f4f822ac7b842c\"\u003e\u003ccode\u003e744c996\u003c/code\u003e\u003c/a\u003e [ty] Filter out unsatisfiable inference attempts during generic call narrowin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/16160958bdafb6106b6fffc72ffe2e4db0c0ac33\"\u003e\u003ccode\u003e1616095\u003c/code\u003e\u003c/a\u003e [ty] Avoid inferring intersection types for call arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23933\"\u003e#23933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7f275f431bf8c60d59601b74d441e9f4bef89f35\"\u003e\u003ccode\u003e7f275f4\u003c/code\u003e\u003c/a\u003e [ty] Pin mypy_primer in \u003ccode\u003esetup_primer_project.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24020\"\u003e#24020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7255e362e4b171a641222279cd28d2ca88a74fdc\"\u003e\u003ccode\u003e7255e36\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.2...0.15.7\"\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/MK023/TorinoParking/pull/47","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MK023%2FTorinoParking/issues/47","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/47/packages"}},{"old_version":"0.18.3","new_version":"0.18.4","update_type":"patch","path":null,"pr_created_at":"2026-03-06T12:36:40.000Z","version_change":"0.18.3 → 0.18.4","issue":{"uuid":"4034008230","node_id":"PR_kwDOPhFbmM7Ifdm3","number":533,"state":"open","title":"build(deps): bump geoalchemy2 from 0.18.3 to 0.18.4","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-03-06T12:36:40.000Z","updated_at":"2026-03-08T23:12:22.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"geoalchemy2","old_version":"0.18.3","new_version":"0.18.4","repository_url":"https://github.com/geoalchemy/geoalchemy2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) from 0.18.3 to 0.18.4.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: fix shapely import by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/588\"\u003egeoalchemy/geoalchemy2#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/589\"\u003egeoalchemy/geoalchemy2#589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Make Coveralls optional since the service is down at the moment by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/590\"\u003egeoalchemy/geoalchemy2#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: try the official Coveralls action by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/592\"\u003egeoalchemy/geoalchemy2#592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.4 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/591\"\u003egeoalchemy/geoalchemy2#591\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Move to the official Coveralls action - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Fix shapely import - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\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/geoalchemy/geoalchemy2/commit/beb96c39754704a2ec712de3857d72b8a8ecc4d3\"\u003e\u003ccode\u003ebeb96c3\u003c/code\u003e\u003c/a\u003e Release: 0.18.4 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/6266c25a12b3d406c403db2112e7c55bf3739d97\"\u003e\u003ccode\u003e6266c25\u003c/code\u003e\u003c/a\u003e CI: Move to the official Coveralls action (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f402f6347454374b7719e612a5ebe5a1a766c8fa\"\u003e\u003ccode\u003ef402f63\u003c/code\u003e\u003c/a\u003e CI: Make Coveralls optional since the service is down at the moment (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/590\"\u003e#590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/36ebd0f650d1c60b2e24c896d4662818f0162414\"\u003e\u003ccode\u003e36ebd0f\u003c/code\u003e\u003c/a\u003e Fix: fix setuptools deprecation warning (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f11a1dadb94a31272cb58f3ef04f07490d174d34\"\u003e\u003ccode\u003ef11a1da\u003c/code\u003e\u003c/a\u003e Fix: Fix shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\"\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=geoalchemy2\u0026package-manager=pip\u0026previous-version=0.18.3\u0026new-version=0.18.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/TrigpointingUK/platform/pull/533","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/TrigpointingUK%2Fplatform/issues/533","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/533/packages"}},{"old_version":"0.18.1","new_version":"0.18.4","update_type":"patch","path":null,"pr_created_at":"2026-03-04T04:25:08.000Z","version_change":"0.18.1 → 0.18.4","issue":{"uuid":"4019951657","node_id":"PR_kwDOEcrRgc7Hxfmb","number":4878,"state":"open","title":"[Tech] Python - Bump the non-major-dependencies group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["tech. enhancement","dependencies"],"assignees":["VincentAntoine"],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-04T04:25:08.000Z","updated_at":"2026-03-04T04:26:14.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[Tech] Python - Bump","group_name":"non-major-dependencies","update_count":10,"packages":[{"name":"coverage","old_version":"7.13.3","new_version":"7.13.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"geoalchemy2","old_version":"0.18.1","new_version":"0.18.4","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"css-inline","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/Stranger6667/css-inline"},{"name":"pypdf","old_version":"6.6.2","new_version":"6.7.5","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"clickhouse-connect","old_version":"0.10.0","new_version":"0.13.0","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"prefect","old_version":"3.6.9","new_version":"3.6.20","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"plotly","old_version":"6.5.2","new_version":"6.6.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"sphinx-autoapi","old_version":"3.6.1","new_version":"3.7.0","repository_url":"https://github.com/readthedocs/sphinx-autoapi"}],"path":null,"ecosystem":"pip"},"body":"Bumps the non-major-dependencies group with 10 updates in the /pipeline directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.3` | `7.13.4` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.18.1` | `0.18.4` |\n| [css-inline](https://github.com/Stranger6667/css-inline) | `0.19.1` | `0.20.0` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.6.2` | `6.7.5` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.10.0` | `0.13.0` |\n| [prefect](https://github.com/PrefectHQ/prefect) | `3.6.9` | `3.6.20` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.5.2` | `6.6.0` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `3.0.2` | `3.1.0` |\n| [sphinx-autoapi](https://github.com/readthedocs/sphinx-autoapi) | `3.6.1` | `3.7.0` |\n\n\nUpdates `coverage` from 7.13.3 to 7.13.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.4 — 2026-02-09\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the third-party code fix in 7.13.3 required examining the parent\ndirectories where coverage was run. In the unusual situation that one of the\nparent directories is unreadable, a PermissionError would occur, as\ndescribed in \u003ccode\u003eissue 2129\u003c/code\u003e_. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: in test suites that change sys.path, coverage.py could fail with\n\u0026quot;RuntimeError: Set changed size during iteration\u0026quot; as described and fixed in\n\u003ccode\u003epull 2130\u003c/code\u003e_. Thanks, Noah Fatsi.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWe now publish ppc64le wheels, thanks to \u003ccode\u003ePankhudi Jain \u0026lt;pull 2121_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2121: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2121\"\u003ecoveragepy/coveragepy#2121\u003c/a\u003e\n.. _issue 2129: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2129\"\u003ecoveragepy/coveragepy#2129\u003c/a\u003e\n.. _pull 2130: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2130\"\u003ecoveragepy/coveragepy#2130\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-3:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/4f78d57f83ff8a4976043e8a8fcea24b91891840\"\u003e\u003ccode\u003e4f78d57\u003c/code\u003e\u003c/a\u003e build: no need to publish status.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/f8616ff5e6386648aa40300e36c6cecda79a1faa\"\u003e\u003ccode\u003ef8616ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/fcf8c68db986970e6000bf75ec3c3115ede867df\"\u003e\u003ccode\u003efcf8c68\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/189ecfd000867e5c74e7d74ee3bd75742d5d584d\"\u003e\u003ccode\u003e189ecfd\u003c/code\u003e\u003c/a\u003e docs: thanks Pankhudi Jain for ppc64le wheels \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2121\"\u003e#2121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/58aade0eb92d9d1e3755c65a5cf7a951e7bd6c6a\"\u003e\u003ccode\u003e58aade0\u003c/code\u003e\u003c/a\u003e build: add support for ppc64le architecture (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2121\"\u003e#2121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8ea42c874fbfc96535156300225bda22bc93ac68\"\u003e\u003ccode\u003e8ea42c8\u003c/code\u003e\u003c/a\u003e chore: bump actions/attest-build-provenance (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2131\"\u003e#2131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c09595f70758b78156efbd7c8f034799d09322aa\"\u003e\u003ccode\u003ec09595f\u003c/code\u003e\u003c/a\u003e docs: Janine put a lot of effort into debugging issue \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2128\"\u003e#2128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8ee1760f40b8822aa2b11ff95ab63481be68a8a0\"\u003e\u003ccode\u003e8ee1760\u003c/code\u003e\u003c/a\u003e docs: Greg wrote a great issue: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2129\"\u003e#2129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/76ba0437611fc2787cb0450dc94b02bc2848fdee\"\u003e\u003ccode\u003e76ba043\u003c/code\u003e\u003c/a\u003e docs: thanks, Noah Fatsi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/371fcc5727e9d8fba816061756af94646b4bcfbb\"\u003e\u003ccode\u003e371fcc5\u003c/code\u003e\u003c/a\u003e fix: set fixed paths_list in TreeMatcher init (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2130\"\u003e#2130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.3...7.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.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/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\u003c/blockquote\u003e\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\u003c/blockquote\u003e\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.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 `geoalchemy2` from 0.18.1 to 0.18.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: fix shapely import by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/588\"\u003egeoalchemy/geoalchemy2#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/589\"\u003egeoalchemy/geoalchemy2#589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Make Coveralls optional since the service is down at the moment by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/590\"\u003egeoalchemy/geoalchemy2#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: try the official Coveralls action by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/592\"\u003egeoalchemy/geoalchemy2#592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.4 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/591\"\u003egeoalchemy/geoalchemy2#591\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/584\"\u003egeoalchemy/geoalchemy2#584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.3 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/587\"\u003egeoalchemy/geoalchemy2#587\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/575\"\u003egeoalchemy/geoalchemy2#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/576\"\u003egeoalchemy/geoalchemy2#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/577\"\u003egeoalchemy/geoalchemy2#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/578\"\u003egeoalchemy/geoalchemy2#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/580\"\u003egeoalchemy/geoalchemy2#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Fix package discovery by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/581\"\u003egeoalchemy/geoalchemy2#581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.2 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/582\"\u003egeoalchemy/geoalchemy2#582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.2\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Move to the official Coveralls action - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Fix shapely import - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Fix package discovery - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/576\"\u003e#576\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/geoalchemy/geoalchemy2/commit/beb96c39754704a2ec712de3857d72b8a8ecc4d3\"\u003e\u003ccode\u003ebeb96c3\u003c/code\u003e\u003c/a\u003e Release: 0.18.4 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/6266c25a12b3d406c403db2112e7c55bf3739d97\"\u003e\u003ccode\u003e6266c25\u003c/code\u003e\u003c/a\u003e CI: Move to the official Coveralls action (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f402f6347454374b7719e612a5ebe5a1a766c8fa\"\u003e\u003ccode\u003ef402f63\u003c/code\u003e\u003c/a\u003e CI: Make Coveralls optional since the service is down at the moment (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/590\"\u003e#590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/36ebd0f650d1c60b2e24c896d4662818f0162414\"\u003e\u003ccode\u003e36ebd0f\u003c/code\u003e\u003c/a\u003e Fix: fix setuptools deprecation warning (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f11a1dadb94a31272cb58f3ef04f07490d174d34\"\u003e\u003ccode\u003ef11a1da\u003c/code\u003e\u003c/a\u003e Fix: Fix shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/943b456ee3726db7a4b890309d9e864866bd8614\"\u003e\u003ccode\u003e943b456\u003c/code\u003e\u003c/a\u003e Release: 0.18.3 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/55ab8737ae818b47c28a17fb6102b3eb94208c06\"\u003e\u003ccode\u003e55ab873\u003c/code\u003e\u003c/a\u003e Fix: Fix Shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/5e9680be84369cf64c90f70a0f2ddac6cd27f15f\"\u003e\u003ccode\u003e5e9680b\u003c/code\u003e\u003c/a\u003e Release: 0.18.2 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/582\"\u003e#582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/59440f1aa593917b4c27997b22cb9eac54b54040\"\u003e\u003ccode\u003e59440f1\u003c/code\u003e\u003c/a\u003e Build: Fix package discovery (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/b6440a2fe70dd0629d3b882c8fb0e7bfba13f922\"\u003e\u003ccode\u003eb6440a2\u003c/code\u003e\u003c/a\u003e Chore: Add more type hints in from_shape module (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `css-inline` from 0.19.1 to 0.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Stranger6667/css-inline/releases\"\u003ecss-inline's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[C] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapply_width_attributes\u003c/code\u003e and \u003ccode\u003eapply_height_attributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Java] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapplyWidthAttributes\u003c/code\u003e and \u003ccode\u003eapplyHeightAttributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[JavaScript] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapplyWidthAttributes\u003c/code\u003e and \u003ccode\u003eapplyHeightAttributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[PHP] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapplyWidthAttributes\u003c/code\u003e and \u003ccode\u003eapplyHeightAttributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Python] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapply_width_attributes\u003c/code\u003e and \u003ccode\u003eapply_height_attributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ePyO3\u003c/code\u003e to \u003ccode\u003e0.28.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Stranger6667/css-inline/blob/master/CHANGELOG.md\"\u003ecss-inline's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.20.0] - 2026-02-07\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eInlineOptions::apply_width_attributes\u003c/code\u003e and \u003ccode\u003eInlineOptions::apply_height_attributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/f1187da861cb5644f034e17f7279ebb35aa651fb\"\u003e\u003ccode\u003ef1187da\u003c/code\u003e\u003c/a\u003e chore(c): Release 0.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/044f555c5d6a3b1db5d4f825006e1e414f155466\"\u003e\u003ccode\u003e044f555\u003c/code\u003e\u003c/a\u003e chore(python): Release 0.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/3ae971da16e7cc3e39b360c0b3c16987096be493\"\u003e\u003ccode\u003e3ae971d\u003c/code\u003e\u003c/a\u003e chore(python): Update PyO3 to 0.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/a21fd68d7132e641094d34dcd82b91c7ef8bd541\"\u003e\u003ccode\u003ea21fd68\u003c/code\u003e\u003c/a\u003e chore(ruby): Update dependency on css-inline to 0.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/fb56972e9581b597db030d546d7f405b6d7eb16a\"\u003e\u003ccode\u003efb56972\u003c/code\u003e\u003c/a\u003e build(deps): bump bytes in /bindings/ruby/ext/css_inline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/9cca63a36b354e774dea1b9d0bbdf5a7a82bd00b\"\u003e\u003ccode\u003e9cca63a\u003c/code\u003e\u003c/a\u003e build(deps): bump bytes from 1.10.1 to 1.11.1 in /bindings/ruby\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/59c31809d91628fb6804dfd0d96cbe64d59a9541\"\u003e\u003ccode\u003e59c3180\u003c/code\u003e\u003c/a\u003e feat: Options to add dimension HTML attributes from CSS properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/74e9718821417e9ac5eec29c412efb8bc0975a95\"\u003e\u003ccode\u003e74e9718\u003c/code\u003e\u003c/a\u003e build(deps): update getrandom requirement in /bindings/javascript\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/8a48718b7f41cfc75672463af309a0ee2c30bc7d\"\u003e\u003ccode\u003e8a48718\u003c/code\u003e\u003c/a\u003e build(deps): bump tar from 7.5.6 to 7.5.7 in /bindings/javascript\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/069cf59819b5ee58ae0421f5588f06c4fe561781\"\u003e\u003ccode\u003e069cf59\u003c/code\u003e\u003c/a\u003e docs: Update README\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Stranger6667/css-inline/compare/c-v0.19.1...c-v0.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypdf` from 6.6.2 to 6.7.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/py-pdf/pypdf/releases\"\u003epypdf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.7.5, 2026-03-02\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.4...6.7.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.4, 2026-02-27\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.3...6.7.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e) by \u003ca href=\"https://github.com/rampageservices\"\u003e\u003ccode\u003e@​rampageservices\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of page boxes defined on \u003ccode\u003e/Pages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3650\"\u003e#3650\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.1...6.7.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.1, 2026-02-17\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDetect cyclic references when accessing TreeObject.children (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3645\"\u003e#3645\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit size of \u003ccode\u003e/ToUnicode\u003c/code\u003e entries (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3646\"\u003e#3646\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit FlateDecode recovery attempts (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3644\"\u003e#3644\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid own object replacement logic in \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3638\"\u003e#3638\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix UnboundLocalError when update_page_form_field_values with /Sig (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3634\"\u003e#3634\u003c/a\u003e) by \u003ca href=\"https://github.com/John-Sharp\"\u003e\u003ccode\u003e@​John-Sharp\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/py-pdf/pypdf/blob/main/CHANGELOG.md\"\u003epypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.7.5, 2026-03-02\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.4...6.7.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.4, 2026-02-27\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.3...6.7.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of page boxes defined on \u003ccode\u003e/Pages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3650\"\u003e#3650\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.1...6.7.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.1, 2026-02-17\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDetect cyclic references when accessing TreeObject.children (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3645\"\u003e#3645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLimit size of \u003ccode\u003e/ToUnicode\u003c/code\u003e entries (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3646\"\u003e#3646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLimit FlateDecode recovery attempts (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3644\"\u003e#3644\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid own object replacement logic in \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3638\"\u003e#3638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix UnboundLocalError when update_page_form_field_values with /Sig (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3634\"\u003e#3634\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid divison by zero when decoding FlateDecode PNG prediction (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3641\"\u003e#3641\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.0...6.7.1\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/7c2bcddd8e3c64903e23398d12b60ef432ff4531\"\u003e\u003ccode\u003e7c2bcdd\u003c/code\u003e\u003c/a\u003e REL: 6.7.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/648c627d2657447dfb1773412af05a0a5103b98f\"\u003e\u003ccode\u003e648c627\u003c/code\u003e\u003c/a\u003e SEC: Improve the performance of the ASCIIHexDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3666\"\u003e#3666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/1aef6fbbf4f138e40e9b68e11089393ea5b64421\"\u003e\u003ccode\u003e1aef6fb\u003c/code\u003e\u003c/a\u003e DEV: Update cache key handling in CI (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3665\"\u003e#3665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/1650bc31e807d8091464c228b7eabd6fef4c6c2a\"\u003e\u003ccode\u003e1650bc3\u003c/code\u003e\u003c/a\u003e REL: 6.7.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/f309c6003746414dc7b5048c19e6d879ff2dc858\"\u003e\u003ccode\u003ef309c60\u003c/code\u003e\u003c/a\u003e SEC: Allow limiting output length for RunLengthDecode filter (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3664\"\u003e#3664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/993f052748ad7ce0a16d738260f43aa0a9c06872\"\u003e\u003ccode\u003e993f052\u003c/code\u003e\u003c/a\u003e DEV: Bump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3662\"\u003e#3662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/a3c996bffcb03a49e790e540e9229c8d75ff3da5\"\u003e\u003ccode\u003ea3c996b\u003c/code\u003e\u003c/a\u003e DEV: Bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3663\"\u003e#3663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/37de32022e76018a48523795669e95432ba6191e\"\u003e\u003ccode\u003e37de320\u003c/code\u003e\u003c/a\u003e ROB: Deal with invalid annotations in extract_links (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3659\"\u003e#3659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/05e6d3c03deaec6b16b53825465537ac9e7a1a14\"\u003e\u003ccode\u003e05e6d3c\u003c/code\u003e\u003c/a\u003e REL: 6.7.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/7a4c8246ed48d9d328fb596942271da47b6d109c\"\u003e\u003ccode\u003e7a4c824\u003c/code\u003e\u003c/a\u003e SEC: Use zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.6.2...6.7.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `clickhouse-connect` from 0.10.0 to 0.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/releases\"\u003eclickhouse-connect's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eBREAKING CHANGE\u003c/strong\u003e: Implement native write path for \u003ccode\u003eVariant\u003c/code\u003e data type with type-aware dispatching. Previously, all values inserted into a \u003ccode\u003eVariant\u003c/code\u003e column were stringified and sent to the server, which would store them in the \u003ccode\u003eString\u003c/code\u003e member if present, or attempt server-side conversion otherwise. Values are now serialized using their native ClickHouse types client-side (e.g. inserting \u003ccode\u003e100\u003c/code\u003e into \u003ccode\u003eVariant(Int64, String)\u003c/code\u003e stores \u003ccode\u003eInt64(100)\u003c/code\u003e instead of \u003ccode\u003eString(\u0026quot;100\u0026quot;)\u003c/code\u003e).\u003c/p\u003e\n\u003cp\u003eKey changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eValues that don't match any variant member now raise \u003ccode\u003eDataError\u003c/code\u003e instead of being stringified and\ndelegated to the server.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003etyped_variant(value, 'TypeName')\u003c/code\u003e helper is provided for cases where automatic dispatch\ncannot resolve the target type, such as when multiple variant members map to the same Python\ntype (e.g. \u003ccode\u003eArray(UInt32)\u003c/code\u003e vs \u003ccode\u003eArray(String)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003eutc_tz_aware=\u0026quot;schema\u0026quot;\u003c/code\u003e mode which returns timezone-aware datetimes only when the server's column schema explicitly defines a timezone (e.g. \u003ccode\u003eDateTime('UTC')\u003c/code\u003e), and naive datetimes for bare \u003ccode\u003eDateTime\u003c/code\u003e columns. This matches the ClickHouse schema definition exactly. Not yet supported for Arrow-based query methods. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/645\"\u003e#645\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type annotations to public API methods in \u003ccode\u003eClient\u003c/code\u003e, \u003ccode\u003eAsyncClient\u003c/code\u003e, \u003ccode\u003eHttpClient\u003c/code\u003e, and \u003ccode\u003eQueryResult\u003c/code\u003e. Ref \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/567\"\u003e#567\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edict_add\u003c/code\u003e parameter typed as builtin \u003ccode\u003eany\u003c/code\u003e instead of \u003ccode\u003etyping.Any\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRecognize \u003ccode\u003eUPDATE\u003c/code\u003e as a command so lightweight updates work correctly via \u003ccode\u003eclient.query()\u003c/code\u003e and SQLAlchemy.\u003c/li\u003e\n\u003cli\u003eSQLAlchemy: \u003ccode\u003eGROUP BY\u003c/code\u003e now renders label aliases instead of full expressions which avoids circular reference errors when an alias shadows a source column name in ClickHouse.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/compare/v0.11.0...v0.13.0\"\u003ehttps://github.com/ClickHouse/clickhouse-connect/compare/v0.11.0...v0.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.12.0rc1\u003c/h2\u003e\n\u003ch1\u003eNative Async Client (Pre-release)\u003c/h1\u003e\n\u003cp\u003eThis is a pre-release for testing and feedback on the new native async client built on \u003ca href=\"https://github.com/aio-libs/aiohttp\"\u003eaiohttp\u003c/a\u003e. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/141\"\u003e#141\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eIf you're using the sync client and have been looking for a reason to go async, this is a good opportunity to give it a shot. If you're already using \u003ccode\u003eAsyncClient\u003c/code\u003e, this is a drop-in upgrade. The API surface is identical but under the hood it's completely redesigned.\u003c/p\u003e\n\u003cp\u003ePreviously, the \u003ccode\u003eAsyncClient\u003c/code\u003e was just the sync \u003ccode\u003eurllib3\u003c/code\u003e client wrapped in a thread executor. This is a from-scratch async implementation with real async I/O, proper connection pooling, and a pipelined architecture that streams and processes response data concurrently rather than a read-then-parse pattern, providing a potentially significant performance increase depending on your workload. The old executor-based path still works but is now deprecated and will be removed after release candidate testing and benchmarking is completed.\u003c/p\u003e\n\u003ch2\u003eInstall\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eaiohttp\u003c/code\u003e is now a required dependency for using the native async client, but its installation is not included by default. To install this release candidate with the required \u003ccode\u003eaiohttp\u003c/code\u003e for async use, install \u003ccode\u003eclickhouse_connect\u003c/code\u003e as follows:\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003epip install clickhouse-connect[async]==0.12.0rc1\u003c/code\u003e\u003c/p\u003e\n\u003ch2\u003eUsage\u003c/h2\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eimport asyncio\r\n\u003cp\u003eimport clickhouse_connect\u003c/p\u003e\n\u003cp\u003easync def main():\nasync with await clickhouse_connect.get_async_client(host=\u0026quot;localhost\u0026quot;) as client:\n# create a test table\nawait client.command(\n\u0026quot;CREATE TABLE IF NOT EXISTS test_example \u0026quot;\n\u0026quot;(id UInt32, name String) \u0026quot;\n\u0026quot;ENGINE MergeTree ORDER BY id\u0026quot;\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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/ClickHouse/clickhouse-connect/blob/main/CHANGELOG.md\"\u003eclickhouse-connect's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.13.0, 2026-02-26\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBREAKING CHANGE: Implement native write path for \u003ccode\u003eVariant\u003c/code\u003e data type with type-aware dispatching.\nPreviously, all values inserted into a \u003ccode\u003eVariant\u003c/code\u003e column were stringified and sent to the server, which\nwould store them in the \u003ccode\u003eString\u003c/code\u003e member if present, or attempt server-side conversion otherwise. Values\nare now serialized using their native ClickHouse types client-side (e.g. inserting \u003ccode\u003e100\u003c/code\u003e into\n\u003ccode\u003eVariant(Int64, String)\u003c/code\u003e stores \u003ccode\u003eInt64(100)\u003c/code\u003e instead of \u003ccode\u003eString(\u0026quot;100\u0026quot;)\u003c/code\u003e). Key changes:\n\u003cul\u003e\n\u003cli\u003eValues that don't match any variant member now raise \u003ccode\u003eDataError\u003c/code\u003e instead of being stringified and\ndelegated to the server.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003etyped_variant(value, 'TypeName')\u003c/code\u003e helper is provided for cases where automatic dispatch\ncannot resolve the target type, such as when multiple variant members map to the same Python\ntype (e.g. \u003ccode\u003eArray(UInt32)\u003c/code\u003e vs \u003ccode\u003eArray(String)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eutc_tz_aware=\u0026quot;schema\u0026quot;\u003c/code\u003e mode which returns timezone-aware datetimes only when the server's column schema explicitly defines a timezone (e.g. \u003ccode\u003eDateTime('UTC')\u003c/code\u003e), and naive datetimes for bare \u003ccode\u003eDateTime\u003c/code\u003e columns. This matches the ClickHouse schema definition exactly. Not yet supported for Arrow-based query methods. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/645\"\u003e#645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd type annotations to public API methods in \u003ccode\u003eClient\u003c/code\u003e, \u003ccode\u003eAsyncClient\u003c/code\u003e, \u003ccode\u003eHttpClient\u003c/code\u003e, and \u003ccode\u003eQueryResult\u003c/code\u003e. Ref \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/567\"\u003e#567\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003edict_add\u003c/code\u003e parameter typed as builtin \u003ccode\u003eany\u003c/code\u003e instead of \u003ccode\u003etyping.Any\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRecognize \u003ccode\u003eUPDATE\u003c/code\u003e as a command so lightweight updates work correctly via \u003ccode\u003eclient.query()\u003c/code\u003e and SQLAlchemy.\u003c/li\u003e\n\u003cli\u003eSQLAlchemy: \u003ccode\u003eGROUP BY\u003c/code\u003e now renders label aliases instead of full expressions which avoids circular reference errors when an alias shadows a source column name in ClickHouse.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.11.0, 2026-02-10\u003c/h2\u003e\n\u003ch3\u003ePython 3.9 Deprecation\u003c/h3\u003e\n\u003cp\u003ePython 3.9 EOL'd Oct 2025. Support for Python 3.9 is now softly deprecated and has been removed from our CI test matrix but\ndistribution wheels will continue to be built until the 1.0 release or until the builds naturally fail, whichever comes first.\nA \u003ccode\u003eDeprecationWarning\u003c/code\u003e will now be displayed when initializing the client on Python 3.9. Users should plan to upgrade to\nPython 3.10+ as 3.9 compatibility may break unexpectedly in future updates.\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise OperationalError when ResponseSource hits network failure before any data is received. Previously, empty result would be returned. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/620\"\u003e#620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue with DROP table in client temp table test.\u003c/li\u003e\n\u003cli\u003eFixed a bug where InsertContext state was not reset on insert failure, leading to reuse errors when data was passed separately.\u003c/li\u003e\n\u003cli\u003eFixed UTC-equivalent timezone recognition issue where servers returning \u003ccode\u003eEtc/UCT\u003c/code\u003e, \u003ccode\u003eGMT\u003c/code\u003e, or other UTC-equivalent timezone names caused inconsistent behavior with \u003ccode\u003eutc_tz_aware=False\u003c/code\u003e. DateTime columns with explicit UTC timezones now correctly return naive datetimes when \u003ccode\u003eutc_tz_aware=False\u003c/code\u003e regardless of the specific UTC-equivalent timezone name returned by the server. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/629\"\u003e#629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed percent sign (\u003ccode\u003e%\u003c/code\u003e) double encoding in SQLAlchemy string literals when using \u003ccode\u003etext()\u003c/code\u003e queries with \u003ccode\u003eformatDateTime\u003c/code\u003e and similar functions. The cursor now correctly unescapes \u003ccode\u003e%%\u003c/code\u003e back to \u003ccode\u003e%\u003c/code\u003e for non-parameterized queries. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/297\"\u003e#297\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for mid-stream exceptions. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/626\"\u003e#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for QBit data type. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/570\"\u003e#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the ability to create table from PyArrow objects. Addresses \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/588\"\u003e#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlways generate query_id from the client side as a UUID4 if it is not explicitly set. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/596\"\u003e#596\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtend support for creating tables from PyArrow objects to include datetime/timestamp types. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/605\"\u003e#605\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pre-commit hooks for auto-linting contributions at commit time. Addresses \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing type annotation. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/567\"\u003e#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAuto-enable \u003ccode\u003ecancel_http_readonly_queries_on_client_close\u003c/code\u003e setting for HTTP clients to ensure SELECT queries are cancelled on the server when the client disconnects. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/641\"\u003e#641\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/ClickHouse/clickhouse-connect/commit/6bc0c8618397e519b8393ccb0426d64a708e45bd\"\u003e\u003ccode\u003e6bc0c86\u003c/code\u003e\u003c/a\u003e 0.13.0 release prep (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/657\"\u003e#657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/44db0421d6df887ac4c5d0fab7328832beab6311\"\u003e\u003ccode\u003e44db042\u003c/code\u003e\u003c/a\u003e Add GROUP BY alias rendering to ClickHouse SQLAlchemy compiler (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/655\"\u003e#655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/e2ba0e58a416c1fe620462b4d77db2316c64c190\"\u003e\u003ccode\u003ee2ba0e5\u003c/code\u003e\u003c/a\u003e Add type annotations to public API methods (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/649\"\u003e#649\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/2fc3b5f5aa15934a706423e79053edac68af8670\"\u003e\u003ccode\u003e2fc3b5f\u003c/code\u003e\u003c/a\u003e Fix percent sign double encoding in SQLAlchemy string literals (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/644\"\u003e#644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/4224621e0d9570cc02024598a4d3b1512bc50e5e\"\u003e\u003ccode\u003e4224621\u003c/code\u003e\u003c/a\u003e Implement Variant write path with type-aware dispatching (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/534\"\u003e#534\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/651\"\u003e#651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/2444667f42ebc4150da49885c9142225676324ff\"\u003e\u003ccode\u003e2444667\u003c/code\u003e\u003c/a\u003e Add utc_tz_aware=\u0026quot;schema\u0026quot; mode for schema-matching datetime output (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/653\"\u003e#653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/9772b8e021c7aa98a12f9f8cdb0b19e758ba4ed1\"\u003e\u003ccode\u003e9772b8e\u003c/code\u003e\u003c/a\u003e Fix errors when doing lightweight UPDATE with execute (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/648\"\u003e#648\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/68a7fa29f7eda008f246d84ff3ac81bbbb72d124\"\u003e\u003ccode\u003e68a7fa2\u003c/code\u003e\u003c/a\u003e update cloud test server info (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/650\"\u003e#650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/eef09a90b8b46375335f9a5a42a52bf7b8f8328e\"\u003e\u003ccode\u003eeef09a9\u003c/code\u003e\u003c/a\u003e 0.11.0 release prep (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/647\"\u003e#647\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/b08a4296b2b34480abf7295cc7c239f1e74d93b4\"\u003e\u003ccode\u003eb08a429\u003c/code\u003e\u003c/a\u003e Fix mypy typing errors by explicitly exporting Client (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/643\"\u003e#643\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/compare/v0.10.0...v0.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prefect` from 3.6.9 to 3.6.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PrefectHQ/prefect/releases\"\u003eprefect's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.6.20 - new cli, who dis?\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements ➕➕\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate CLI from \u003ccode\u003etyper\u003c/code\u003e to \u003ccode\u003ecyclopts\u003c/code\u003e, remove toggle and delegation machinery by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20821\"\u003e#20821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRoute \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e subprocess events and logs through a single parent queue, improving per-task performance by ~28% in log-heavy workloads by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20864\"\u003e#20864\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd configurable subprocess message processors to \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e for custom event/log handling in the parent forwarder by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20869\"\u003e#20869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse distinct FK scan for orphaned log/artifact vacuum queries, reducing cycle time from ~3.6s to ~0.5s on large databases by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20868\"\u003e#20868\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug Fixes 🐞\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid \u003ccode\u003eNone\u003c/code\u003e asset descriptions in events by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20840\"\u003e#20840\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLower default DB vacuum \u003ccode\u003ebatch_size\u003c/code\u003e from 1000 to 200 to prevent query timeouts on Postgres by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20857\"\u003e#20857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix subprocess events silently lost in \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e when task completes before async event forwarding by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20876\"\u003e#20876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix page header breadcrumb truncation for long entity names by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20870\"\u003e#20870\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd truncation to card breadcrumbs and locale format automation count by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20871\"\u003e#20871\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDevelopment \u0026amp; Tidiness 🧹\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePromote \u003ccode\u003e_cyclopts/\u003c/code\u003e to \u003ccode\u003esrc/prefect/cli/\u003c/code\u003e, remove \u003ccode\u003etyper\u003c/code\u003e dependency by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20838\"\u003e#20838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003envm\u003c/code\u003e from clobbering \u003ccode\u003esetup-node\u003c/code\u003e in pre-commit CI by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20854\"\u003e#20854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test timeout to fix flaky concurrency slot release test by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20843\"\u003e#20843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace inline SQLite compilation with pre-built Docker image for faster builds by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20824\"\u003e#20824\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation 📓\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate rate limit docs for unified two-bucket system by \u003ca href=\"https://github.com/zangell44\"\u003e\u003ccode\u003e@​zangell44\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20828\"\u003e#20828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate docs logos and favicon by \u003ca href=\"https://github.com/znicholasbrown\"\u003e\u003ccode\u003e@​znicholasbrown\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20858\"\u003e#20858\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.19...3.6.20\"\u003ehttps://github.com/PrefectHQ/prefect/compare/3.6.19...3.6.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.6.20.dev5: Nightly Development Release\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eDevelopment \u0026amp; Tidiness 🧹\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix subprocess events silently lost in \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20876\"\u003ePrefectHQ/prefect#20876\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.20.dev4...3.6.20.dev5\"\u003ehttps://github.com/PrefectHQ/prefect/compare/3.6.20.dev4...3.6.20.dev5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.6.20.dev4: Nightly Development Release\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eUncategorized\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRoute \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e subprocess events/logs through parent queue by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20864\"\u003ePrefectHQ/prefect#20864\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf(db-vacuum): use distinct FK scan for orphaned log/artifact queries by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20868\"\u003ePrefectHQ/prefect#20868\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.20.dev3...3.6.20.dev4\"\u003ehttps://github.com/PrefectHQ/prefect/compare/3.6.20.dev3...3.6.20.dev4\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/395392ae259a6ff2ab26a3fb1a75969fd897a09b\"\u003e\u003ccode\u003e395392a\u003c/code\u003e\u003c/a\u003e docs: Add release notes for 3.6.20 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20877\"\u003e#20877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/26045e1843b29c76817b4bfdc7340ff010662757\"\u003e\u003ccode\u003e26045e1\u003c/code\u003e\u003c/a\u003e Add hook for \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e subprocess message processing and dbt lo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/a9c5b257d7856889d252ef479db66ccadb129d57\"\u003e\u003ccode\u003ea9c5b25\u003c/code\u003e\u003c/a\u003e chore(deps): bump minimatch in /ui-v2 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20884\"\u003e#20884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/cb7337b6e25a6fc32884a3d6f276ce48e3a75b5e\"\u003e\u003ccode\u003ecb7337b\u003c/code\u003e\u003c/a\u003e perf(docker): replace inline SQLite compilation with pre-built image (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20824\"\u003e#20824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/1dd051e0336b7b805df861e910c9ec1e3f5f4ff8\"\u003e\u003ccode\u003e1dd051e\u003c/code\u003e\u003c/a\u003e chore(deps): bump minimatch, \u003ccode\u003e@​typescript-eslint/eslint-plugin\u003c/code\u003e and \u003ca href=\"https://github.com/typescript\"\u003e\u003ccode\u003e@​typescript\u003c/code\u003e\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/57cc0ec83ab53fce045f7924cc0f80a630810283\"\u003e\u003ccode\u003e57cc0ec\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20882\"\u003e#20882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/11a555615f2fd4cd23fce398e40f87f6cfcad940\"\u003e\u003ccode\u003e11a5556\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20880\"\u003e#20880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/1d02e98e733f4c58d7127d3ade29a38be71161c2\"\u003e\u003ccode\u003e1d02e98\u003c/code\u003e\u003c/a\u003e fix(13-04): apply locale formatting to all count and pagination displays (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20\"\u003e#20\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/15781ee84ddad3ab4f68e20c4cb709ee952e1827\"\u003e\u003ccode\u003e15781ee\u003c/code\u003e\u003c/a\u003e fix(13-03): standardize null indicators to None, concurrency to ∞, fix parame...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/380a0d73ea3a71323b1a1f7fca5549190e926c53\"\u003e\u003ccode\u003e380a0d7\u003c/code\u003e\u003c/a\u003e Fix subprocess events silently lost in \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20876\"\u003e#20876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.9...3.6.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `plotly` from 6.5.2 to 6.6.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.6.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unneeded \u003ccode\u003etype=\u0026quot;text/javascript\u0026quot;\u003c/code\u003e attribute from \u003ccode\u003e\u0026lt;style\u0026gt;\u003c/code\u003e tag [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5454\"\u003e#5454\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/hannob\"\u003e\u003ccode\u003e@​hannob\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eRemove global warning format side effect [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5481\"\u003e#5481\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/emmanuel-ferdman\"\u003e\u003ccode\u003e@​emmanuel-ferdman\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix spurious engine deprecation warning in write_image [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5517\"\u003e#5517\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/mosh3eb\"\u003e\u003ccode\u003e@​mosh3eb\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.3.1 to version 3.4.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v3.4.0\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5527\"\u003e#5527\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd support for clicking legend titles to toggle visibility of all traces in legend [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7698\"\u003e#7698\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd support for shapes to reference multiple axes [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7666\"\u003e#7666\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd support for dashed marker lines in scatter plots [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7673\"\u003e#7673\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eIncrease axis autorange when bar charts have outside text labels, to avoid labels being clipped [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7675\"\u003e#7675\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\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.5.2...v6.6.0\"\u003ehttps://github.com/plotly/plotly.py/compare/v6.5.2...v6.6.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/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.6.0] - 2026-03-02\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unneeded \u003ccode\u003etype=\u0026quot;text/javascript\u0026quot;\u003c/code\u003e attribute from \u003ccode\u003e\u0026lt;style\u0026gt;\u003c/code\u003e tag [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5454\"\u003e#5454\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/hannob\"\u003e\u003ccode\u003e@​hannob\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eRemove global warning format side effect [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5481\"\u003e#5481\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/emmanuel-ferdman\"\u003e\u003ccode\u003e@​emmanuel-ferdman\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003cli\u003eFix spurious engine deprecation warning in write_image [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5517\"\u003e#5517\u003c/a\u003e], with thanks to \u003ca href=\"https://github.com/mosh3eb\"\u003e\u003ccode\u003e@​mosh3eb\u003c/code\u003e\u003c/a\u003e for the contribution!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpdated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate plotly.js from version 3.3.1 to version 3.4.0. See the plotly.js \u003ca href=\"https://github.com/plotly/plotly.js/releases/tag/v3.4.0\"\u003erelease notes\u003c/a\u003e for more information. [\u003ca href=\"https://redirect.github.com/plotly/plotly.py/pull/5527\"\u003e#5527\u003c/a\u003e]. Notable changes include:\n\u003cul\u003e\n\u003cli\u003eAdd support for clicking legend titles to toggle visibility of all traces in legend [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7698\"\u003e#7698\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd support for shapes to reference multiple axes [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7666\"\u003e#7666\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd support for dashed marker lines in scatter plots [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7673\"\u003e#7673\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eIncrease axis autorange when bar charts have outside text labels, to avoid labels being clipped [\u003ca href=\"https://redirect.github.com/plotly/plotly.js/pull/7675\"\u003e#7675\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/837d27ec070275f4a18c321defcb24c4ecf5b20f\"\u003e\u003ccode\u003e837d27e\u003c/code\u003e\u003c/a\u003e changes for v6.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/e0278b3dee031cd634806a49b65a7dd7bba61dfe\"\u003e\u003ccode\u003ee0278b3\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/bb783da8cfd54a06794642490a25e1dfc504bc4b\"\u003e\u003ccode\u003ebb783da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5516\"\u003e#5516\u003c/a\u003e from plotly/new-charts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/5aabff0817817cce330260b7f0e759f7fab75f36\"\u003e\u003ccode\u003e5aabff0\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into new-charts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/03fd2ed4dedcf9135e87bf01fee206bc7cac9142\"\u003e\u003ccode\u003e03fd2ed\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/plotly/plotly.py/issues/5527\"\u003e#5527\u003c/a\u003e from plotly/update-plotlyjs-3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/aee4c33edf5554694cc9b7371e188bda02c90c24\"\u003e\u003ccode\u003eaee4c33\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/46a8aa297ca7158103fc9d4f43feee44fa3ef297\"\u003e\u003ccode\u003e46a8aa2\u003c/code\u003e\u003c/a\u003e update js artifacts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotly.py/commit/7dc360cd1f42e997ebef09d2eeb30a6029edc2fa\"\u003e\u003ccode\u003e7dc360c\u003c/code\u003e\u003c/a\u003e update package-lock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/plotly/plotl...\n\n_Description has been truncated_","html_url":"https://github.com/MTES-MCT/monitorfish/pull/4878","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MTES-MCT%2Fmonitorfish/issues/4878","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4878/packages"}},{"old_version":"0.18.1","new_version":"0.18.4","update_type":"patch","path":null,"pr_created_at":"2026-03-03T00:36:07.000Z","version_change":"0.18.1 → 0.18.4","issue":{"uuid":"4014045990","node_id":"PR_kwDOLI_1J87HeZuh","number":661,"state":"closed","title":"Bump geoalchemy2 from 0.18.1 to 0.18.4","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-16T12:30:14.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-03T00:36:07.000Z","updated_at":"2026-03-16T12:30:16.000Z","time_to_close":1166047,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"geoalchemy2","old_version":"0.18.1","new_version":"0.18.4","repository_url":"https://github.com/geoalchemy/geoalchemy2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) from 0.18.1 to 0.18.4.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: fix shapely import by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/588\"\u003egeoalchemy/geoalchemy2#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/589\"\u003egeoalchemy/geoalchemy2#589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: Make Coveralls optional since the service is down at the moment by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/590\"\u003egeoalchemy/geoalchemy2#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI: try the official Coveralls action by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/592\"\u003egeoalchemy/geoalchemy2#592\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.4 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/591\"\u003egeoalchemy/geoalchemy2#591\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.3...0.18.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/584\"\u003egeoalchemy/geoalchemy2#584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.3 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/587\"\u003egeoalchemy/geoalchemy2#587\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/575\"\u003egeoalchemy/geoalchemy2#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/576\"\u003egeoalchemy/geoalchemy2#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/577\"\u003egeoalchemy/geoalchemy2#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/578\"\u003egeoalchemy/geoalchemy2#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/580\"\u003egeoalchemy/geoalchemy2#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Fix package discovery by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/581\"\u003egeoalchemy/geoalchemy2#581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.2 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/582\"\u003egeoalchemy/geoalchemy2#582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.2\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Move to the official Coveralls action - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: fix setuptools deprecation warning - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Fix shapely import - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Fix package discovery - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/576\"\u003e#576\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/geoalchemy/geoalchemy2/commit/beb96c39754704a2ec712de3857d72b8a8ecc4d3\"\u003e\u003ccode\u003ebeb96c3\u003c/code\u003e\u003c/a\u003e Release: 0.18.4 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/6266c25a12b3d406c403db2112e7c55bf3739d97\"\u003e\u003ccode\u003e6266c25\u003c/code\u003e\u003c/a\u003e CI: Move to the official Coveralls action (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f402f6347454374b7719e612a5ebe5a1a766c8fa\"\u003e\u003ccode\u003ef402f63\u003c/code\u003e\u003c/a\u003e CI: Make Coveralls optional since the service is down at the moment (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/590\"\u003e#590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/36ebd0f650d1c60b2e24c896d4662818f0162414\"\u003e\u003ccode\u003e36ebd0f\u003c/code\u003e\u003c/a\u003e Fix: fix setuptools deprecation warning (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/f11a1dadb94a31272cb58f3ef04f07490d174d34\"\u003e\u003ccode\u003ef11a1da\u003c/code\u003e\u003c/a\u003e Fix: Fix shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/943b456ee3726db7a4b890309d9e864866bd8614\"\u003e\u003ccode\u003e943b456\u003c/code\u003e\u003c/a\u003e Release: 0.18.3 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/55ab8737ae818b47c28a17fb6102b3eb94208c06\"\u003e\u003ccode\u003e55ab873\u003c/code\u003e\u003c/a\u003e Fix: Fix Shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/5e9680be84369cf64c90f70a0f2ddac6cd27f15f\"\u003e\u003ccode\u003e5e9680b\u003c/code\u003e\u003c/a\u003e Release: 0.18.2 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/582\"\u003e#582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/59440f1aa593917b4c27997b22cb9eac54b54040\"\u003e\u003ccode\u003e59440f1\u003c/code\u003e\u003c/a\u003e Build: Fix package discovery (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/b6440a2fe70dd0629d3b882c8fb0e7bfba13f922\"\u003e\u003ccode\u003eb6440a2\u003c/code\u003e\u003c/a\u003e Chore: Add more type hints in from_shape module (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.4\"\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=geoalchemy2\u0026package-manager=pip\u0026previous-version=0.18.1\u0026new-version=0.18.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Amsterdam/meldingen/pull/661","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amsterdam%2Fmeldingen/issues/661","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/661/packages"}},{"old_version":"0.18.1","new_version":"0.18.3","update_type":"patch","path":"/pipeline","pr_created_at":"2026-03-01T19:43:11.000Z","version_change":"0.18.1 → 0.18.3","issue":{"uuid":"4008113802","node_id":"PR_kwDOG5WtHM7HLGvm","number":2762,"state":"open","title":"[Tech] Bump the non-major-dependencies group in /pipeline with 4 updates","user":"dependabot[bot]","labels":["tech. enhancement","dependencies"],"assignees":["VincentAntoine"],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-01T19:43:11.000Z","updated_at":"2026-03-01T19:44:02.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[Tech] Bump","group_name":"non-major-dependencies","update_count":4,"packages":[{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"geoalchemy2","old_version":"0.18.1","new_version":"0.18.3","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"prefect","old_version":"3.6.9","new_version":"3.6.20","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"sqlalchemy","old_version":"2.0.46","new_version":"2.0.47","repository_url":"https://github.com/sqlalchemy/sqlalchemy"}],"path":"/pipeline","ecosystem":"pip"},"body":"Bumps the non-major-dependencies group in /pipeline with 4 updates: [python-dotenv](https://github.com/theskumar/python-dotenv), [geoalchemy2](https://github.com/geoalchemy/geoalchemy2), [prefect](https://github.com/PrefectHQ/prefect) and [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy).\n\nUpdates `python-dotenv` 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/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\u003c/blockquote\u003e\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\u003c/blockquote\u003e\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.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 `geoalchemy2` from 0.18.1 to 0.18.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/584\"\u003egeoalchemy/geoalchemy2#584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.3 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/587\"\u003egeoalchemy/geoalchemy2#587\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/575\"\u003egeoalchemy/geoalchemy2#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/576\"\u003egeoalchemy/geoalchemy2#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/577\"\u003egeoalchemy/geoalchemy2#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/578\"\u003egeoalchemy/geoalchemy2#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/580\"\u003egeoalchemy/geoalchemy2#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Fix package discovery by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/581\"\u003egeoalchemy/geoalchemy2#581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.2 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/582\"\u003egeoalchemy/geoalchemy2#582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.2\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Fix package discovery - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/576\"\u003e#576\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/geoalchemy/geoalchemy2/commit/943b456ee3726db7a4b890309d9e864866bd8614\"\u003e\u003ccode\u003e943b456\u003c/code\u003e\u003c/a\u003e Release: 0.18.3 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/55ab8737ae818b47c28a17fb6102b3eb94208c06\"\u003e\u003ccode\u003e55ab873\u003c/code\u003e\u003c/a\u003e Fix: Fix Shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/5e9680be84369cf64c90f70a0f2ddac6cd27f15f\"\u003e\u003ccode\u003e5e9680b\u003c/code\u003e\u003c/a\u003e Release: 0.18.2 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/582\"\u003e#582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/59440f1aa593917b4c27997b22cb9eac54b54040\"\u003e\u003ccode\u003e59440f1\u003c/code\u003e\u003c/a\u003e Build: Fix package discovery (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/b6440a2fe70dd0629d3b882c8fb0e7bfba13f922\"\u003e\u003ccode\u003eb6440a2\u003c/code\u003e\u003c/a\u003e Chore: Add more type hints in from_shape module (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/a44b0dcdfec43af8b53d02875b6edf2d43f9bc70\"\u003e\u003ccode\u003ea44b0dc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/checkout from 4 to 6 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/578\"\u003e#578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/523dd53616e37fb77e8afc4f394074844e8cc6ec\"\u003e\u003ccode\u003e523dd53\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/577\"\u003e#577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/c2a1e17efa69d555c25bfa58a6663419db084c6d\"\u003e\u003ccode\u003ec2a1e17\u003c/code\u003e\u003c/a\u003e Build: Upgrade packaging and formatting tools (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/576\"\u003e#576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/1b4b141aa1ee4fdd8ff03071f025282e29012d35\"\u003e\u003ccode\u003e1b4b141\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/575\"\u003e#575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prefect` from 3.6.9 to 3.6.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PrefectHQ/prefect/releases\"\u003eprefect's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.6.20 - new cli, who dis?\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements ➕➕\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate CLI from \u003ccode\u003etyper\u003c/code\u003e to \u003ccode\u003ecyclopts\u003c/code\u003e, remove toggle and delegation machinery by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20821\"\u003e#20821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRoute \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e subprocess events and logs through a single parent queue, improving per-task performance by ~28% in log-heavy workloads by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20864\"\u003e#20864\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd configurable subprocess message processors to \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e for custom event/log handling in the parent forwarder by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20869\"\u003e#20869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse distinct FK scan for orphaned log/artifact vacuum queries, reducing cycle time from ~3.6s to ~0.5s on large databases by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20868\"\u003e#20868\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug Fixes 🐞\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid \u003ccode\u003eNone\u003c/code\u003e asset descriptions in events by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20840\"\u003e#20840\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLower default DB vacuum \u003ccode\u003ebatch_size\u003c/code\u003e from 1000 to 200 to prevent query timeouts on Postgres by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20857\"\u003e#20857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix subprocess events silently lost in \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e when task completes before async event forwarding by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20876\"\u003e#20876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix page header breadcrumb truncation for long entity names by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20870\"\u003e#20870\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd truncation to card breadcrumbs and locale format automation count by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20871\"\u003e#20871\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDevelopment \u0026amp; Tidiness 🧹\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePromote \u003ccode\u003e_cyclopts/\u003c/code\u003e to \u003ccode\u003esrc/prefect/cli/\u003c/code\u003e, remove \u003ccode\u003etyper\u003c/code\u003e dependency by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20838\"\u003e#20838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003envm\u003c/code\u003e from clobbering \u003ccode\u003esetup-node\u003c/code\u003e in pre-commit CI by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20854\"\u003e#20854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test timeout to fix flaky concurrency slot release test by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20843\"\u003e#20843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace inline SQLite compilation with pre-built Docker image for faster builds by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20824\"\u003e#20824\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation 📓\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate rate limit docs for unified two-bucket system by \u003ca href=\"https://github.com/zangell44\"\u003e\u003ccode\u003e@​zangell44\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20828\"\u003e#20828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate docs logos and favicon by \u003ca href=\"https://github.com/znicholasbrown\"\u003e\u003ccode\u003e@​znicholasbrown\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20858\"\u003e#20858\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.19...3.6.20\"\u003ehttps://github.com/PrefectHQ/prefect/compare/3.6.19...3.6.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.6.20.dev5: Nightly Development Release\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eDevelopment \u0026amp; Tidiness 🧹\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix subprocess events silently lost in \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20876\"\u003ePrefectHQ/prefect#20876\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.20.dev4...3.6.20.dev5\"\u003ehttps://github.com/PrefectHQ/prefect/compare/3.6.20.dev4...3.6.20.dev5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.6.20.dev4: Nightly Development Release\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eUncategorized\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRoute \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e subprocess events/logs through parent queue by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20864\"\u003ePrefectHQ/prefect#20864\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf(db-vacuum): use distinct FK scan for orphaned log/artifact queries by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20868\"\u003ePrefectHQ/prefect#20868\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.20.dev3...3.6.20.dev4\"\u003ehttps://github.com/PrefectHQ/prefect/compare/3.6.20.dev3...3.6.20.dev4\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/395392ae259a6ff2ab26a3fb1a75969fd897a09b\"\u003e\u003ccode\u003e395392a\u003c/code\u003e\u003c/a\u003e docs: Add release notes for 3.6.20 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20877\"\u003e#20877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/26045e1843b29c76817b4bfdc7340ff010662757\"\u003e\u003ccode\u003e26045e1\u003c/code\u003e\u003c/a\u003e Add hook for \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e subprocess message processing and dbt lo...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/a9c5b257d7856889d252ef479db66ccadb129d57\"\u003e\u003ccode\u003ea9c5b25\u003c/code\u003e\u003c/a\u003e chore(deps): bump minimatch in /ui-v2 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20884\"\u003e#20884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/cb7337b6e25a6fc32884a3d6f276ce48e3a75b5e\"\u003e\u003ccode\u003ecb7337b\u003c/code\u003e\u003c/a\u003e perf(docker): replace inline SQLite compilation with pre-built image (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20824\"\u003e#20824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/1dd051e0336b7b805df861e910c9ec1e3f5f4ff8\"\u003e\u003ccode\u003e1dd051e\u003c/code\u003e\u003c/a\u003e chore(deps): bump minimatch, \u003ccode\u003e@​typescript-eslint/eslint-plugin\u003c/code\u003e and \u003ca href=\"https://github.com/typescript\"\u003e\u003ccode\u003e@​typescript\u003c/code\u003e\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/57cc0ec83ab53fce045f7924cc0f80a630810283\"\u003e\u003ccode\u003e57cc0ec\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20882\"\u003e#20882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/11a555615f2fd4cd23fce398e40f87f6cfcad940\"\u003e\u003ccode\u003e11a5556\u003c/code\u003e\u003c/a\u003e chore(deps): bump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20880\"\u003e#20880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/1d02e98e733f4c58d7127d3ade29a38be71161c2\"\u003e\u003ccode\u003e1d02e98\u003c/code\u003e\u003c/a\u003e fix(13-04): apply locale formatting to all count and pagination displays (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20\"\u003e#20\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/15781ee84ddad3ab4f68e20c4cb709ee952e1827\"\u003e\u003ccode\u003e15781ee\u003c/code\u003e\u003c/a\u003e fix(13-03): standardize null indicators to None, concurrency to ∞, fix parame...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/380a0d73ea3a71323b1a1f7fca5549190e926c53\"\u003e\u003ccode\u003e380a0d7\u003c/code\u003e\u003c/a\u003e Fix subprocess events silently lost in \u003ccode\u003eProcessPoolTaskRunner\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20876\"\u003e#20876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.9...3.6.20\"\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.46 to 2.0.47\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.47\u003c/h1\u003e\n\u003cp\u003eReleased: February 24, 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 when using ORM mappings with Python 3.14's \u003ca href=\"https://peps.python.org/pep-0649\"\u003ePEP 649\u003c/a\u003e feature\nthat no longer requires \u0026quot;future annotations\u0026quot;, where the ORM's introspection\nof the \u003ccode\u003e__init__\u003c/code\u003e method of mapped classes would fail if non-present\nidentifiers in annotations were present.  The vendored \u003ccode\u003egetfullargspec()\u003c/code\u003e\nmethod has been amended to use \u003ccode\u003eFormat.FORWARDREF\u003c/code\u003e under Python 3.14 to\nprevent resolution of names that aren't present.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13104\"\u003e#13104\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [usecase]\u003c/strong\u003e The connection object returned by \u003ccode\u003e_engine.Engine.raw_connection()\u003c/code\u003e\nnow supports the context manager protocol, automatically returning the\nconnection to the pool when exiting the context.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13116\"\u003e#13116\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed an issue in the PostgreSQL dialect where foreign key constraint\nreflection would incorrectly swap or fail to capture \u003ccode\u003eonupdate\u003c/code\u003e and\n\u003ccode\u003eondelete\u003c/code\u003e values when these clauses appeared in a different order than\nexpected in the constraint definition. This issue primarily affected\nPostgreSQL-compatible databases such as CockroachDB, which may return \u003ccode\u003eON DELETE\u003c/code\u003e before \u003ccode\u003eON UPDATE\u003c/code\u003e in the constraint definition string. The\nreflection logic now correctly parses both clauses regardless of their\nordering.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13105\"\u003e#13105\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed issue in the \u003ccode\u003eengine_insertmanyvalues\u003c/code\u003e feature where using\nPostgreSQL's \u003ccode\u003eON CONFLICT\u003c/code\u003e clause with\n\u003ccode\u003e_dml.Insert.returning.sort_by_parameter_order\u003c/code\u003e enabled would\ngenerate invalid SQL when the insert used an implicit sentinel (server-side\nautoincrement primary key). The generated SQL would incorrectly declare a\nsentinel counter column in the \u003ccode\u003eimp_sen\u003c/code\u003e table alias without providing\ncorresponding values in the \u003ccode\u003eVALUES\u003c/code\u003e clause, leading to a\n\u003ccode\u003eProgrammingError\u003c/code\u003e indicating column count mismatch. The fix allows batch\nexecution mode when \u003ccode\u003eembed_values_counter\u003c/code\u003e is active, as the embedded\ncounter provides the ordering capability needed even with upsert behaviors,\nrather than unnecessarily downgrading to row-at-a-time execution.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\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/MTES-MCT/monitorenv/pull/2762","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MTES-MCT%2Fmonitorenv/issues/2762","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2762/packages"}},{"old_version":"0.18.1","new_version":"0.18.3","update_type":"patch","path":null,"pr_created_at":"2026-02-25T04:22:46.000Z","version_change":"0.18.1 → 0.18.3","issue":{"uuid":"3987127135","node_id":"PR_kwDOEcrRgc7GG9p8","number":4861,"state":"closed","title":"[Tech] Python - Bump the non-major-dependencies group across 1 directory with 8 updates","user":"dependabot[bot]","labels":["tech. enhancement","dependencies"],"assignees":["VincentAntoine"],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-03-04T04:24:32.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-25T04:22:46.000Z","updated_at":"2026-03-04T04:24:34.000Z","time_to_close":604906,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[Tech] Python - Bump","group_name":"non-major-dependencies","update_count":8,"packages":[{"name":"coverage","old_version":"7.13.3","new_version":"7.13.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"geoalchemy2","old_version":"0.18.1","new_version":"0.18.3","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"css-inline","old_version":"0.19.1","new_version":"0.20.0","repository_url":"https://github.com/Stranger6667/css-inline"},{"name":"pypdf","old_version":"6.6.2","new_version":"6.7.3","repository_url":"https://github.com/py-pdf/pypdf"},{"name":"clickhouse-connect","old_version":"0.10.0","new_version":"0.11.0","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"prefect","old_version":"3.6.9","new_version":"3.6.19","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"sphinx-rtd-theme","old_version":"3.0.2","new_version":"3.1.0","repository_url":"https://github.com/readthedocs/sphinx_rtd_theme"},{"name":"sphinx-autoapi","old_version":"3.6.1","new_version":"3.7.0","repository_url":"https://github.com/readthedocs/sphinx-autoapi"}],"path":null,"ecosystem":"pip"},"body":"Bumps the non-major-dependencies group with 8 updates in the /pipeline directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.3` | `7.13.4` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.18.1` | `0.18.3` |\n| [css-inline](https://github.com/Stranger6667/css-inline) | `0.19.1` | `0.20.0` |\n| [pypdf](https://github.com/py-pdf/pypdf) | `6.6.2` | `6.7.3` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.10.0` | `0.11.0` |\n| [prefect](https://github.com/PrefectHQ/prefect) | `3.6.9` | `3.6.19` |\n| [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) | `3.0.2` | `3.1.0` |\n| [sphinx-autoapi](https://github.com/readthedocs/sphinx-autoapi) | `3.6.1` | `3.7.0` |\n\n\nUpdates `coverage` from 7.13.3 to 7.13.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.4 — 2026-02-09\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the third-party code fix in 7.13.3 required examining the parent\ndirectories where coverage was run. In the unusual situation that one of the\nparent directories is unreadable, a PermissionError would occur, as\ndescribed in \u003ccode\u003eissue 2129\u003c/code\u003e_. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: in test suites that change sys.path, coverage.py could fail with\n\u0026quot;RuntimeError: Set changed size during iteration\u0026quot; as described and fixed in\n\u003ccode\u003epull 2130\u003c/code\u003e_. Thanks, Noah Fatsi.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWe now publish ppc64le wheels, thanks to \u003ccode\u003ePankhudi Jain \u0026lt;pull 2121_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2121: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2121\"\u003ecoveragepy/coveragepy#2121\u003c/a\u003e\n.. _issue 2129: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2129\"\u003ecoveragepy/coveragepy#2129\u003c/a\u003e\n.. _pull 2130: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2130\"\u003ecoveragepy/coveragepy#2130\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-3:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/4f78d57f83ff8a4976043e8a8fcea24b91891840\"\u003e\u003ccode\u003e4f78d57\u003c/code\u003e\u003c/a\u003e build: no need to publish status.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/f8616ff5e6386648aa40300e36c6cecda79a1faa\"\u003e\u003ccode\u003ef8616ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/fcf8c68db986970e6000bf75ec3c3115ede867df\"\u003e\u003ccode\u003efcf8c68\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/189ecfd000867e5c74e7d74ee3bd75742d5d584d\"\u003e\u003ccode\u003e189ecfd\u003c/code\u003e\u003c/a\u003e docs: thanks Pankhudi Jain for ppc64le wheels \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2121\"\u003e#2121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/58aade0eb92d9d1e3755c65a5cf7a951e7bd6c6a\"\u003e\u003ccode\u003e58aade0\u003c/code\u003e\u003c/a\u003e build: add support for ppc64le architecture (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2121\"\u003e#2121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8ea42c874fbfc96535156300225bda22bc93ac68\"\u003e\u003ccode\u003e8ea42c8\u003c/code\u003e\u003c/a\u003e chore: bump actions/attest-build-provenance (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2131\"\u003e#2131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/c09595f70758b78156efbd7c8f034799d09322aa\"\u003e\u003ccode\u003ec09595f\u003c/code\u003e\u003c/a\u003e docs: Janine put a lot of effort into debugging issue \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2128\"\u003e#2128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/8ee1760f40b8822aa2b11ff95ab63481be68a8a0\"\u003e\u003ccode\u003e8ee1760\u003c/code\u003e\u003c/a\u003e docs: Greg wrote a great issue: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2129\"\u003e#2129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/76ba0437611fc2787cb0450dc94b02bc2848fdee\"\u003e\u003ccode\u003e76ba043\u003c/code\u003e\u003c/a\u003e docs: thanks, Noah Fatsi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/371fcc5727e9d8fba816061756af94646b4bcfbb\"\u003e\u003ccode\u003e371fcc5\u003c/code\u003e\u003c/a\u003e fix: set fixed paths_list in TreeMatcher init (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2130\"\u003e#2130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.3...7.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geoalchemy2` from 0.18.1 to 0.18.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/584\"\u003egeoalchemy/geoalchemy2#584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.3 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/587\"\u003egeoalchemy/geoalchemy2#587\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.2...0.18.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/575\"\u003egeoalchemy/geoalchemy2#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/576\"\u003egeoalchemy/geoalchemy2#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/577\"\u003egeoalchemy/geoalchemy2#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump 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/geoalchemy/geoalchemy2/pull/578\"\u003egeoalchemy/geoalchemy2#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/580\"\u003egeoalchemy/geoalchemy2#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: Fix package discovery by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/581\"\u003egeoalchemy/geoalchemy2#581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.2 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/582\"\u003egeoalchemy/geoalchemy2#582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.2\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Fix Shapely import - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Fix package discovery - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Add more type hints in from_shape module - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Upgrade packaging and formatting tools - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/576\"\u003e#576\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/geoalchemy/geoalchemy2/commit/943b456ee3726db7a4b890309d9e864866bd8614\"\u003e\u003ccode\u003e943b456\u003c/code\u003e\u003c/a\u003e Release: 0.18.3 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/55ab8737ae818b47c28a17fb6102b3eb94208c06\"\u003e\u003ccode\u003e55ab873\u003c/code\u003e\u003c/a\u003e Fix: Fix Shapely import (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/5e9680be84369cf64c90f70a0f2ddac6cd27f15f\"\u003e\u003ccode\u003e5e9680b\u003c/code\u003e\u003c/a\u003e Release: 0.18.2 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/582\"\u003e#582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/59440f1aa593917b4c27997b22cb9eac54b54040\"\u003e\u003ccode\u003e59440f1\u003c/code\u003e\u003c/a\u003e Build: Fix package discovery (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/581\"\u003e#581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/b6440a2fe70dd0629d3b882c8fb0e7bfba13f922\"\u003e\u003ccode\u003eb6440a2\u003c/code\u003e\u003c/a\u003e Chore: Add more type hints in from_shape module (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/580\"\u003e#580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/a44b0dcdfec43af8b53d02875b6edf2d43f9bc70\"\u003e\u003ccode\u003ea44b0dc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/checkout from 4 to 6 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/578\"\u003e#578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/523dd53616e37fb77e8afc4f394074844e8cc6ec\"\u003e\u003ccode\u003e523dd53\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/577\"\u003e#577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/c2a1e17efa69d555c25bfa58a6663419db084c6d\"\u003e\u003ccode\u003ec2a1e17\u003c/code\u003e\u003c/a\u003e Build: Upgrade packaging and formatting tools (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/576\"\u003e#576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/1b4b141aa1ee4fdd8ff03071f025282e29012d35\"\u003e\u003ccode\u003e1b4b141\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/575\"\u003e#575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.1...0.18.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `css-inline` from 0.19.1 to 0.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Stranger6667/css-inline/releases\"\u003ecss-inline's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[C] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapply_width_attributes\u003c/code\u003e and \u003ccode\u003eapply_height_attributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Java] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapplyWidthAttributes\u003c/code\u003e and \u003ccode\u003eapplyHeightAttributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[JavaScript] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapplyWidthAttributes\u003c/code\u003e and \u003ccode\u003eapplyHeightAttributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[PHP] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapplyWidthAttributes\u003c/code\u003e and \u003ccode\u003eapplyHeightAttributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[Python] Release 0.20.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eapply_width_attributes\u003c/code\u003e and \u003ccode\u003eapply_height_attributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003ePyO3\u003c/code\u003e to \u003ccode\u003e0.28.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Stranger6667/css-inline/blob/master/CHANGELOG.md\"\u003ecss-inline's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.20.0] - 2026-02-07\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eInlineOptions::apply_width_attributes\u003c/code\u003e and \u003ccode\u003eInlineOptions::apply_height_attributes\u003c/code\u003e options to add dimension HTML attributes from CSS properties on supported elements (\u003ccode\u003etable\u003c/code\u003e, \u003ccode\u003etd\u003c/code\u003e, \u003ccode\u003eth\u003c/code\u003e, \u003ccode\u003eimg\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Stranger6667/css-inline/issues/652\"\u003e#652\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip selectors that reference non-existent classes, IDs, or tags.\u003c/li\u003e\n\u003cli\u003eFaster HTML serialization for styles containing double quotes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/f1187da861cb5644f034e17f7279ebb35aa651fb\"\u003e\u003ccode\u003ef1187da\u003c/code\u003e\u003c/a\u003e chore(c): Release 0.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/044f555c5d6a3b1db5d4f825006e1e414f155466\"\u003e\u003ccode\u003e044f555\u003c/code\u003e\u003c/a\u003e chore(python): Release 0.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/3ae971da16e7cc3e39b360c0b3c16987096be493\"\u003e\u003ccode\u003e3ae971d\u003c/code\u003e\u003c/a\u003e chore(python): Update PyO3 to 0.28.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/a21fd68d7132e641094d34dcd82b91c7ef8bd541\"\u003e\u003ccode\u003ea21fd68\u003c/code\u003e\u003c/a\u003e chore(ruby): Update dependency on css-inline to 0.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/fb56972e9581b597db030d546d7f405b6d7eb16a\"\u003e\u003ccode\u003efb56972\u003c/code\u003e\u003c/a\u003e build(deps): bump bytes in /bindings/ruby/ext/css_inline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/9cca63a36b354e774dea1b9d0bbdf5a7a82bd00b\"\u003e\u003ccode\u003e9cca63a\u003c/code\u003e\u003c/a\u003e build(deps): bump bytes from 1.10.1 to 1.11.1 in /bindings/ruby\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/59c31809d91628fb6804dfd0d96cbe64d59a9541\"\u003e\u003ccode\u003e59c3180\u003c/code\u003e\u003c/a\u003e feat: Options to add dimension HTML attributes from CSS properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/74e9718821417e9ac5eec29c412efb8bc0975a95\"\u003e\u003ccode\u003e74e9718\u003c/code\u003e\u003c/a\u003e build(deps): update getrandom requirement in /bindings/javascript\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/8a48718b7f41cfc75672463af309a0ee2c30bc7d\"\u003e\u003ccode\u003e8a48718\u003c/code\u003e\u003c/a\u003e build(deps): bump tar from 7.5.6 to 7.5.7 in /bindings/javascript\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Stranger6667/css-inline/commit/069cf59819b5ee58ae0421f5588f06c4fe561781\"\u003e\u003ccode\u003e069cf59\u003c/code\u003e\u003c/a\u003e docs: Update README\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Stranger6667/css-inline/compare/c-v0.19.1...c-v0.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pypdf` from 6.6.2 to 6.7.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/py-pdf/pypdf/releases\"\u003epypdf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e) by \u003ca href=\"https://github.com/rampageservices\"\u003e\u003ccode\u003e@​rampageservices\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of page boxes defined on \u003ccode\u003e/Pages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3650\"\u003e#3650\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.1...6.7.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.1, 2026-02-17\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDetect cyclic references when accessing TreeObject.children (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3645\"\u003e#3645\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit size of \u003ccode\u003e/ToUnicode\u003c/code\u003e entries (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3646\"\u003e#3646\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit FlateDecode recovery attempts (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3644\"\u003e#3644\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid own object replacement logic in \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3638\"\u003e#3638\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix UnboundLocalError when update_page_form_field_values with /Sig (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3634\"\u003e#3634\u003c/a\u003e) by \u003ca href=\"https://github.com/John-Sharp\"\u003e\u003ccode\u003e@​John-Sharp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid divison by zero when decoding FlateDecode PNG prediction (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3641\"\u003e#3641\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.0...6.7.1\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.0, 2026-02-08\u003c/h2\u003e\n\u003ch2\u003eWhat's new\u003c/h2\u003e\n\u003ch3\u003eDeprecations (DEP)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate support for abbreviations in decode_stream_data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3617\"\u003e#3617\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ability to add font resources for 14 Adobe Core fonts in text widget annotations (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3624\"\u003e#3624\u003c/a\u003e) by \u003ca href=\"https://github.com/PJBrs\"\u003e\u003ccode\u003e@​PJBrs\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid invalid load for ICCBased FlateDecode images in mode 1 (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3619\"\u003e#3619\u003c/a\u003e) by \u003ca href=\"https://github.com/stefan6419846\"\u003e\u003ccode\u003e@​stefan6419846\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md\"\u003epypdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.7.3, 2026-02-24\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.2, 2026-02-22\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix handling of page boxes defined on \u003ccode\u003e/Pages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3650\"\u003e#3650\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.1...6.7.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.1, 2026-02-17\u003c/h2\u003e\n\u003ch3\u003eSecurity (SEC)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDetect cyclic references when accessing TreeObject.children (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3645\"\u003e#3645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLimit size of \u003ccode\u003e/ToUnicode\u003c/code\u003e entries (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3646\"\u003e#3646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLimit FlateDecode recovery attempts (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3644\"\u003e#3644\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid own object replacement logic in \u003ccode\u003ePageObject.replace_contents\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3638\"\u003e#3638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix UnboundLocalError when update_page_form_field_values with /Sig (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3634\"\u003e#3634\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid divison by zero when decoding FlateDecode PNG prediction (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3641\"\u003e#3641\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.7.0...6.7.1\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 6.7.0, 2026-02-08\u003c/h2\u003e\n\u003ch3\u003eDeprecations (DEP)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate support for abbreviations in decode_stream_data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3617\"\u003e#3617\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features (ENH)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ability to add font resources for 14 Adobe Core fonts in text widget annotations (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3624\"\u003e#3624\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes (BUG)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid invalid load for ICCBased FlateDecode images in mode 1 (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3619\"\u003e#3619\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRobustness (ROB)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix AESV2 decryption when /Length missing in encrypt dict (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3629\"\u003e#3629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix merging when annotations point to NullObject (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3613\"\u003e#3613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCheck for \u003ccode\u003eself._info\u003c/code\u003e being None in \u003ccode\u003ecompress_identical_objects\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3612\"\u003e#3612\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/py-pdf/pypdf/commit/05e6d3c03deaec6b16b53825465537ac9e7a1a14\"\u003e\u003ccode\u003e05e6d3c\u003c/code\u003e\u003c/a\u003e REL: 6.7.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/7a4c8246ed48d9d328fb596942271da47b6d109c\"\u003e\u003ccode\u003e7a4c824\u003c/code\u003e\u003c/a\u003e SEC: Use zlib decompression limit when retrieving XFA data (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/4f1260f1d0c0c7c307f03e88257f8eeb229d5954\"\u003e\u003ccode\u003e4f1260f\u003c/code\u003e\u003c/a\u003e REL: 6.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/6ef86cbb3c6e7d0afc146fba92f0a90351bfcdbc\"\u003e\u003ccode\u003e6ef86cb\u003c/code\u003e\u003c/a\u003e DOC: Sync release process with current status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/f0a462d36971cf077d74492a348d0d06fd60ea4d\"\u003e\u003ccode\u003ef0a462d\u003c/code\u003e\u003c/a\u003e SEC: Prevent infinite loop from circular xref /Prev references (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3655\"\u003e#3655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/c707d3c2c770b429bcf8e0893fdc099808856da4\"\u003e\u003ccode\u003ec707d3c\u003c/code\u003e\u003c/a\u003e DOC: Encourage contributors to not use our CI for debugging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/46705137f1eb10181841b4f490994571151ae826\"\u003e\u003ccode\u003e4670513\u003c/code\u003e\u003c/a\u003e BUG: Fix wrong LUT size error (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3651\"\u003e#3651\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/801353ad77cb9869a32fd2a7c65dc8d1dc025901\"\u003e\u003ccode\u003e801353a\u003c/code\u003e\u003c/a\u003e MAINT: Spelling corrections (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3647\"\u003e#3647\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/4d578363d65f97f5ea0e7b6f2a91f4b4a3d6c908\"\u003e\u003ccode\u003e4d57836\u003c/code\u003e\u003c/a\u003e BUG: Fix handling of page boxes defined on \u003ccode\u003e/Pages\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/py-pdf/pypdf/issues/3650\"\u003e#3650\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/py-pdf/pypdf/commit/ad2a45d769d56038af8747195cae097bbdb68eee\"\u003e\u003ccode\u003ead2a45d\u003c/code\u003e\u003c/a\u003e REL: 6.7.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/py-pdf/pypdf/compare/6.6.2...6.7.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `clickhouse-connect` from 0.10.0 to 0.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/releases\"\u003eclickhouse-connect's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for mid-stream exceptions. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/626\"\u003e#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for QBit data type. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/570\"\u003e#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the ability to create table from PyArrow objects. Addresses \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/588\"\u003e#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlways generate \u003ccode\u003equery_id\u003c/code\u003e from the client side as a \u003ccode\u003eUUID4\u003c/code\u003e if it is not explicitly set. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/596\"\u003e#596\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtend support for creating tables from PyArrow objects to include datetime/timestamp types. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/605\"\u003e#605\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pre-commit hooks for auto-linting contributions at commit time. Addresses \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAuto-enable \u003ccode\u003ecancel_http_readonly_queries_on_client_close\u003c/code\u003e setting for HTTP clients to ensure SELECT queries are cancelled on the server when the client disconnects. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/641\"\u003e#641\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise \u003ccode\u003eOperationalError\u003c/code\u003e when \u003ccode\u003eResponseSource\u003c/code\u003e hits network failure before any data is received. Previously, empty result would be returned. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/620\"\u003e#620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a bug where \u003ccode\u003eInsertContext\u003c/code\u003e state was not reset on insert failure, leading to reuse errors when data was passed separately. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/616\"\u003e#616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed UTC-equivalent timezone recognition issue where servers returning \u003ccode\u003eEtc/UCT\u003c/code\u003e, \u003ccode\u003eGMT\u003c/code\u003e, or other UTC-equivalent timezone names caused inconsistent behavior with \u003ccode\u003eutc_tz_aware=False\u003c/code\u003e. DateTime columns with explicit UTC timezones now correctly return naive datetimes when \u003ccode\u003eutc_tz_aware=False\u003c/code\u003e regardless of the specific UTC-equivalent timezone name returned by the server. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/629\"\u003e#629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtend UTC-equivalence checks to Arrow queries.\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/akkik04\"\u003e\u003ccode\u003e@​akkik04\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/597\"\u003eClickHouse/clickhouse-connect#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/m-dziuba\"\u003e\u003ccode\u003e@​m-dziuba\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/613\"\u003eClickHouse/clickhouse-connect#613\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/abhisheksurve45\"\u003e\u003ccode\u003e@​abhisheksurve45\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/618\"\u003eClickHouse/clickhouse-connect#618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dave-shawley\"\u003e\u003ccode\u003e@​dave-shawley\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/611\"\u003eClickHouse/clickhouse-connect#611\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Milias\"\u003e\u003ccode\u003e@​Milias\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/621\"\u003eClickHouse/clickhouse-connect#621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/643\"\u003eClickHouse/clickhouse-connect#643\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/compare/v0.10.0...v0.11.0\"\u003ehttps://github.com/ClickHouse/clickhouse-connect/compare/v0.10.0...v0.11.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/ClickHouse/clickhouse-connect/blob/main/CHANGELOG.md\"\u003eclickhouse-connect's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.11.0, 2026-02-10\u003c/h2\u003e\n\u003ch3\u003ePython 3.9 Deprecation\u003c/h3\u003e\n\u003cp\u003ePython 3.9 EOL'd Oct 2025. Support for Python 3.9 is now softly deprecated and has been removed from our CI test matrix but\ndistribution wheels will continue to be built until the 1.0 release or until the builds naturally fail, whichever comes first.\nA \u003ccode\u003eDeprecationWarning\u003c/code\u003e will now be displayed when initializing the client on Python 3.9. Users should plan to upgrade to\nPython 3.10+ as 3.9 compatibility may break unexpectedly in future updates.\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise OperationalError when ResponseSource hits network failure before any data is received. Previously, empty result would be returned. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/620\"\u003e#620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue with DROP table in client temp table test.\u003c/li\u003e\n\u003cli\u003eFixed a bug where InsertContext state was not reset on insert failure, leading to reuse errors when data was passed separately.\u003c/li\u003e\n\u003cli\u003eFixed UTC-equivalent timezone recognition issue where servers returning \u003ccode\u003eEtc/UCT\u003c/code\u003e, \u003ccode\u003eGMT\u003c/code\u003e, or other UTC-equivalent timezone names caused inconsistent behavior with \u003ccode\u003eutc_tz_aware=False\u003c/code\u003e. DateTime columns with explicit UTC timezones now correctly return naive datetimes when \u003ccode\u003eutc_tz_aware=False\u003c/code\u003e regardless of the specific UTC-equivalent timezone name returned by the server. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/629\"\u003e#629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed percent sign (\u003ccode\u003e%\u003c/code\u003e) double encoding in SQLAlchemy string literals when using \u003ccode\u003etext()\u003c/code\u003e queries with \u003ccode\u003eformatDateTime\u003c/code\u003e and similar functions. The cursor now correctly unescapes \u003ccode\u003e%%\u003c/code\u003e back to \u003ccode\u003e%\u003c/code\u003e for non-parameterized queries. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/297\"\u003e#297\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for mid-stream exceptions. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/626\"\u003e#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for QBit data type. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/570\"\u003e#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the ability to create table from PyArrow objects. Addresses \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/588\"\u003e#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlways generate query_id from the client side as a UUID4 if it is not explicitly set. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/596\"\u003e#596\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtend support for creating tables from PyArrow objects to include datetime/timestamp types. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/605\"\u003e#605\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pre-commit hooks for auto-linting contributions at commit time. Addresses \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing type annotation. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/567\"\u003e#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAuto-enable \u003ccode\u003ecancel_http_readonly_queries_on_client_close\u003c/code\u003e setting for HTTP clients to ensure SELECT queries are cancelled on the server when the client disconnects. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/641\"\u003e#641\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/ClickHouse/clickhouse-connect/commit/eef09a90b8b46375335f9a5a42a52bf7b8f8328e\"\u003e\u003ccode\u003eeef09a9\u003c/code\u003e\u003c/a\u003e 0.11.0 release prep (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/647\"\u003e#647\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/b08a4296b2b34480abf7295cc7c239f1e74d93b4\"\u003e\u003ccode\u003eb08a429\u003c/code\u003e\u003c/a\u003e Fix mypy typing errors by explicitly exporting Client (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/643\"\u003e#643\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/fe36fd99f533d8dafddce5daef5dcad8e4af8383\"\u003e\u003ccode\u003efe36fd9\u003c/code\u003e\u003c/a\u003e raise operationalerror when hitting network failure prior to receiving data i...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/713c9b4d1f43dc35362e82527469b885294a74aa\"\u003e\u003ccode\u003e713c9b4\u003c/code\u003e\u003c/a\u003e Joe/626 add support for mid stream exception detection via x clickhouse excep...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/5d89074fcd97d3c515d674dc4e481583d12d390a\"\u003e\u003ccode\u003e5d89074\u003c/code\u003e\u003c/a\u003e auto enable cancel readonly queries on client close (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/642\"\u003e#642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/f5934ab33a968b59c6e679f9344214e6501c6a11\"\u003e\u003ccode\u003ef5934ab\u003c/code\u003e\u003c/a\u003e fix: handle Etc/UTC timezone equivalence for naive datetime conversion (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/621\"\u003e#621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/ff094f788c82520d14e0ce124d1ca8421e8385d4\"\u003e\u003ccode\u003eff094f7\u003c/code\u003e\u003c/a\u003e ensure utc-equivalent timezones are recognized (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/630\"\u003e#630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/5990dc562c604bc17e1a2f1cfaffd2c3cbcfd62d\"\u003e\u003ccode\u003e5990dc5\u003c/code\u003e\u003c/a\u003e Joe/610 drop python39 support (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/628\"\u003e#628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/fe1654f50008a716cbe710c4da3246a6f054c43b\"\u003e\u003ccode\u003efe1654f\u003c/code\u003e\u003c/a\u003e Misc. test workflow cleanup/improvements (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/631\"\u003e#631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/commit/c0f7bde3e5aa91042bcee102acd79b2d6f47c3b7\"\u003e\u003ccode\u003ec0f7bde\u003c/code\u003e\u003c/a\u003e update test matrix (\u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/627\"\u003e#627\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/compare/v0.10.0...v0.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prefect` from 3.6.9 to 3.6.19\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PrefectHQ/prefect/releases\"\u003eprefect's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.6.19 - This release sucks in the best way possible\u003c/h2\u003e\n\u003cp\u003eThis release introduces an optional database vacuum service that periodically deletes old flow runs and orphaned resources (logs, artifacts, artifact collections) to keep your database lean. It's \u003cstrong\u003edisabled by default\u003c/strong\u003e — enable it with \u003ccode\u003ePREFECT_SERVER_SERVICES_DB_VACUUM_ENABLED=true\u003c/code\u003e. Once enabled, it runs hourly and removes terminal top-level flow runs older than 90 days. Both the retention period and frequency are configurable via \u003ccode\u003ePREFECT_SERVER_SERVICES_DB_VACUUM_RETENTION_PERIOD\u003c/code\u003e (in seconds, minimum 1 hour) and \u003ccode\u003ePREFECT_SERVER_SERVICES_DB_VACUUM_LOOP_SECONDS\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements ➕➕\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd DB vacuum service in Docket by \u003ca href=\"https://github.com/tom21100227\"\u003e\u003ccode\u003e@​tom21100227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20746\"\u003e#20746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Docker images for \u003ccode\u003eprefect-gcp\u003c/code\u003e and \u003ccode\u003eprefect-azure\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20771\"\u003e#20771\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug Fixes 🐞\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd SSRF protection to \u003ccode\u003eCustomWebhookNotificationBlock\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20781\"\u003e#20781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix scheduler to check per-schedule run counts for multi-schedule deployments by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20699\"\u003e#20699\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix FastAPI 0.132.0 compatibility by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20822\"\u003e#20822\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDevelopment \u0026amp; Tidiness 🧹\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd UI v2 unit tests and E2E tests to Devin flaky test workflow by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20774\"\u003e#20774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate work-pool command to cyclopts by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20766\"\u003e#20766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate transfer command to cyclopts by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20767\"\u003e#20767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate cloud command to cyclopts by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20780\"\u003e#20780\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate deploy command to cyclopts by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20783\"\u003e#20783\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove bogus alias from cyclopts deployment command by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20793\"\u003e#20793\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd deploy to cyclopts routing and remove dead delegation code by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20794\"\u003e#20794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate automation command to cyclopts and register init at root level by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20802\"\u003e#20802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit database and orchestration tests into separate jobs by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20803\"\u003e#20803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClean up cyclopts phase 2 — server status, stdin handling, watch monkeypatch by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20807\"\u003e#20807\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation 📓\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eImportString\u003c/code\u003e section to form-building guide by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20768\"\u003e#20768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix MDX rendering issues in prefect-databricks API reference docs by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20792\"\u003e#20792\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.18...3.6.19\"\u003ehttps://github.com/PrefectHQ/prefect/compare/3.6.18...3.6.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.6.19.dev3: Nightly Development Release\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eEnhancements ➕➕\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Docker image build and publish workflows for \u003ccode\u003eprefect-gcp\u003c/code\u003e and \u003ccode\u003eprefect-azure\u003c/code\u003e by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20771\"\u003ePrefectHQ/prefect#20771\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDevelopment \u0026amp; Tidiness 🧹\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore(deps): update coolname requirement from \u0026lt;4.0.0,\u0026gt;=1.0.4 to \u0026gt;=1.0.4,\u0026lt;5.0.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/PrefectHQ/prefect/pull/20797\"\u003ePrefectHQ/prefect#20797\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): migrate automation command + register init at root level in cyclopts by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20802\"\u003ePrefectHQ/prefect#20802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: split database and orchestration tests into separate jobs by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20803\"\u003ePrefectHQ/prefect#20803\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUncategorized\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(cli): add deploy to cyclopts routing + remove dead delegation code by \u003ca href=\"https://github.com/zzstoatzz\"\u003e\u003ccode\u003e@​zzstoatzz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20794\"\u003ePrefectHQ/prefect#20794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(prefect-dbt): add DbtCloudExecutor for per-node cloud orchestration by \u003ca href=\"https://github.com/desertaxle\"\u003e\u003ccode\u003e@​desertaxle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20784\"\u003ePrefectHQ/prefect#20784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Optional DB Vaccum Service in Docket by \u003ca href=\"https://github.com/tom21100227\"\u003e\u003ccode\u003e@​tom21100227\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20746\"\u003ePrefectHQ/prefect#20746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: cyclopts phase 2 cleanup — server status, stdin handling, watch monkeypatch by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20807\"\u003ePrefectHQ/prefect#20807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(10-03): state color consistency and regression prevention by \u003ca href=\"https://github.com/devin-ai-integration\"\u003e\u003ccode\u003e@​devin-ai-integration\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/pull/20809\"\u003ePrefectHQ/prefect#20809\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/PrefectHQ/prefect/commit/1c3149c73c91b61e068b3fb1d1a61cb6fa45a6d3\"\u003e\u003ccode\u003e1c3149c\u003c/code\u003e\u003c/a\u003e Add release notes for 3.6.19 (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20823\"\u003e#20823\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/96254d2809d420c3fc0930075c7181447d0df660\"\u003e\u003ccode\u003e96254d2\u003c/code\u003e\u003c/a\u003e fix(11-02): targeted responsive grid fixes for filter bars (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20815\"\u003e#20815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/278a2419782e025a3685f843cbd55f8e835bcf9c\"\u003e\u003ccode\u003e278a241\u003c/code\u003e\u003c/a\u003e fix: FastAPI 0.132.0 compatibility (content-type and ORJSONResponse) (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20822\"\u003e#20822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/122216da17d61d61f46e13899bd4e5722e47d05d\"\u003e\u003ccode\u003e122216d\u003c/code\u003e\u003c/a\u003e feat(11-04): well layout standardization — LayoutWellSidebar for deployment a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/d80f003056f65b9ded02bd43d0900830f8ec4cd0\"\u003e\u003ccode\u003ed80f003\u003c/code\u003e\u003c/a\u003e feat(11-03): spacing, header structure, and horizontal padding standardizatio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/1c7409f9fce97d1ead584701326753deab03e2cb\"\u003e\u003ccode\u003e1c7409f\u003c/code\u003e\u003c/a\u003e feat(11-01): foundation bug fixes — DataTable overflow, LayoutWell min-h, Sid...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/33c6c4c811cd5bc30112615678fb2a7bce4359ba\"\u003e\u003ccode\u003e33c6c4c\u003c/code\u003e\u003c/a\u003e feat(10-03): state color consistency and regression prevention (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20809\"\u003e#20809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/56d71e423b3891d7b496ab37d1e207b71aa34686\"\u003e\u003ccode\u003e56d71e4\u003c/code\u003e\u003c/a\u003e fix: cyclopts phase 2 cleanup — server status, stdin handling, watch monkeypa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/853c40b5ccc31c38207e1a0ff35fd0ea52e07a16\"\u003e\u003ccode\u003e853c40b\u003c/code\u003e\u003c/a\u003e feat(10-02): replace hardcoded colors with semantic tokens (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20808\"\u003e#20808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PrefectHQ/prefect/commit/53b2a87b381991f30bb24475bc184921cdea9aea\"\u003e\u003ccode\u003e53b2a87\u003c/code\u003e\u003c/a\u003e feat(10-01): CSS token foundation for dark mode (\u003ca href=\"https://redirect.github.com/PrefectHQ/prefect/issues/20805\"\u003e#20805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PrefectHQ/prefect/compare/3.6.9...3.6.19\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-rtd-theme` from 3.0.2 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst\"\u003esphinx-rtd-theme's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc2:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for docutils 0.22\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.1.0rc1:\u003c/p\u003e\n\u003ch1\u003e3.1.0rc1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Sphinx 9.x\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _release-3.0.2:\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/readthedocs/sphinx_rtd_theme/commit/795de79c8b311592f5863a25307d85924bf52164\"\u003e\u003ccode\u003e795de79\u003c/code\u003e\u003c/a\u003e Release 3.1.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1676\"\u003e#1676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/66d0fdd910e142d058c20b474338051b0751f03c\"\u003e\u003ccode\u003e66d0fdd\u003c/code\u003e\u003c/a\u003e Add Python 3.14 to the test suite (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1668\"\u003e#1668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/fbe5e6004195a1e75654eface1884485c57eb68e\"\u003e\u003ccode\u003efbe5e60\u003c/code\u003e\u003c/a\u003e 3.1.0rc2 with support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1674\"\u003e#1674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/a76174c0bb0af755718f3cbdffbf97d19d0ac0ec\"\u003e\u003ccode\u003ea76174c\u003c/code\u003e\u003c/a\u003e Add support for docutils 0.22 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1671\"\u003e#1671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/20733c3bcc60df8eda23512a0f3ccb2861486110\"\u003e\u003ccode\u003e20733c3\u003c/code\u003e\u003c/a\u003e Add support for Sphinx 9.0.0 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1666\"\u003e#1666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/71aacd35048c8bc2ab646ed4e3e9af1075034387\"\u003e\u003ccode\u003e71aacd3\u003c/code\u003e\u003c/a\u003e Update Code of Conduct URL (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1664\"\u003e#1664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/5a263753d52c1628c88392fbf52c729f5a8e79b5\"\u003e\u003ccode\u003e5a26375\u003c/code\u003e\u003c/a\u003e Run tests and build docs with Sphinx 8.2 (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1640\"\u003e#1640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/commit/8d4d394dad2d55cf9a4db880effac6aa5c7b12e6\"\u003e\u003ccode\u003e8d4d394\u003c/code\u003e\u003c/a\u003e Sidebar should not be floating on mobile (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1622\"\u003e#1622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/readthedocs/sphinx_rtd_theme/compare/3.0.2...3.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autoapi` from 3.6.1 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/readthedocs/sphinx-autoapi/releases\"\u003esphinx-autoapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.7.0\u003c/h2\u003e\n\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded autoapi.import warning for when AutoAPI directives are given non-existent objects\u003c/li\u003e\n\u003cli\u003eAdding autoapi_follow_symlinks, which allows api to traverse into symlinked directories when generating the API documentation.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and officially support Python 3.14\u003c/li\u003e\n\u003cli\u003eSupport rendering PEP-695 type parameters\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRender typing_extensions.TypeAlias like other type aliases (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PythonFunction.overloads typing when source code overload(s) do not provide a return type (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eMisc\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003eHandling case where match returns None to fix mypy unit test.\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/readthedocs/sphinx-autoapi/blob/main/CHANGELOG.rst\"\u003esphinx-autoapi's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.7.0 (2026-02-10)\u003c/h2\u003e\n\u003cp\u003eFeatures\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded autoapi.import warning for when AutoAPI directives are given non-existent objects\u003c/li\u003e\n\u003cli\u003eAdding \u003ccode\u003eautoapi_follow_symlinks\u003c/code\u003e, which allows api to traverse into symlinked directories when generating the API documentation.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and officially support Python 3.14\u003c/li\u003e\n\u003cli\u003eSupport rendering PEP-695 type parameters\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRender typing_extensions.TypeAlias like other type aliases (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ePythonFunction.overloads\u003c/code\u003e typing when source code overload(s) do not provide a return type (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMisc\n^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003eHandling case where match returns None to fix mypy unit test.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/0917ed2d4a42fa4ddd3668247d10ca6d902d7ada\"\u003e\u003ccode\u003e0917ed2\u003c/code\u003e\u003c/a\u003e Version 3.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/394beb453256c9c15a30cb5851682fed2a844fc4\"\u003e\u003ccode\u003e394beb4\u003c/code\u003e\u003c/a\u003e Add warning for missing import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/96cd74d1a015a05bf4409a73b173dcdf8421902a\"\u003e\u003ccode\u003e96cd74d\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/c248b85d66c233a4673c64944bdeeb394be5116a\"\u003e\u003ccode\u003ec248b85\u003c/code\u003e\u003c/a\u003e Render typing_extensions.TypeAlias like other type aliases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/a2f49c9689ba76d5518c33fb509c57b5141342df\"\u003e\u003ccode\u003ea2f49c9\u003c/code\u003e\u003c/a\u003e Fix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/5ed0cd5c5172befdbea5b28ea30a4d7a79583e03\"\u003e\u003ccode\u003e5ed0cd5\u003c/code\u003e\u003c/a\u003e Update supported Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/0f7b1ab7b6e6b016b649bc0fb1e5ccffebaa140d\"\u003e\u003ccode\u003e0f7b1ab\u003c/code\u003e\u003c/a\u003e Render type params by default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/42b315cf9168c6ab5375b84a984e4c73df43d5d8\"\u003e\u003ccode\u003e42b315c\u003c/code\u003e\u003c/a\u003e fix: add missing release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/026acde58cc3967b8a3597eda6481bf48f1918a0\"\u003e\u003ccode\u003e026acde\u003c/code\u003e\u003c/a\u003e fix: User may not have provided return annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/commit/cd62d872d1f77dec8ba4fb94b3bd7591fc57428d\"\u003e\u003ccode\u003ecd62d87\u003c/code\u003e\u003c/a\u003e [refactor]: match statement to ifs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/compare/v3.6.1...v3.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/MTES-MCT/monitorfish/pull/4861","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MTES-MCT%2Fmonitorfish/issues/4861","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4861/packages"}},{"old_version":"0.15.0","new_version":"0.18.1","update_type":"minor","path":null,"pr_created_at":"2026-02-19T14:13:25.000Z","version_change":"0.15.0 → 0.18.1","issue":{"uuid":"3963202659","node_id":"PR_kwDOROLWo87E5Cmn","number":23,"state":"open","title":"chore(deps): Bump the python-minor group with 15 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-02-19T14:13:25.000Z","updated_at":"2026-02-19T14:13:26.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python-minor","update_count":15,"packages":[{"name":"uvicorn","old_version":"0.32.0","new_version":"0.41.0"},{"name":"pydantic","old_version":"2.10.0","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.6.0","new_version":"2.13.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"sqlalchemy","old_version":"2.0.36","new_version":"2.0.46"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"alembic","old_version":"1.14.0","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"geoalchemy2","old_version":"0.15.0","new_version":"0.18.1","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.0","repository_url":"https://github.com/redis/hiredis-py"},{"name":"apscheduler","old_version":"3.10.4","new_version":"3.11.2","repository_url":"https://github.com/agronholm/apscheduler"},{"name":"httpx","old_version":"0.27.0","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"sentry-sdk","old_version":"2.19.0","new_version":"2.53.0"},{"name":"testcontainers","old_version":"4.8.0","new_version":"4.14.1"},{"name":"respx","old_version":"0.21.0","new_version":"0.22.0","repository_url":"https://github.com/lundberg/respx"},{"name":"coverage","old_version":"7.6.0","new_version":"7.13.4","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"ruff","old_version":"0.8.0","new_version":"0.15.1","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor group with 15 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.32.0` | `0.41.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.10.0` | `2.12.5` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.6.0` | `2.13.1` |\n| [sqlalchemy[asyncio]](https://github.com/sqlalchemy/sqlalchemy) | `2.0.36` | `2.0.46` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.14.0` | `1.18.4` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.15.0` | `0.18.1` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.0` |\n| [apscheduler](https://github.com/agronholm/apscheduler) | `3.10.4` | `3.11.2` |\n| [httpx](https://github.com/encode/httpx) | `0.27.0` | `0.28.1` |\n| [sentry-sdk[fastapi]](https://github.com/getsentry/sentry-python) | `2.19.0` | `2.53.0` |\n| [testcontainers[postgres,redis]](https://github.com/testcontainers/testcontainers-python) | `4.8.0` | `4.14.1` |\n| [respx](https://github.com/lundberg/respx) | `0.21.0` | `0.22.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.6.0` | `7.13.4` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.8.0` | `0.15.1` |\n\nUpdates `uvicorn[standard]` from 0.32.0 to 0.41.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[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.41.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/t-kawasumi\"\u003e\u003ccode\u003e@​t-kawasumi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2776\"\u003eKludex/uvicorn#2776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fardyn\"\u003e\u003ccode\u003e@​fardyn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2800\"\u003eKludex/uvicorn#2800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewie\"\u003e\u003ccode\u003e@​ewie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2807\"\u003eKludex/uvicorn#2807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shevron\"\u003e\u003ccode\u003e@​shevron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2788\"\u003eKludex/uvicorn#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonashaag\"\u003e\u003ccode\u003e@​jonashaag\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2707\"\u003eKludex/uvicorn#2707\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.40.0...0.41.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 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/2772\"\u003eKludex/uvicorn#2772\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.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return 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/2769\"\u003eKludex/uvicorn#2769\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/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\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.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.41.0 (February 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.0 (September 20, 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/Kludex/uvicorn/commit/9283c0f15cfa82307f57daba4d1b1880902adfb2\"\u003e\u003ccode\u003e9283c0f\u003c/code\u003e\u003c/a\u003e Version 0.41.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2821\"\u003e#2821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a01a33eb8f3ac044cab5964421b9aa308a2bcfca\"\u003e\u003ccode\u003ea01a33e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2ce65bde1509faa958775df8153bdeb5dbaf6f58\"\u003e\u003ccode\u003e2ce65bd\u003c/code\u003e\u003c/a\u003e Ignore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/654f2ed7d7c1a014116d8662e6544f5309375137\"\u003e\u003ccode\u003e654f2ed\u003c/code\u003e\u003c/a\u003e Ensure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a03d9f6f0e99383c76934a82def5a83aeb6b0a47\"\u003e\u003ccode\u003ea03d9f6\u003c/code\u003e\u003c/a\u003e Reduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/e377de40d0a2a1b1d9f55483ee4c1cceb2474502\"\u003e\u003ccode\u003ee377de4\u003c/code\u003e\u003c/a\u003e Add socket path to scope[\u0026quot;server\u0026quot;] (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0779f7f8a4df1cc98433eb30d69027499a0cb7f8\"\u003e\u003ccode\u003e0779f7f\u003c/code\u003e\u003c/a\u003e Poll for readiness in \u003ccode\u003etest_multiprocess_health_check\u003c/code\u003e and \u003ccode\u003erun_server\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2816\"\u003e#2816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7e9ce2c974f1d78d192e81caa7890e2bbae8e711\"\u003e\u003ccode\u003e7e9ce2c\u003c/code\u003e\u003c/a\u003e Poll for PID changes in \u003ccode\u003etest_multiprocess_sighup\u003c/code\u003e instead of fixed sleep (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/99f0d8734d441bf4a1467093766c779a5a1c9868\"\u003e\u003ccode\u003e99f0d87\u003c/code\u003e\u003c/a\u003e Fix grep warning in scripts/sync-version (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2807\"\u003e#2807\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7ae2e6375a90b2e6a3370aa252f5ac2dc06ab892\"\u003e\u003ccode\u003e7ae2e63\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group with 18 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2801\"\u003e#2801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.32.0...0.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.10.0 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.10.0...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.6.0 to 2.13.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.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Deterministic alias selection when using validate_by_name by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/707\"\u003epydantic/pydantic-settings#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd deep merge functionality to config file sources by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for AWS Secrets Manager VersionId parameter by \u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix: Return \u003ccode\u003eNone\u003c/code\u003e for inaccessible GCP Secret Manager secrets by \u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix for cli_kebab_case=\u0026quot;all\u0026quot; and CliImplicitFlag[bool] by \u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnpack type alisases when looking for \u003ccode\u003eNoDecode\u003c/code\u003e by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/695\"\u003epydantic/pydantic-settings#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCliToggleFlag and CliDualFlag 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/717\"\u003epydantic/pydantic-settings#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix for CLI duplicate enum field values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/722\"\u003epydantic/pydantic-settings#722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed load nested config from env by \u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd non-Path files support (for example Traversable) and open files using Path.open method by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd one more traversable test by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/725\"\u003epydantic/pydantic-settings#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI fix fox external list args. 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/727\"\u003epydantic/pydantic-settings#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle case-insensitive retrieval in GoogleSecretManagerSettingsSource by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/730\"\u003epydantic/pydantic-settings#730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI test fixes for help text formatting. 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/735\"\u003epydantic/pydantic-settings#735\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid conflicts with the \u003ccode\u003eNAME\u003c/code\u003e environment variable in WSL by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: When restoring init kwargs, use deterministic order by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/746\"\u003epydantic/pydantic-settings#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd env_prefix_target by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/749\"\u003epydantic/pydantic-settings#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e(default: …)\u003c/code\u003e in the help message for \u003ccode\u003eCliToggleFlag\u003c/code\u003e by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/740\"\u003epydantic/pydantic-settings#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for CLI serialize styles. 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/755\"\u003epydantic/pydantic-settings#755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for overriding default help on CLI internal parser. 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/758\"\u003epydantic/pydantic-settings#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI format_help method support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/759\"\u003epydantic/pydantic-settings#759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(gcp): support SecretVersion annotation for per-field secret versioning by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/763\"\u003epydantic/pydantic-settings#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003esnake_case_conversion\u003c/code\u003e with \u003ccode\u003eenv_prefix\u003c/code\u003e for Azure Key Vault source by \u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Only override preferred_key when no value was found by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/767\"\u003epydantic/pydantic-settings#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/768\"\u003epydantic/pydantic-settings#768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI coerce numeric types. 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/769\"\u003epydantic/pydantic-settings#769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Union Discriminator Choices in Help 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/764\"\u003epydantic/pydantic-settings#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) by \u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.13.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/777\"\u003epydantic/pydantic-settings#777\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/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\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.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for enum kebab case. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/686\"\u003epydantic/pydantic-settings#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply source order: init \u0026gt; env \u0026gt; dotenv \u0026gt; secrets \u0026gt; defaults and pres… by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/688\"\u003epydantic/pydantic-settings#688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd NestedSecretsSettings source by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/690\"\u003epydantic/pydantic-settings#690\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/e87d12df0f42f7f72a3eb6d830cfbfb1d68b4496\"\u003e\u003ccode\u003ee87d12d\u003c/code\u003e\u003c/a\u003e v2.13.1 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/790\"\u003e#790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/acf8c14f5ec314799f5bd0d3f6a1591c4ed2ec97\"\u003e\u003ccode\u003eacf8c14\u003c/code\u003e\u003c/a\u003e Fix JSON decoding for parameterized PEP 695 type aliases (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/780\"\u003e#780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/58b236a36473e01bfe42e5f75d39d46721e0593d\"\u003e\u003ccode\u003e58b236a\u003c/code\u003e\u003c/a\u003e Fix AttributeError with nested env vars for dict fields (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/785\"\u003e#785\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/786\"\u003e#786\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4933f06402ed55e32bcdcefd6c8f59ffe1fefd24\"\u003e\u003ccode\u003e4933f06\u003c/code\u003e\u003c/a\u003e Fix CLI parsing error for set field types since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/787\"\u003e#787\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/788\"\u003e#788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/bd0ebe6215cf215d716e33d833cc2589a1d00a17\"\u003e\u003ccode\u003ebd0ebe6\u003c/code\u003e\u003c/a\u003e Fix RecursionError with self-referential models in CliApp (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/783\"\u003e#783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/eb7840e9f59a7969b23afdbcc4e5081e037736d8\"\u003e\u003ccode\u003eeb7840e\u003c/code\u003e\u003c/a\u003e Fix regression for bool fields since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/784\"\u003e#784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/198e71cf0cd570501535de7ae93a70953150f073\"\u003e\u003ccode\u003e198e71c\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/777\"\u003e#777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/de71e84057b63b251ec84883b5e2ae886f82084f\"\u003e\u003ccode\u003ede71e84\u003c/code\u003e\u003c/a\u003e Add nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0f8f951b89b137bd563ce74dac016ba2c4cdc7a2\"\u003e\u003ccode\u003e0f8f951\u003c/code\u003e\u003c/a\u003e CLI Union Discriminator Choices in Help (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/ce9804c4620d38f0c3b3c1e3ebe10d934fd4ba2e\"\u003e\u003ccode\u003ece9804c\u003c/code\u003e\u003c/a\u003e CLI coerce numeric types. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.6.0...v2.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy[asyncio]` from 2.0.36 to 2.0.46\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[asyncio]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.46\u003c/h1\u003e\n\u003cp\u003eReleased: January 21, 2026\u003c/p\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed typing issues where ORM mapped classes and aliased entities could not\nbe used as keys in result row mappings or as join targets in select\nstatements. Patterns such as \u003ccode\u003erow._mapping[User]\u003c/code\u003e,\n\u003ccode\u003erow._mapping[aliased(User)]\u003c/code\u003e, \u003ccode\u003erow._mapping[with_polymorphic(...)]\u003c/code\u003e\n(rejected by both mypy and Pylance), and \u003ccode\u003e.join(aliased(User))\u003c/code\u003e\n(rejected by Pylance) are documented and fully supported at runtime but\nwere previously rejected by type checkers. The type definitions for\n\u003ccode\u003e_KeyType\u003c/code\u003e and \u003ccode\u003e_FromClauseArgument\u003c/code\u003e have been updated to\naccept these ORM entity types.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13075\"\u003e#13075\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed issue where PostgreSQL JSONB operators\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_match()\u003c/code\u003e and\n\u003ccode\u003e_postgresql.JSONB.Comparator.path_exists()\u003c/code\u003e were applying incorrect\n\u003ccode\u003eVARCHAR\u003c/code\u003e casts to the right-hand side operand when used with newer\nPostgreSQL drivers such as psycopg. The operators now indicate the\nright-hand type as \u003ccode\u003eJSONPATH\u003c/code\u003e, which currently results in no casting\ntaking place, but is also compatible with explicit casts if the\nimplementation were require it at a later point.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13059\"\u003e#13059\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Fixed regression in PostgreSQL dialect where JSONB subscription syntax\nwould generate incorrect SQL for \u003ccode\u003ecast()\u003c/code\u003e expressions returning JSONB,\ncausing syntax errors. The dialect now properly wraps cast expressions in\nparentheses when using the \u003ccode\u003e[]\u003c/code\u003e subscription syntax, generating\n\u003ccode\u003e(CAST(...))[index]\u003c/code\u003e instead of \u003ccode\u003eCAST(...)[index]\u003c/code\u003e to comply with\nPostgreSQL syntax requirements. This extends the fix from \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12778\"\u003e#12778\u003c/a\u003e\nwhich addressed the same issue for function calls.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13067\"\u003e#13067\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[postgresql] [bug]\u003c/strong\u003e Improved the foreign key reflection regular expression pattern used by the\nPostgreSQL dialect to be more permissive in matching identifier characters,\nallowing it to correctly handle unicode characters in table and column\nnames. This change improves compatibility with PostgreSQL variants such as\nCockroachDB that may use different quoting patterns in combination with\nunicode characters in their identifiers.  Pull request courtesy Gord\nThompson.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.14.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 `geoalchemy2` from 0.15.0 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect by \u003ca href=\"https://github.com/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/570\"\u003egeoalchemy/geoalchemy2#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string by \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/574\"\u003egeoalchemy/geoalchemy2#574\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/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/538\"\u003egeoalchemy/geoalchemy2#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/540\"\u003egeoalchemy/geoalchemy2#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCompile literal binds by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/543\"\u003egeoalchemy/geoalchemy2#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/544\"\u003egeoalchemy/geoalchemy2#544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore (mariadb): Stop converting WKB to WKT by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/545\"\u003egeoalchemy/geoalchemy2#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker containers by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/546\"\u003egeoalchemy/geoalchemy2#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/547\"\u003egeoalchemy/geoalchemy2#547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/553\"\u003egeoalchemy/geoalchemy2#553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/554\"\u003egeoalchemy/geoalchemy2#554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Improve readbility of benchmark results by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/556\"\u003egeoalchemy/geoalchemy2#556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/555\"\u003egeoalchemy/geoalchemy2#555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/557\"\u003egeoalchemy/geoalchemy2#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Remove warning message from MySQL/MariaDB reflection by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/560\"\u003egeoalchemy/geoalchemy2#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/561\"\u003egeoalchemy/geoalchemy2#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: correct doc strings by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/564\"\u003egeoalchemy/geoalchemy2#564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/565\"\u003egeoalchemy/geoalchemy2#565\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/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.17.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChore: Fix stubs for TableRowElement by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/534\"\u003egeoalchemy/geoalchemy2#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Pass through keyword args for create_geospatial_table(). Fixes: \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/532\"\u003e#532\u003c/a\u003e by \u003ca href=\"https://github.com/jurgispods\"\u003e\u003ccode\u003e@​jurgispods\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/533\"\u003egeoalchemy/geoalchemy2#533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.17.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/535\"\u003egeoalchemy/geoalchemy2#535\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/jurgispods\"\u003e\u003ccode\u003e@​jurgispods\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/533\"\u003egeoalchemy/geoalchemy2#533\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.0...0.17.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.0...0.17.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.17.0\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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string - \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Fix doc strings for cache enabled - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(papacodebear/master) Fix: Remove warning from MySQL/MariaDB reflection \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Improve readability of benchmark results \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/556\"\u003e#556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/553\"\u003e#553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker container \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf (mariadb): Stop converting WKB to WKT \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/544\"\u003e#544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Compile literal binds properly \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/540\"\u003e#540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.17.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Pass through keyword args for alembic_helpers.create_geospatial_table() \u003ca href=\"https://github.com/jurgispods\"\u003e\u003ccode\u003e@​jurgispods\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Fix stubs for TableRowElement \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/534\"\u003e#534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.17.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePerf: Enable cache for all types of GeoAlchemy2 \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Add new plugin to automatically attach events based on the engine dialect \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Disable SQLite for Pypy job \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/528\"\u003e#528\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.16.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTest: Add test in test_functional.py for custom Geometry that uses WKT elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to ensure all dialects are properly tested in CI \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/526\"\u003e#526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove MariaDB support \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Can handle negative coordinates with Spatialite \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/517\"\u003e#517\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/geoalchemy/geoalchemy2/commit/0c311122e5228a885e262d8f79b037cb74c0949b\"\u003e\u003ccode\u003e0c31112\u003c/code\u003e\u003c/a\u003e Release: 0.18.1 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/75f87fac699ed31579ef93dffc59cc25bda241a8\"\u003e\u003ccode\u003e75f87fa\u003c/code\u003e\u003c/a\u003e Fix: Allow scientific notation within WKT string (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8653df3a1b0236556f1c39c916f0fb717475a6d1\"\u003e\u003ccode\u003e8653df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/3d6099504023afda68137f0ac2d041986159dac9\"\u003e\u003ccode\u003e3d60995\u003c/code\u003e\u003c/a\u003e Fix (mysql): Fix failing test for MySQL dialect (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/60767082df9f4587fadd56ab94847ebc39df8295\"\u003e\u003ccode\u003e6076708\u003c/code\u003e\u003c/a\u003e Release: 0.18.0 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/565\"\u003e#565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/e13112177bdf79cae0d72a6e89d815dc272e3dc5\"\u003e\u003ccode\u003ee131121\u003c/code\u003e\u003c/a\u003e Feat: Add support of spatial indexes for Raster type for PostgreSQL (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0b432086a0c3b8ab160c5cc1864aa65e02f35362\"\u003e\u003ccode\u003e0b43208\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8791b2eec013f21f599ca060d9fee4aba72ec2a1\"\u003e\u003ccode\u003e8791b2e\u003c/code\u003e\u003c/a\u003e Docs: Fix doc strings for cache enabled (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/d3c1d04c8b462c61132403e44a7a4f04a487c142\"\u003e\u003ccode\u003ed3c1d04\u003c/code\u003e\u003c/a\u003e Chore: Move reflection type registering (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/24dc5d05d97fb9a2a57103c1823a58f06940a5e8\"\u003e\u003ccode\u003e24dc5d0\u003c/code\u003e\u003c/a\u003e Fix: Remove warning from MySQL/MariaDB reflection (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.15.0...0.18.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.0.0 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 to CI and wheels (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/213\"\u003e#213\u003c/a\u003e by \u003ca href=\"https://github.com/zweizeichen\"\u003e\u003ccode\u003e@​zweizeichen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003ch2\u003e3.2.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce new type for RESP3 PUSH notifications (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRun integration workflow on version branches (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate hiredis to 1.3.0 (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/203\"\u003e#203\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis is a maintenance release that addresses issues in RESP3 parsing.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix memory leaks and segfaults in RESP3 map parsing (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/204\"\u003e#204\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/205\"\u003e#205\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/206\"\u003e#206\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.1.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate Python 3.13 compatibility (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/DeD1rk\"\u003e\u003ccode\u003e@​DeD1rk\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/187d0f387afed58a955a42ea8c5467100871f98b\"\u003e\u003ccode\u003e187d0f3\u003c/code\u003e\u003c/a\u003e Version 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/3efcf037edc5a9f7abfaedbd3f60b2a03feb4787\"\u003e\u003ccode\u003e3e...\n\n_Description has been truncated_","html_url":"https://github.com/MK023/TorinoParking/pull/23","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MK023%2FTorinoParking/issues/23","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/23/packages"}},{"old_version":"0.15.2","new_version":"0.18.1","update_type":"minor","path":null,"pr_created_at":"2026-02-17T08:57:04.000Z","version_change":"0.15.2 → 0.18.1","issue":{"uuid":"3951602215","node_id":"PR_kwDORE8PlM7ETFJR","number":10,"state":"closed","title":"build(deps): bump the python-deps group across 1 directory with 14 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-17T20:50:54.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-17T08:57:04.000Z","updated_at":"2026-02-17T20:50:56.000Z","time_to_close":42830,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"python-deps","update_count":14,"packages":[{"name":"fastapi","old_version":"0.115.14","new_version":"0.129.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.30.6","new_version":"0.41.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"pydantic-settings","old_version":"2.12.0","new_version":"2.13.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"asyncpg","old_version":"0.29.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"alembic","old_version":"1.18.3","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"geoalchemy2","old_version":"0.15.2","new_version":"0.18.1","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"pandas","old_version":"2.3.3","new_version":"3.0.0","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"prometheus-client","old_version":"0.20.0","new_version":"0.24.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"xarray","old_version":"2024.11.0","new_version":"2026.2.0","repository_url":"https://github.com/pydata/xarray"},{"name":"pytest-asyncio","old_version":"0.24.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"ruff","old_version":"0.7.4","new_version":"0.15.1","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pre-commit","old_version":"3.8.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pandas-stubs","old_version":"2.3.3.260113","new_version":"3.0.0.260204","repository_url":"https://github.com/pandas-dev/pandas-stubs"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-deps group with 14 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.14` | `0.129.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.30.6` | `0.41.0` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.12.0` | `2.13.0` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.29.0` | `0.31.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.18.3` | `1.18.4` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.15.2` | `0.18.1` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.3` | `3.0.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.20.0` | `0.24.1` |\n| [xarray](https://github.com/pydata/xarray) | `2024.11.0` | `2026.2.0` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.24.0` | `1.3.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.7.4` | `0.15.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `3.8.0` | `4.5.1` |\n| [pandas-stubs](https://github.com/pandas-dev/pandas-stubs) | `2.3.3.260113` | `3.0.0.260204` |\n\n\nUpdates `fastapi` from 0.115.14 to 0.129.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.129.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Python 3.9. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14897\"\u003e#14897\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\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🎨 Update internal types for Python 3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14898\"\u003e#14898\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update highlights in webhooks docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14905\"\u003e#14905\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 source examples and docs from Python 3.9 to 3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14900\"\u003e#14900\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🔨 Update docs.py scripts to migrate Python 3.9 to Python 3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14906\"\u003e#14906\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.128.8\u003c/h2\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Fix grammar in \u003ccode\u003edocs/en/docs/tutorial/first-steps.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14708\"\u003e#14708\u003c/a\u003e by \u003ca href=\"https://github.com/SanjanaS10\"\u003e\u003ccode\u003e@​SanjanaS10\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 PDM hook script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14895\"\u003e#14895\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 build setup for \u003ccode\u003efastapi-slim\u003c/code\u003e, deprecate it, and make it only depend on \u003ccode\u003efastapi\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14894\"\u003e#14894\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.128.7\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Show a clear error on attempt to include router into itself. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14258\"\u003e#14258\u003c/a\u003e by \u003ca href=\"https://github.com/JavierSanchezCastro\"\u003e\u003ccode\u003e@​JavierSanchezCastro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Replace \u003ccode\u003edict\u003c/code\u003e by \u003ccode\u003eMapping\u003c/code\u003e on \u003ccode\u003eHTTPException.headers\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/12997\"\u003e#12997\u003c/a\u003e by \u003ca href=\"https://github.com/rijenkii\"\u003e\u003ccode\u003e@​rijenkii\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Simplify reading files in memory, do it sequentially instead of (fake) parallel. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14884\"\u003e#14884\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Use \u003ccode\u003edfn\u003c/code\u003e tag for definitions instead of \u003ccode\u003eabbr\u003c/code\u003e in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14744\"\u003e#14744\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Tweak comment in test to reference PR. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14885\"\u003e#14885\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 LLM-prompt for \u003ccode\u003eabbr\u003c/code\u003e and \u003ccode\u003edfn\u003c/code\u003e tags. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14747\"\u003e#14747\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✅ Test order for the submitted byte Files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14828\"\u003e#14828\u003c/a\u003e by \u003ca href=\"https://github.com/valentinDruzhinin\"\u003e\u003ccode\u003e@​valentinDruzhinin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Configure \u003ccode\u003etest\u003c/code\u003e workflow to run tests with \u003ccode\u003einline-snapshot=review\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14876\"\u003e#14876\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.128.6\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/fastapi/fastapi/commit/a2e51363c721ee6fccb148bff95ca328b4efdfed\"\u003e\u003ccode\u003ea2e5136\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.129.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b7ce02ae86ee466380d2db09be008cfe83a1ca35\"\u003e\u003ccode\u003eb7ce02a\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/31d9750aceaff347bd55be37880b7f36bc26c1b1\"\u003e\u003ccode\u003e31d9750\u003c/code\u003e\u003c/a\u003e 🔨 Update docs.py scripts to migrate Python 3.9 to Python 3.10 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14906\"\u003e#14906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/109cc8aff126b60971ec27d68d32b8713f0ec72a\"\u003e\u003ccode\u003e109cc8a\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c82a3d8a13af58e092ba95ffb4b8a64b9ca82726\"\u003e\u003ccode\u003ec82a3d8\u003c/code\u003e\u003c/a\u003e 📝 Update highlights in webhooks docs (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14905\"\u003e#14905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/0e460654af7101866b7d0f22735ef6337fe13d0c\"\u003e\u003ccode\u003e0e46065\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c9e2277d8b3b0feead4bdad97fca7cf05c9263fd\"\u003e\u003ccode\u003ec9e2277\u003c/code\u003e\u003c/a\u003e 📝 Update source examples and docs from Python 3.9 to 3.10 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14900\"\u003e#14900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d06ab3f5c7c1b6229e28af37905eb51ab4b4cdb7\"\u003e\u003ccode\u003ed06ab3f\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3da206c06df1283518a54b18f27bed33f2d22612\"\u003e\u003ccode\u003e3da206c\u003c/code\u003e\u003c/a\u003e 🎨 Update internal types for Python 3.10 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14898\"\u003e#14898\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cc903bd440a4a443510c7b10ef7e9a1f88f44e0e\"\u003e\u003ccode\u003ecc903bd\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.115.14...0.129.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.30.6 to 0.41.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.41.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/t-kawasumi\"\u003e\u003ccode\u003e@​t-kawasumi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2776\"\u003eKludex/uvicorn#2776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fardyn\"\u003e\u003ccode\u003e@​fardyn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2800\"\u003eKludex/uvicorn#2800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewie\"\u003e\u003ccode\u003e@​ewie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2807\"\u003eKludex/uvicorn#2807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shevron\"\u003e\u003ccode\u003e@​shevron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2788\"\u003eKludex/uvicorn#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonashaag\"\u003e\u003ccode\u003e@​jonashaag\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2707\"\u003eKludex/uvicorn#2707\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.40.0...0.41.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 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/2772\"\u003eKludex/uvicorn#2772\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.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return 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/2769\"\u003eKludex/uvicorn#2769\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/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\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.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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.41.0 (February 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.0 (September 20, 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/Kludex/uvicorn/commit/9283c0f15cfa82307f57daba4d1b1880902adfb2\"\u003e\u003ccode\u003e9283c0f\u003c/code\u003e\u003c/a\u003e Version 0.41.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2821\"\u003e#2821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a01a33eb8f3ac044cab5964421b9aa308a2bcfca\"\u003e\u003ccode\u003ea01a33e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2ce65bde1509faa958775df8153bdeb5dbaf6f58\"\u003e\u003ccode\u003e2ce65bd\u003c/code\u003e\u003c/a\u003e Ignore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/654f2ed7d7c1a014116d8662e6544f5309375137\"\u003e\u003ccode\u003e654f2ed\u003c/code\u003e\u003c/a\u003e Ensure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a03d9f6f0e99383c76934a82def5a83aeb6b0a47\"\u003e\u003ccode\u003ea03d9f6\u003c/code\u003e\u003c/a\u003e Reduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/e377de40d0a2a1b1d9f55483ee4c1cceb2474502\"\u003e\u003ccode\u003ee377de4\u003c/code\u003e\u003c/a\u003e Add socket path to scope[\u0026quot;server\u0026quot;] (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0779f7f8a4df1cc98433eb30d69027499a0cb7f8\"\u003e\u003ccode\u003e0779f7f\u003c/code\u003e\u003c/a\u003e Poll for readiness in \u003ccode\u003etest_multiprocess_health_check\u003c/code\u003e and \u003ccode\u003erun_server\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2816\"\u003e#2816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7e9ce2c974f1d78d192e81caa7890e2bbae8e711\"\u003e\u003ccode\u003e7e9ce2c\u003c/code\u003e\u003c/a\u003e Poll for PID changes in \u003ccode\u003etest_multiprocess_sighup\u003c/code\u003e instead of fixed sleep (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/99f0d8734d441bf4a1467093766c779a5a1c9868\"\u003e\u003ccode\u003e99f0d87\u003c/code\u003e\u003c/a\u003e Fix grep warning in scripts/sync-version (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2807\"\u003e#2807\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7ae2e6375a90b2e6a3370aa252f5ac2dc06ab892\"\u003e\u003ccode\u003e7ae2e63\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group with 18 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2801\"\u003e#2801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.30.6...0.41.0\"\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.12.0 to 2.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Deterministic alias selection when using validate_by_name by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/707\"\u003epydantic/pydantic-settings#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd deep merge functionality to config file sources by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for AWS Secrets Manager VersionId parameter by \u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix: Return \u003ccode\u003eNone\u003c/code\u003e for inaccessible GCP Secret Manager secrets by \u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix for cli_kebab_case=\u0026quot;all\u0026quot; and CliImplicitFlag[bool] by \u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnpack type alisases when looking for \u003ccode\u003eNoDecode\u003c/code\u003e by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/695\"\u003epydantic/pydantic-settings#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCliToggleFlag and CliDualFlag 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/717\"\u003epydantic/pydantic-settings#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix for CLI duplicate enum field values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/722\"\u003epydantic/pydantic-settings#722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed load nested config from env by \u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd non-Path files support (for example Traversable) and open files using Path.open method by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd one more traversable test by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/725\"\u003epydantic/pydantic-settings#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI fix fox external list args. 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/727\"\u003epydantic/pydantic-settings#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle case-insensitive retrieval in GoogleSecretManagerSettingsSource by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/730\"\u003epydantic/pydantic-settings#730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI test fixes for help text formatting. 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/735\"\u003epydantic/pydantic-settings#735\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid conflicts with the \u003ccode\u003eNAME\u003c/code\u003e environment variable in WSL by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: When restoring init kwargs, use deterministic order by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/746\"\u003epydantic/pydantic-settings#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd env_prefix_target by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/749\"\u003epydantic/pydantic-settings#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e(default: …)\u003c/code\u003e in the help message for \u003ccode\u003eCliToggleFlag\u003c/code\u003e by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/740\"\u003epydantic/pydantic-settings#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for CLI serialize styles. 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/755\"\u003epydantic/pydantic-settings#755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for overriding default help on CLI internal parser. 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/758\"\u003epydantic/pydantic-settings#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI format_help method support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/759\"\u003epydantic/pydantic-settings#759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(gcp): support SecretVersion annotation for per-field secret versioning by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/763\"\u003epydantic/pydantic-settings#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003esnake_case_conversion\u003c/code\u003e with \u003ccode\u003eenv_prefix\u003c/code\u003e for Azure Key Vault source by \u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Only override preferred_key when no value was found by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/767\"\u003epydantic/pydantic-settings#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/768\"\u003epydantic/pydantic-settings#768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI coerce numeric types. 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/769\"\u003epydantic/pydantic-settings#769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Union Discriminator Choices in Help 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/764\"\u003epydantic/pydantic-settings#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) by \u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.13.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/777\"\u003epydantic/pydantic-settings#777\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/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\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.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/198e71cf0cd570501535de7ae93a70953150f073\"\u003e\u003ccode\u003e198e71c\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/777\"\u003e#777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/de71e84057b63b251ec84883b5e2ae886f82084f\"\u003e\u003ccode\u003ede71e84\u003c/code\u003e\u003c/a\u003e Add nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0f8f951b89b137bd563ce74dac016ba2c4cdc7a2\"\u003e\u003ccode\u003e0f8f951\u003c/code\u003e\u003c/a\u003e CLI Union Discriminator Choices in Help (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/ce9804c4620d38f0c3b3c1e3ebe10d934fd4ba2e\"\u003e\u003ccode\u003ece9804c\u003c/code\u003e\u003c/a\u003e CLI coerce numeric types. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/e460f0b4d8e8dd0916562d3390b9eec960736bb6\"\u003e\u003ccode\u003ee460f0b\u003c/code\u003e\u003c/a\u003e Update deps (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/768\"\u003e#768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/a04b03450e62f583cdaee2d93df693b991aeb319\"\u003e\u003ccode\u003ea04b034\u003c/code\u003e\u003c/a\u003e fix: Only override preferred_key when no value was found (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/767\"\u003e#767\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/f6ddaee324a6f35e418505a0222bd26f1894446e\"\u003e\u003ccode\u003ef6ddaee\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003esnake_case_conversion\u003c/code\u003e with \u003ccode\u003eenv_prefix\u003c/code\u003e for Azure Key Vault source (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/6ce78bcfb737ddc552b077dcfcc3586f153bcaeb\"\u003e\u003ccode\u003e6ce78bc\u003c/code\u003e\u003c/a\u003e feat(gcp): support SecretVersion annotation for per-field secret versioning (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/21c709383721610992bcd34de04386b7d911089b\"\u003e\u003ccode\u003e21c7093\u003c/code\u003e\u003c/a\u003e CLI format_help method support (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/759\"\u003e#759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0e96e9c27eb73599054b83959bb938c82bbebde7\"\u003e\u003ccode\u003e0e96e9c\u003c/code\u003e\u003c/a\u003e Add support for overriding default help on CLI internal parser. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asyncpg` from 0.29.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.30.0\u003c/h2\u003e\n\u003cp\u003eSupport Python 3.13 and PostgreSQL 17.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImplement GSSAPI authentication\n(by \u003ca href=\"https://github.com/eltoder\"\u003e\u003ccode\u003e@​eltoder\u003c/code\u003e\u003c/a\u003e in 1d4e5680 for \u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1122\"\u003e#1122\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement SSPI authentication\n(by \u003ca href=\"https://github.com/eltoder\"\u003e\u003ccode\u003e@​eltoder\u003c/code\u003e\u003c/a\u003e in 1aab2094 for \u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1128\"\u003e#1128\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd initial typings\n(by \u003ca href=\"https://github.com/bryanforbes\"\u003e\u003ccode\u003e@​bryanforbes\u003c/code\u003e\u003c/a\u003e in d42432bf for \u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1127\"\u003e#1127\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow building with Cython 3\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/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.29.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.18.3 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\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geoalchemy2` from 0.15.2 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect by \u003ca href=\"https://github.com/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/570\"\u003egeoalchemy/geoalchemy2#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string by \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/574\"\u003egeoalchemy/geoalchemy2#574\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/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/538\"\u003egeoalchemy/geoalchemy2#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/540\"\u003egeoalchemy/geoalchemy2#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCompile literal binds by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/543\"\u003egeoalchemy/geoalchemy2#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/544\"\u003egeoalchemy/geoalchemy2#544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore (mariadb): Stop converting WKB to WKT by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/545\"\u003egeoalchemy/geoalchemy2#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker containers by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/546\"\u003egeoalchemy/geoalchemy2#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/547\"\u003egeoalchemy/geoalchemy2#547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/553\"\u003egeoalchemy/geoalchemy2#553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/554\"\u003egeoalchemy/geoalchemy2#554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Improve readbility of benchmark results by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/556\"\u003egeoalchemy/geoalchemy2#556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/555\"\u003egeoalchemy/geoalchemy2#555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/557\"\u003egeoalchemy/geoalchemy2#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Remove warning message from MySQL/MariaDB reflection by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/560\"\u003egeoalchemy/geoalchemy2#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/561\"\u003egeoalchemy/geoalchemy2#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: correct doc strings by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/564\"\u003egeoalchemy/geoalchemy2#564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/565\"\u003egeoalchemy/geoalchemy2#565\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/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.17.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChore: Fix stubs for TableRowElement by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/534\"\u003egeoalchemy/geoalchemy2#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Pass through keyword args for create_geospatial_table(). Fixes: \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/532\"\u003e#532\u003c/a\u003e by \u003ca href=\"https://github.com/jurgispods\"\u003e\u003ccode\u003e@​jurgispods\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/533\"\u003egeoalchemy/geoalchemy2#533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.17.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/535\"\u003egeoalchemy/geoalchemy2#535\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/jurgispods\"\u003e\u003ccode\u003e@​jurgispods\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/533\"\u003egeoalchemy/geoalchemy2#533\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.0...0.17.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.0...0.17.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.17.0\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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string - \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Fix doc strings for cache enabled - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(papacodebear/master) Fix: Remove warning from MySQL/MariaDB reflection \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Improve readability of benchmark results \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/556\"\u003e#556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/553\"\u003e#553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker container \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf (mariadb): Stop converting WKB to WKT \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/544\"\u003e#544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Compile literal binds properly \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/540\"\u003e#540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.17.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Pass through keyword args for alembic_helpers.create_geospatial_table() \u003ca href=\"https://github.com/jurgispods\"\u003e\u003ccode\u003e@​jurgispods\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Fix stubs for TableRowElement \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/534\"\u003e#534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.17.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePerf: Enable cache for all types of GeoAlchemy2 \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Add new plugin to automatically attach events based on the engine dialect \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCI: Disable SQLite for Pypy job \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/528\"\u003e#528\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.16.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTest: Add test in test_functional.py for custom Geometry that uses WKT elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/525\"\u003e#525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to ensure all dialects are properly tested in CI \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/526\"\u003e#526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove MariaDB support \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/524\"\u003e#524\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0c311122e5228a885e262d8f79b037cb74c0949b\"\u003e\u003ccode\u003e0c31112\u003c/code\u003e\u003c/a\u003e Release: 0.18.1 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/75f87fac699ed31579ef93dffc59cc25bda241a8\"\u003e\u003ccode\u003e75f87fa\u003c/code\u003e\u003c/a\u003e Fix: Allow scientific notation within WKT string (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8653df3a1b0236556f1c39c916f0fb717475a6d1\"\u003e\u003ccode\u003e8653df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/3d6099504023afda68137f0ac2d041986159dac9\"\u003e\u003ccode\u003e3d60995\u003c/code\u003e\u003c/a\u003e Fix (mysql): Fix failing test for MySQL dialect (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/60767082df9f4587fadd56ab94847ebc39df8295\"\u003e\u003ccode\u003e6076708\u003c/code\u003e\u003c/a\u003e Release: 0.18.0 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/565\"\u003e#565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/e13112177bdf79cae0d72a6e89d815dc272e3dc5\"\u003e\u003ccode\u003ee131121\u003c/code\u003e\u003c/a\u003e Feat: Add support of spatial indexes for Raster type for PostgreSQL (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0b432086a0c3b8ab160c5cc1864aa65e02f35362\"\u003e\u003ccode\u003e0b43208\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8791b2eec013f21f599ca060d9fee4aba72ec2a1\"\u003e\u003ccode\u003e8791b2e\u003c/code\u003e\u003c/a\u003e Docs: Fix doc strings for cache enabled (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/d3c1d04c8b462c61132403e44a7a4f04a487c142\"\u003e\u003ccode\u003ed3c1d04\u003c/code\u003e\u003c/a\u003e Chore: Move reflection type registering (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/24dc5d05d97fb9a2a57103c1823a58f06940a5e8\"\u003e\u003ccode\u003e24dc5d0\u003c/code\u003e\u003c/a\u003e Fix: Remove warning from MySQL/MariaDB reflection (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.15.2...0.18.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.3.3 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epandas 3.0.0\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 3.0.0, a major release from the pandas 2.x series. This release includes various new features, bug fixes, and performance improvements, as well as possible breaking changes.\u003c/p\u003e\n\u003cp\u003eThe pandas 3.0 release removed a functionality that was deprecated in previous releases. It is recommended to first upgrade to pandas 2.3 and to ensure your code is working without warnings, before upgrading to pandas 3.0.\u003c/p\u003e\n\u003cp\u003eHighlights include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.0.html#whatsnew-300-enhancements-string-dtype\"\u003eDedicated string data type by default\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.0.html#whatsnew-300-enhancements-copy_on_write\"\u003eConsistent copy/view behaviour with Copy-on-Write\u003c/a\u003e (CoW) (a.k.a. getting rid of the SettingWithCopyWarning)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.0.html#whatsnew-300-api-breaking-datetime-resolution-inference\"\u003eNew default resolution for datetime-like data\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.0.html#whatsnew-300-enhancements-col\"\u003eInitial support for the new \u003ccode\u003epd.col\u003c/code\u003e syntax\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/community/blog/pandas-3.0.html\"\u003eannouncement blog post\u003c/a\u003e and the \u003ca href=\"https://pandas.pydata.org/docs/whatsnew/v3.0.0.html\"\u003edetailed release notes\u003c/a\u003e for a list of all the changes.\u003c/p\u003e\n\u003cp\u003ePandas 3.0.0 supports Python 3.11 and higher.\nThe release can be installed from PyPI\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade pandas==3.0.*\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas=3.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues/new/choose\"\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 3.0.0rc2\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ePandas 3.0.0rc1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003ePandas 3.0.0rc0\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce a first release candidate for pandas 3.0.0. If all goes well, we'll release pandas 3.0.0 in a few weeks.\u003c/p\u003e\n\u003cp\u003eSee the [whatsnew][0] for a list of all the changes.\u003c/p\u003e\n\u003cp\u003eThe release is available on conda-forge and PyPI.\u003c/p\u003e\n\u003cp\u003eThe release can be installed from PyPI\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython -m pip install --upgrade --pre pandas==3.0.0rc0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr from conda-forge\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge/label/pandas_rc pandas==3.0.0rc0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release candidate on the pandas issue tracker.\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/366ccdfcd8ed1e5543bfb6d4ee0c9bc519898670\"\u003e\u003ccode\u003e366ccdf\u003c/code\u003e\u003c/a\u003e RLS: 3.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/139f4d0acedec0eee85c08262f878dd9f1eab63b\"\u003e\u003ccode\u003e139f4d0\u003c/code\u003e\u003c/a\u003e DOC: split/reorder other enhancements section in 3.0.0 whatsnew notes (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/63762\"\u003e#63762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/fd2a4f41fa453d74de6a7e031f4fcdcafa506c1b\"\u003e\u003ccode\u003efd2a4f4\u003c/code\u003e\u003c/a\u003e TST: assert reading of legacy pickles against current data (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/61792\"\u003e#61792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/cc0bcaa1d2cf7607079df18d8b91f6d76a2f37ca\"\u003e\u003ccode\u003ecc0bcaa\u003c/code\u003e\u003c/a\u003e DOC: update whatsnew section on datetimelike resolution (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/63780\"\u003e#63780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3ddbb49fe5e39c98981d08162b3ffe39e3e1fd21\"\u003e\u003ccode\u003e3ddbb49\u003c/code\u003e\u003c/a\u003e DOC: remove 2.3.4 whatsnew file from released 3.0 docs (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/63779\"\u003e#63779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/ee63532112ec4be7cc84a04c50f6c948c75ee168\"\u003e\u003ccode\u003eee63532\u003c/code\u003e\u003c/a\u003e CLN: Create temporary HDF5 file path and HDFStore for pytables tests (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/63492\"\u003e#63492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9512e990ffbaf35208dc5d4693c70d3ebb64baea\"\u003e\u003ccode\u003e9512e99\u003c/code\u003e\u003c/a\u003e CoW: better chained assignment warning message for update() method (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/63500\"\u003e#63500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/1db90d50ea43129d407c0dadb5921a1ba6b1410e\"\u003e\u003ccode\u003e1db90d5\u003c/code\u003e\u003c/a\u003e API: rename read_iceberg selected_fields keyword to columns (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/63748\"\u003e#63748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/c9b51fae32dbff354663dc25e79fbd22a7afd59f\"\u003e\u003ccode\u003ec9b51fa\u003c/code\u003e\u003c/a\u003e BUG: .str methods failing on PyArrow using regex with \\Z (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/63705\"\u003e#63705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/7cff0f4fdef81094588f4f0b23246a9f6b33a47a\"\u003e\u003ccode\u003e7cff0f4\u003c/code\u003e\u003c/a\u003e API: Period.to_timestamp default to microsecond unit (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/63760\"\u003e#63760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.3.3...v3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `httpx` from 0.27.2 to 0.28.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/httpx/releases\"\u003ehttpx's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.28.1\u003c/h2\u003e\n\u003ch2\u003e0.28.1 (6th December, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL case where \u003ccode\u003everify=False\u003c/code\u003e together with client side certificates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 0.28.0\u003c/h2\u003e\n\u003ch2\u003e0.28.0 (28th November, 2024)\u003c/h2\u003e\n\u003cp\u003eThe 0.28 release includes a limited set of deprecations.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003eWe are working towards a simplified SSL configuration API.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFor users of the standard \u003ccode\u003everify=True\u003c/code\u003e or \u003ccode\u003everify=False\u003c/code\u003e cases, or \u003ccode\u003everify=\u0026lt;ssl_context\u0026gt;\u003c/code\u003e case this should require no changes. The following cases have been deprecated...\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003everify\u003c/code\u003e argument as a string argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ecert\u003c/code\u003e argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOur revised \u003ca href=\"https://github.com/encode/httpx/blob/HEAD/docs/advanced/ssl.md\"\u003eSSL documentation\u003c/a\u003e covers how to implement the same behaviour with a more constrained API.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe following changes are also included\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eproxies\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eapp\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eJSON request bodies use a compact representation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReview URL percent escape sets, based on WHATWG spec. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3371\"\u003e#3371\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/encode/httpx/issues/3373\"\u003e#3373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ecertifi\u003c/code\u003e and \u003ccode\u003ehttpcore\u003c/code\u003e are only imported if required. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003esocks5h\u003c/code\u003e as a valid proxy scheme. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3178\"\u003e#3178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCleanup \u003ccode\u003eRequest()\u003c/code\u003e method signature in line with \u003ccode\u003eclient.request()\u003c/code\u003e and \u003ccode\u003ehttpx.request()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: When passing \u003ccode\u003eparams={}\u003c/code\u003e, always strictly update rather than merge with an existing querystring. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/httpx/blob/master/CHANGELOG.md\"\u003ehttpx's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.28.1 (6th December, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SSL case where \u003ccode\u003everify=False\u003c/code\u003e together with client side certificates.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.28.0 (28th November, 2024)\u003c/h2\u003e\n\u003cp\u003eBe aware that the default \u003cem\u003eJSON request bodies now use a more compact representation\u003c/em\u003e. This is generally considered a prefered style, tho may require updates to test suites.\u003c/p\u003e\n\u003cp\u003eThe 0.28 release includes a limited set of deprecations...\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003eWe are working towards a simplified SSL configuration API.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFor users of the standard \u003ccode\u003everify=True\u003c/code\u003e or \u003ccode\u003everify=False\u003c/code\u003e cases, or \u003ccode\u003everify=\u0026lt;ssl_context\u0026gt;\u003c/code\u003e case this should require no changes. The following cases have been deprecated...\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003everify\u003c/code\u003e argument as a string argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ecert\u003c/code\u003e argument is now deprecated and will raise warnings.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOur revised \u003ca href=\"https://github.com/encode/httpx/blob/master/docs/advanced/ssl.md\"\u003eSSL documentation\u003c/a\u003e covers how to implement the same behaviour with a more constrained API.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe following changes are also included\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eproxies\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003eapp\u003c/code\u003e argument has now been removed.\u003c/li\u003e\n\u003cli\u003eJSON request bodies use a compact representation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReview URL percent escape sets, based on WHATWG spec. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3371\"\u003e#3371\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/encode/httpx/issues/3373\"\u003e#3373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003ecertifi\u003c/code\u003e and \u003ccode\u003ehttpcore\u003c/code\u003e are only imported if required. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3377\"\u003e#3377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat \u003ccode\u003esocks5h\u003c/code\u003e as a valid proxy scheme. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3178\"\u003e#3178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCleanup \u003ccode\u003eRequest()\u003c/code\u003e method signature in line with \u003ccode\u003eclient.request()\u003c/code\u003e and \u003ccode\u003ehttpx.request()\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3378\"\u003e#3378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBugfix: When passing \u003ccode\u003eparams={}\u003c/code\u003e, always strictly update rather than merge with an existing querystring. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/26d48e0634e6ee9cdc0533996db289ce4b430177\"\u003e\u003ccode\u003e26d48e0\u003c/code\u003e\u003c/a\u003e Version 0.28.1 (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3445\"\u003e#3445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/89599a9541af14bcf906fc4ed58ccbdf403802ba\"\u003e\u003ccode\u003e89599a9\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003everify=False\u003c/code\u003e, \u003ccode\u003ecert=...\u003c/code\u003e case. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3442\"\u003e#3442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/8ecb86f0d74ffc52d4663214fae9526bee89358d\"\u003e\u003ccode\u003e8ecb86f\u003c/code\u003e\u003c/a\u003e Add test for request params behavior changes (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3364\"\u003e#3364\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3440\"\u003e#3440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/0cb7e5a2e736628e2f506d259fcf0d48cd2bde82\"\u003e\u003ccode\u003e0cb7e5a\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 11 updates (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3434\"\u003e#3434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/15e21e9ea3cad4f06e22a7e704aabefdf43d2e29\"\u003e\u003ccode\u003e15e21e9\u003c/code\u003e\u003c/a\u003e Updating deprecated docstring Client() class (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3426\"\u003e#3426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/80960fa31918d7663c3f4c3ad61661cf0e80628f\"\u003e\u003ccode\u003e80960fa\u003c/code\u003e\u003c/a\u003e Version 0.28.0. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3419\"\u003e#3419\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/a33c87852b8a0dddc65e5f739af1e0a6fca4b91f\"\u003e\u003ccode\u003ea33c878\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eextensions\u003c/code\u003e type annotation. (\u003ca href=\"https://redirect.github.com/encode/httpx/issues/3380\"\u003e#3380\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/httpx/commit/ce7e14da27abba6574be9b3ea7cd5990556a9343\"\u003e\u003ccode\u003ece7e14d\u003c/code\u003e\u003c/a\u003e Error on verify as str. (\u003ca href=\"https://red...\n\n_Description has been truncated_","html_url":"https://github.com/DiogoRibeiro7/city-flood-mvp/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiogoRibeiro7%2Fcity-flood-mvp/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"}},{"old_version":"0.17.1","new_version":"0.18.1","update_type":"minor","path":null,"pr_created_at":"2026-02-12T03:20:10.000Z","version_change":"0.17.1 → 0.18.1","issue":{"uuid":"3929655000","node_id":"PR_kwDOHTdvBs7DKmC2","number":1422,"state":"closed","title":"deps(ibis): bump the all group across 1 directory with 31 updates","user":"dependabot[bot]","labels":["ibis","dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-10T09:37:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-12T03:20:10.000Z","updated_at":"2026-03-10T09:37:45.000Z","time_to_close":2269053,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(ibis): bump","group_name":"all","update_count":31,"packages":[{"name":"fastapi","old_version":"0.120.1","new_version":"0.128.8","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.10.6","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"google-auth","old_version":"2.38.0","new_version":"2.48.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"geoalchemy2","old_version":"0.17.1","new_version":"0.18.1","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"gql","old_version":"3.5.2","new_version":"4.0.0","repository_url":"https://github.com/graphql-python/gql"},{"name":"anyio","old_version":"4.10.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"duckdb","old_version":"1.3.2","new_version":"1.4.4","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"oracledb","old_version":"3.3.0","new_version":"3.4.2","repository_url":"https://github.com/oracle/python-oracledb"},{"name":"mysqlclient","old_version":"2.2.7","new_version":"2.2.8","repository_url":"https://github.com/PyMySQL/mysqlclient"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.0.3","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"uvicorn-worker","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/Kludex/uvicorn-worker"},{"name":"redshift-connector","old_version":"2.1.7","new_version":"2.1.11","repository_url":"https://github.com/aws/amazon-redshift-python-driver"},{"name":"datafusion","old_version":"47.0.0","new_version":"51.0.0","repository_url":"https://github.com/apache/datafusion-python"},{"name":"starlette","old_version":"0.49.3","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"databricks-sql-connector","old_version":"4.2.3","new_version":"4.2.5","repository_url":"https://github.com/databricks/databricks-sql-python"},{"name":"databricks-sdk","old_version":"0.73.0","new_version":"0.87.0","repository_url":"https://github.com/databricks/databricks-sdk-py"},{"name":"pyspark","old_version":"3.5.7","new_version":"4.1.1","repository_url":"https://github.com/apache/spark"},{"name":"jupyterlab","old_version":"4.5.1","new_version":"4.5.4","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"ipykernel","old_version":"7.1.0","new_version":"7.2.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"plotly","old_version":"6.5.0","new_version":"6.5.2","repository_url":"https://github.com/plotly/plotly.py"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"testcontainers","old_version":"4.9.2","new_version":"4.14.1","repository_url":"https://github.com/testcontainers/testcontainers-python"},{"name":"sqlalchemy","old_version":"2.0.39","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.11.2","new_version":"0.15.0","repository_url":"https://github.com/astral-sh/ruff"},{"name":"trino","old_version":"0.335.0","new_version":"0.336.0","repository_url":"https://github.com/trinodb/trino-python-client"},{"name":"clickhouse-connect","old_version":"0.8.15","new_version":"0.11.0","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"polars","old_version":"1.36.1","new_version":"1.38.1","repository_url":"https://github.com/pola-rs/polars"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all group with 31 updates in the /ibis-server directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.120.1` | `0.128.8` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.10.6` | `2.12.5` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.38.0` | `2.48.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.1` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.17.1` | `0.18.1` |\n| [gql](https://github.com/graphql-python/gql) | `3.5.2` | `4.0.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.12.1` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.3.2` | `1.4.4` |\n| [oracledb](https://github.com/oracle/python-oracledb) | `3.3.0` | `3.4.2` |\n| [mysqlclient](https://github.com/PyMySQL/mysqlclient) | `2.2.7` | `2.2.8` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.40.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.0.3` |\n| [uvicorn-worker](https://github.com/Kludex/uvicorn-worker) | `0.3.0` | `0.4.0` |\n| [redshift-connector](https://github.com/aws/amazon-redshift-python-driver) | `2.1.7` | `2.1.11` |\n| [datafusion](https://github.com/apache/datafusion-python) | `47.0.0` | `51.0.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.3` | `0.52.1` |\n| [databricks-sql-connector](https://github.com/databricks/databricks-sql-python) | `4.2.3` | `4.2.5` |\n| [databricks-sdk](https://github.com/databricks/databricks-sdk-py) | `0.73.0` | `0.87.0` |\n| [pyspark](https://github.com/apache/spark) | `3.5.7` | `4.1.1` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.5.1` | `4.5.4` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `7.1.0` | `7.2.0` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.5.0` | `6.5.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [testcontainers](https://github.com/testcontainers/testcontainers-python) | `4.9.2` | `4.14.1` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.39` | `2.0.46` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.2` | `0.15.0` |\n| [trino](https://github.com/trinodb/trino-python-client) | `0.335.0` | `0.336.0` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.8.15` | `0.11.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.36.1` | `1.38.1` |\n\n\nUpdates `fastapi` from 0.120.1 to 0.128.8\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.128.8\u003c/h2\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Fix grammar in \u003ccode\u003edocs/en/docs/tutorial/first-steps.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14708\"\u003e#14708\u003c/a\u003e by \u003ca href=\"https://github.com/SanjanaS10\"\u003e\u003ccode\u003e@​SanjanaS10\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 PDM hook script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14895\"\u003e#14895\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 build setup for \u003ccode\u003efastapi-slim\u003c/code\u003e, deprecate it, and make it only depend on \u003ccode\u003efastapi\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14894\"\u003e#14894\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.128.7\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Show a clear error on attempt to include router into itself. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14258\"\u003e#14258\u003c/a\u003e by \u003ca href=\"https://github.com/JavierSanchezCastro\"\u003e\u003ccode\u003e@​JavierSanchezCastro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Replace \u003ccode\u003edict\u003c/code\u003e by \u003ccode\u003eMapping\u003c/code\u003e on \u003ccode\u003eHTTPException.headers\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/12997\"\u003e#12997\u003c/a\u003e by \u003ca href=\"https://github.com/rijenkii\"\u003e\u003ccode\u003e@​rijenkii\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Simplify reading files in memory, do it sequentially instead of (fake) parallel. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14884\"\u003e#14884\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Use \u003ccode\u003edfn\u003c/code\u003e tag for definitions instead of \u003ccode\u003eabbr\u003c/code\u003e in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14744\"\u003e#14744\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Tweak comment in test to reference PR. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14885\"\u003e#14885\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 LLM-prompt for \u003ccode\u003eabbr\u003c/code\u003e and \u003ccode\u003edfn\u003c/code\u003e tags. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14747\"\u003e#14747\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✅ Test order for the submitted byte Files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14828\"\u003e#14828\u003c/a\u003e by \u003ca href=\"https://github.com/valentinDruzhinin\"\u003e\u003ccode\u003e@​valentinDruzhinin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Configure \u003ccode\u003etest\u003c/code\u003e workflow to run tests with \u003ccode\u003einline-snapshot=review\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14876\"\u003e#14876\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.128.6\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003eon_startup\u003c/code\u003e and \u003ccode\u003eon_shutdown\u003c/code\u003e parameters of \u003ccode\u003eAPIRouter\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14873\"\u003e#14873\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14843\"\u003e#14843\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✅ Fix parameterized tests with snapshots. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14875\"\u003e#14875\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.128.5\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Refactor and simplify Pydantic v2 (and v1) compatibility internal utils. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14862\"\u003e#14862\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\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/bdd20051c42d08762b2cdcc6571e4356014de572\"\u003e\u003ccode\u003ebdd2005\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1ed9bd49230b192bb531f4195d3d6a309261a777\"\u003e\u003ccode\u003e1ed9bd4\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/aac30fd7071d79798130137728aeb363c8c5f695\"\u003e\u003ccode\u003eaac30fd\u003c/code\u003e\u003c/a\u003e 🔨 Tweak PDM hook script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14895\"\u003e#14895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/417f1ee07825c6f4e983629bee6039857197112f\"\u003e\u003ccode\u003e417f1ee\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ffb8965260c71657f26644673f218b99b1315cc7\"\u003e\u003ccode\u003effb8965\u003c/code\u003e\u003c/a\u003e ♻️ Update build setup for \u003ccode\u003efastapi-slim\u003c/code\u003e, deprecate it, and make it only depe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93fa935fb8ac1c40488da7bf9b134466588ffaee\"\u003e\u003ccode\u003e93fa935\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/f0f3e7a113b7771388aef6d4a4cb863ce3890d9c\"\u003e\u003ccode\u003ef0f3e7a\u003c/code\u003e\u003c/a\u003e 📝 Fix grammar in \u003ccode\u003edocs/en/docs/tutorial/first-steps.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14708\"\u003e#14708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8f82c94de0ff641a239db59e58dfdc6010a4b26a\"\u003e\u003ccode\u003e8f82c94\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/5bb3423205daf98f88f14d696d104fea2221028a\"\u003e\u003ccode\u003e5bb3423\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6ce5e3e961876c39d8a60a3a2cb4147a6748d116\"\u003e\u003ccode\u003e6ce5e3e\u003c/code\u003e\u003c/a\u003e ✅ Tweak comment in test to reference PR (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14885\"\u003e#14885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.120.1...0.128.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.10.6 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.10.6...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.38.0 to 2.48.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth 2.48.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0\"\u003e2.48.0\u003c/a\u003e (2026-01-21)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ehonor \u003ccode\u003eNO_GCE_CHECK\u003c/code\u003e environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827\"\u003e383c9827\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b\"\u003e454b441b\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2\"\u003e52558ae2\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport the mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1\"\u003e8dcf91a1\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eresolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064\"\u003e25c1b064\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse \u003ccode\u003euser_verification=preferred\u003c/code\u003e for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a240\"\u003e3f88a240\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eremoves \u003ccode\u003econtent-header\u003c/code\u003e from AWS IMDS get request (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e\"\u003e97bfea9e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edetect correct auth when ADC env var is set but empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e10\"\u003ebfc07e10\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20c\"\u003ee431f20c\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.48.0rc0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0rc0\"\u003e2.48.0rc0\u003c/a\u003e (2026-01-20)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ehonor NO_GCE_CHECK environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827536d9376e8248370ce4c2b83e468d027\"\u003e383c98\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\"\u003e454b44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1b05c85fbbd0bcee78d66e498099102ab\"\u003e8dcf91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2881b1e6555f6f5c0d76365c15807ead9\"\u003e52558a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse user_verification=preferred for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a24089c4ee6822d510de0db210b54260d873\"\u003e3f88a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20cf73ccac71926a23ec454468cea92e053\"\u003ee431f2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edetect correct auth when ADC env var is set by empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\"\u003ebfc07e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremoved content-header from AWS IMDS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\"\u003e97bfea\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eresolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064545702cbef087cfcd15fbbb6ef1af74f\"\u003e25c1b0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.47.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.47.0...v2.48.0\"\u003e2.48.0\u003c/a\u003e (2026-01-22)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2881b1e6555f6f5c0d76365c15807ead9\"\u003e52558ae2881b1e6555f6f5c0d76365c15807ead9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport the mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1b05c85fbbd0bcee78d66e498099102ab\"\u003e8dcf91a1b05c85fbbd0bcee78d66e498099102ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable GCE Metadata Server retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1488\"\u003e#1488\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\"\u003e454b441b478ec62bbf1a6ad5bceb6c7cbbfd0c37\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ehonor \u003ccode\u003eNO_GCE_CHECK\u003c/code\u003e environment variable (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1610\"\u003e#1610\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/383c9827536d9376e8248370ce4c2b83e468d027\"\u003e383c9827536d9376e8248370ce4c2b83e468d027\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eresolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064545702cbef087cfcd15fbbb6ef1af74f\"\u003e25c1b064545702cbef087cfcd15fbbb6ef1af74f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremoves \u003ccode\u003econtent-header\u003c/code\u003e from AWS IMDS get request (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1934\"\u003e#1934\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\"\u003e97bfea9e02ede953fc8ee154e0deed3a3cfc6dcc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edetect correct auth when ADC env var is set but empty (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1374\"\u003e#1374\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/bfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\"\u003ebfc07e1050bd0aa86fa3b08cdf70c9b68b5fe6a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereplace deprecated utcfromtimestamp (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1799\"\u003e#1799\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e431f20cf73ccac71926a23ec454468cea92e053\"\u003ee431f20cf73ccac71926a23ec454468cea92e053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003euser_verification=preferred\u003c/code\u003e for ReAuth WebAuthn challenge (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1798\"\u003e#1798\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f88a24089c4ee6822d510de0db210b54260d873\"\u003e3f88a24089c4ee6822d510de0db210b54260d873\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1590\"\u003e#1590\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\"\u003e5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\"\u003e60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.45.0...v2.46.0\"\u003e2.46.0\u003c/a\u003e (2026-01-05)\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate urllib3 docstrings for v2 compatibility (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1903\"\u003e#1903\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f1aeea2d1014ea1d244a4c3470e52d74d55404b\"\u003e3f1aeea2d1014ea1d244a4c3470e52d74d55404b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecognize workload certificate config in has_default_client_cert_source for mTLS for Agentic Identities (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1907\"\u003e#1907\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d573123e358c347ffa067637f992af61b4\"\u003e0b9107d573123e358c347ffa067637f992af61b4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd types to default and verify_token and Request \u003cstrong\u003einit\u003c/strong\u003e based on comments in the source code. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1588\"\u003e#1588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/59a5f588f7793b59d923a4185c8c07738da618f7\"\u003e59a5f588f7793b59d923a4185c8c07738da618f7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix the document of secure_authorized_session (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1536\"\u003e#1536\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5d0014707fc359782df5ccfcaa75fd372fe9dce3\"\u003e5d0014707fc359782df5ccfcaa75fd372fe9dce3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1693\"\u003e#1693\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c767531ce05a89002d109f595187aff1fcaacfb7\"\u003ec767531ce05a89002d109f595187aff1fcaacfb7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse .read() instead of .content.read() in aiohttp transport (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1899\"\u003e#1899\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/12f4470f808809e8abf1141f98d88ab720c3899b\"\u003e12f4470f808809e8abf1141f98d88ab720c3899b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/6a982be06e513a3182069cd910466e743fa7db6a\"\u003e\u003ccode\u003e6a982be\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260121T162706Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1946\"\u003e#1946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/526d6c63d70aabcfbb69d1d5277831269aac28c1\"\u003e\u003ccode\u003e526d6c6\u003c/code\u003e\u003c/a\u003e chore(tests): add cryptography to constraints file (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1944\"\u003e#1944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/52558ae2881b1e6555f6f5c0d76365c15807ead9\"\u003e\u003ccode\u003e52558ae\u003c/code\u003e\u003c/a\u003e feat: add cryptography as required dependency (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1929\"\u003e#1929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/8dcf91a1b05c85fbbd0bcee78d66e498099102ab\"\u003e\u003ccode\u003e8dcf91a\u003c/code\u003e\u003c/a\u003e feat(iam): Support the mTLS IAM domain for Certificate based Access (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1938\"\u003e#1938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/db17a641a2866e1016fde939567facdfd9935a41\"\u003e\u003ccode\u003edb17a64\u003c/code\u003e\u003c/a\u003e chore(tests): add sleep mocks (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1943\"\u003e#1943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25c1b064545702cbef087cfcd15fbbb6ef1af74f\"\u003e\u003ccode\u003e25c1b06\u003c/code\u003e\u003c/a\u003e fix: resolve circular imports (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1942\"\u003e#1942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e5a28b590192d1280c5de3c023e221b70df5e26f\"\u003e\u003ccode\u003ee5a28b5\u003c/code\u003e\u003c/a\u003e tests: system tests for expired User Credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1937\"\u003e#1937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/4292ab0226dae86e0885cbeb83be39ec6c91ee36\"\u003e\u003ccode\u003e4292ab0\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency google-cloud-compute to v1.42.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1939\"\u003e#1939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/4848ac4fff4d458d797edb938077e348650539d0\"\u003e\u003ccode\u003e4848ac4\u003c/code\u003e\u003c/a\u003e chore: extracts unit tests to individual github actions (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1941\"\u003e#1941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/71e6e8e5da89f096655a4d61fbf35b8e215b0ad5\"\u003e\u003ccode\u003e71e6e8e\u003c/code\u003e\u003c/a\u003e chore: dedent deprecation warning message (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1932\"\u003e#1932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.38.0...v2.48.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.0.1 to 1.2.1\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.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport reading .env 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/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI to use trusted publishing on PyPI\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/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\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.0...v1.2.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: upgrade to use ruff 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/567\"\u003etheskumar/python-dotenv#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.exit() instead of exit() 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/568\"\u003etheskumar/python-dotenv#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:  add \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e flag to disable load_dotenv (fixes \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/510\"\u003e#510\u003c/a\u003e) 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/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python@3.14: Github CI \u0026amp; tox.ini 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/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eocs: clarify what load_dotenv() does in README by \u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory 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/theskumar/python-dotenv/pull/577\"\u003etheskumar/python-dotenv#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove project metadata and config to pyproject.toml 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/pull/583\"\u003etheskumar/python-dotenv#583\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/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\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.1.1...v1.2.0\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv 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/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a security policy 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/512\"\u003etheskumar/python-dotenv#512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep GitHub Actions up to date with GitHub's Dependabot by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/506\"\u003etheskumar/python-dotenv#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: fix multiline string in test.yml \u0026amp; use fail-fast strategy by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/514\"\u003etheskumar/python-dotenv#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance dotenv run: Switch to execvpe for better resource management and signal handling by \u003ca href=\"https://github.com/eekstunt\"\u003e\u003ccode\u003e@​eekstunt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/523\"\u003etheskumar/python-dotenv#523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add py3.13 to test.yml by \u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/527\"\u003etheskumar/python-dotenv#527\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 trove classifier by \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/535\"\u003etheskumar/python-dotenv#535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/529\"\u003etheskumar/python-dotenv#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.13 and drop 3.8 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/551\"\u003etheskumar/python-dotenv#551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update README.md by \u003ca href=\"https://github.com/chapeupreto\"\u003e\u003ccode\u003e@​chapeupreto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/516\"\u003etheskumar/python-dotenv#516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSome more s/Python-dotenv/python-dotenv/ 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/552\"\u003etheskumar/python-dotenv#552\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/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.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/pull/563\"\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/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.0] - 2025-03-25\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFeature\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.13\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003edotenv run\u003c/code\u003e, switch to \u003ccode\u003eexecvpe\u003c/code\u003e for better resource management and signal handling (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/523\"\u003e#523\u003c/a\u003e) by [\u003ca href=\"https://github.com/eekstunt\"\u003e\u003ccode\u003e@​eekstunt\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efind_dotenv\u003c/code\u003e and \u003ccode\u003eload_dotenv\u003c/code\u003e now correctly looks up at the current directory when running in debugger or pdb (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/553\"\u003e#553\u003c/a\u003e by [\u003ca href=\"https://github.com/randomseed42\"\u003e\u003ccode\u003e@​randomseed42\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMisc\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/eaf2a9129ccec6febda0f741eb3bb852c3f947bd\"\u003e\u003ccode\u003eeaf2a91\u003c/code\u003e\u003c/a\u003e Do not remove .coverage file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8716196891532eeb67d24a513e8d975437f5e8b7\"\u003e\u003ccode\u003e8716196\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.0 → 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/b87807fcad6e74332c3c63a75c92ce5814fa7a55\"\u003e\u003ccode\u003eb87807f\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/3af77d3029eb717aeec0a3c25f751b6a614a6d3c\"\u003e\u003ccode\u003e3af77d3\u003c/code\u003e\u003c/a\u003e Support reading .env from FIFOs (Unix) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/467ee22fccb2fb7ccda71a0d9e37c6ea3cb8d993\"\u003e\u003ccode\u003e467ee22\u003c/code\u003e\u003c/a\u003e Fix test failures after moving config to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/76999e741d87e958ebd74e3ae9834c0514e77a59\"\u003e\u003ccode\u003e76999e7\u003c/code\u003e\u003c/a\u003e Move more config pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/222ce2cc58ebc82ba78da8781269267b9f585932\"\u003e\u003ccode\u003e222ce2c\u003c/code\u003e\u003c/a\u003e Update to use trusted publisher on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ed4f79d202eba582b44bdf1f5deb726dd68783d\"\u003e\u003ccode\u003e8ed4f79\u003c/code\u003e\u003c/a\u003e Update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/5bf882241c607445bf02cf5b241535d62e2b99c1\"\u003e\u003ccode\u003e5bf8822\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.1 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1fe11cc737ee4399e9c51d1b69b0dd858f6b4669\"\u003e\u003ccode\u003e1fe11cc\u003c/code\u003e\u003c/a\u003e upadate changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.0.1...v1.2.1\"\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 `geoalchemy2` from 0.17.1 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect by \u003ca href=\"https://github.com/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/570\"\u003egeoalchemy/geoalchemy2#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string by \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/574\"\u003egeoalchemy/geoalchemy2#574\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/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/538\"\u003egeoalchemy/geoalchemy2#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/540\"\u003egeoalchemy/geoalchemy2#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCompile literal binds by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/543\"\u003egeoalchemy/geoalchemy2#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/544\"\u003egeoalchemy/geoalchemy2#544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore (mariadb): Stop converting WKB to WKT by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/545\"\u003egeoalchemy/geoalchemy2#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker containers by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/546\"\u003egeoalchemy/geoalchemy2#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/547\"\u003egeoalchemy/geoalchemy2#547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/553\"\u003egeoalchemy/geoalchemy2#553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/554\"\u003egeoalchemy/geoalchemy2#554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Improve readbility of benchmark results by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/556\"\u003egeoalchemy/geoalchemy2#556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/555\"\u003egeoalchemy/geoalchemy2#555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/557\"\u003egeoalchemy/geoalchemy2#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Remove warning message from MySQL/MariaDB reflection by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/560\"\u003egeoalchemy/geoalchemy2#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/561\"\u003egeoalchemy/geoalchemy2#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: correct doc strings by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/564\"\u003egeoalchemy/geoalchemy2#564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/565\"\u003egeoalchemy/geoalchemy2#565\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/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.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/geoalchemy/geoalchemy2/blob/main/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string - \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Fix doc strings for cache enabled - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(papacodebear/master) Fix: Remove warning from MySQL/MariaDB reflection \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Improve readability of benchmark results \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/556\"\u003e#556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/553\"\u003e#553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker container \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf (mariadb): Stop converting WKB to WKT \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/544\"\u003e#544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Compile literal binds properly \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/540\"\u003e#540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0c311122e5228a885e262d8f79b037cb74c0949b\"\u003e\u003ccode\u003e0c31112\u003c/code\u003e\u003c/a\u003e Release: 0.18.1 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/75f87fac699ed31579ef93dffc59cc25bda241a8\"\u003e\u003ccode\u003e75f87fa\u003c/code\u003e\u003c/a\u003e Fix: Allow scientific notation within WKT string (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8653df3a1b0236556f1c39c916f0fb717475a6d1\"\u003e\u003ccode\u003e8653df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/3d6099504023afda68137f0ac2d041986159dac9\"\u003e\u003ccode\u003e3d60995\u003c/code\u003e\u003c/a\u003e Fix (mysql): Fix failing test for MySQL dialect (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/60767082df9f4587fadd56ab94847ebc39df8295\"\u003e\u003ccode\u003e6076708\u003c/code\u003e\u003c/a\u003e Release: 0.18.0 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/565\"\u003e#565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/e13112177bdf79cae0d72a6e89d815dc272e3dc5\"\u003e\u003ccode\u003ee131121\u003c/code\u003e\u003c/a\u003e Feat: Add support of spatial indexes for Raster type for PostgreSQL (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0b432086a0c3b8ab1...\n\n_Description has been truncated_","html_url":"https://github.com/Canner/wren-engine/pull/1422","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Canner%2Fwren-engine/issues/1422","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1422/packages"}},{"old_version":"0.17.1","new_version":"0.18.1","update_type":"minor","path":null,"pr_created_at":"2026-01-09T03:32:46.000Z","version_change":"0.17.1 → 0.18.1","issue":{"uuid":"3795330434","node_id":"PR_kwDOHTdvBs68P6-_","number":1401,"state":"open","title":"deps(ibis): bump the all group across 1 directory with 27 updates","user":"dependabot[bot]","labels":["ibis","dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-09T03:32:46.000Z","updated_at":"2026-01-12T07:14:12.529Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(ibis): bump","group_name":"all","update_count":27,"packages":[{"name":"fastapi","old_version":"0.120.1","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.10.6","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"google-auth","old_version":"2.38.0","new_version":"2.47.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"orjson","old_version":"3.10.16","new_version":"3.11.5","repository_url":"https://github.com/ijl/orjson"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"geoalchemy2","old_version":"0.17.1","new_version":"0.18.1","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"gql","old_version":"3.5.2","new_version":"4.0.0","repository_url":"https://github.com/graphql-python/gql"},{"name":"anyio","old_version":"4.10.0","new_version":"4.12.1","repository_url":"https://github.com/agronholm/anyio"},{"name":"duckdb","old_version":"1.3.2","new_version":"1.4.3","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"oracledb","old_version":"3.3.0","new_version":"3.4.1","repository_url":"https://github.com/oracle/python-oracledb"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"uvicorn-worker","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/Kludex/uvicorn-worker"},{"name":"redshift-connector","old_version":"2.1.7","new_version":"2.1.10","repository_url":"https://github.com/aws/amazon-redshift-python-driver"},{"name":"datafusion","old_version":"47.0.0","new_version":"50.1.0","repository_url":"https://github.com/apache/datafusion-python"},{"name":"starlette","old_version":"0.49.3","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"databricks-sql-connector","old_version":"4.2.3","new_version":"4.2.4","repository_url":"https://github.com/databricks/databricks-sql-python"},{"name":"databricks-sdk","old_version":"0.73.0","new_version":"0.77.0","repository_url":"https://github.com/databricks/databricks-sdk-py"},{"name":"pyspark","old_version":"3.5.7","new_version":"4.1.0","repository_url":"https://github.com/apache/spark"},{"name":"plotly","old_version":"6.5.0","new_version":"6.5.1","repository_url":"https://github.com/plotly/plotly.py"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"testcontainers","old_version":"4.9.2","new_version":"4.14.0","repository_url":"https://github.com/testcontainers/testcontainers-python"},{"name":"sqlalchemy","old_version":"2.0.39","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.11.2","new_version":"0.14.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"trino","old_version":"0.335.0","new_version":"0.336.0","repository_url":"https://github.com/trinodb/trino-python-client"},{"name":"clickhouse-connect","old_version":"0.8.15","new_version":"0.10.0","repository_url":"https://github.com/ClickHouse/clickhouse-connect"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all group with 27 updates in the /ibis-server directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.120.1` | `0.128.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.10.6` | `2.12.5` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.38.0` | `2.47.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.1` |\n| [orjson](https://github.com/ijl/orjson) | `3.10.16` | `3.11.5` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.17.1` | `0.18.1` |\n| [gql](https://github.com/graphql-python/gql) | `3.5.2` | `4.0.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.12.1` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.3.2` | `1.4.3` |\n| [oracledb](https://github.com/oracle/python-oracledb) | `3.3.0` | `3.4.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.40.0` |\n| [uvicorn-worker](https://github.com/Kludex/uvicorn-worker) | `0.3.0` | `0.4.0` |\n| [redshift-connector](https://github.com/aws/amazon-redshift-python-driver) | `2.1.7` | `2.1.10` |\n| [datafusion](https://github.com/apache/datafusion-python) | `47.0.0` | `50.1.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.3` | `0.50.0` |\n| [databricks-sql-connector](https://github.com/databricks/databricks-sql-python) | `4.2.3` | `4.2.4` |\n| [databricks-sdk](https://github.com/databricks/databricks-sdk-py) | `0.73.0` | `0.77.0` |\n| [pyspark](https://github.com/apache/spark) | `3.5.7` | `4.1.0` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.5.0` | `6.5.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [testcontainers](https://github.com/testcontainers/testcontainers-python) | `4.9.2` | `4.14.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.39` | `2.0.45` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.2` | `0.14.11` |\n| [trino](https://github.com/trinodb/trino-python-client) | `0.335.0` | `0.336.0` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.8.15` | `0.10.0` |\n\n\nUpdates `fastapi` from 0.120.1 to 0.128.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\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✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\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 missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\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👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\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👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\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 scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\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 LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\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⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.120.1...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.10.6 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.10.6...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.38.0 to 2.47.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth 2.47.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1590\"\u003e#1590\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4\"\u003e5c07e1c4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc2001\"\u003e60dc2001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.46.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.45.0...v2.46.0\"\u003e2.46.0\u003c/a\u003e (2026-01-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecognize workload certificate config in has_default_client_cert_source for mTLS for Agentic Identities (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1907\"\u003e#1907\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d5\"\u003e0b9107d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix test coverage for mtls_helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1886\"\u003e#1886\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/02e71631\"\u003e02e71631\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003euse .read() instead of .content.read() in aiohttp transport (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1899\"\u003e#1899\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/12f4470f\"\u003e12f4470f\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd types to default and verify_token and Request \u003cstrong\u003einit\u003c/strong\u003e based on comments in the source code. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1588\"\u003e#1588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/59a5f588\"\u003e59a5f588\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix the document of secure_authorized_session (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1536\"\u003e#1536\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5d001470\"\u003e5d001470\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eraise RefreshError for missing token in impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1897\"\u003e#1897\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/94d04e09\"\u003e94d04e09\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1693\"\u003e#1693\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c767531c\"\u003ec767531c\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate urllib3 docstrings for v2 compatibility (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1903\"\u003e#1903\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f1aeea2\"\u003e3f1aeea2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.45.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e\"\u003eb32c934e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.44.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-12)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95\"\u003e0387bb95\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.46.0...v2.47.0\"\u003e2.47.0\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1590\"\u003e#1590\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\"\u003e5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\"\u003e60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.45.0...v2.46.0\"\u003e2.46.0\u003c/a\u003e (2026-01-05)\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate urllib3 docstrings for v2 compatibility (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1903\"\u003e#1903\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3f1aeea2d1014ea1d244a4c3470e52d74d55404b\"\u003e3f1aeea2d1014ea1d244a4c3470e52d74d55404b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRecognize workload certificate config in has_default_client_cert_source for mTLS for Agentic Identities (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1907\"\u003e#1907\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d573123e358c347ffa067637f992af61b4\"\u003e0b9107d573123e358c347ffa067637f992af61b4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd types to default and verify_token and Request \u003cstrong\u003einit\u003c/strong\u003e based on comments in the source code. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1588\"\u003e#1588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/59a5f588f7793b59d923a4185c8c07738da618f7\"\u003e59a5f588f7793b59d923a4185c8c07738da618f7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix the document of secure_authorized_session (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1536\"\u003e#1536\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5d0014707fc359782df5ccfcaa75fd372fe9dce3\"\u003e5d0014707fc359782df5ccfcaa75fd372fe9dce3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1693\"\u003e#1693\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c767531ce05a89002d109f595187aff1fcaacfb7\"\u003ec767531ce05a89002d109f595187aff1fcaacfb7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003euse .read() instead of .content.read() in aiohttp transport (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1899\"\u003e#1899\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/12f4470f808809e8abf1141f98d88ab720c3899b\"\u003e12f4470f808809e8abf1141f98d88ab720c3899b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eraise RefreshError for missing token in impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1897\"\u003e#1897\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/94d04e090fdfc61926dd32bc1d65f8820b9cede5\"\u003e94d04e090fdfc61926dd32bc1d65f8820b9cede5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix test coverage for mtls_helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1886\"\u003e#1886\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/02e71631fe275d93825c2e957e830773e75133f7\"\u003e02e71631fe275d93825c2e957e830773e75133f7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e6b0d09b94c467cd432a0a635e8b05f5c\"\u003eb32c934e6b0d09b94c467cd432a0a635e8b05f5c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e78f247665b6ef0287d482033f7be2ed6d\"\u003e0f7097e78f247665b6ef0287d482033f7be2ed6d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5f6881b590025f36d333d12eff8dc60fc\"\u003e39c381a5f6881b590025f36d333d12eff8dc60fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95713653d47e846cad3a010eb55ef2db4c\"\u003e0387bb95713653d47e846cad3a010eb55ef2db4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986ca03ee95bfffa9ad821124ed7e903e63\"\u003ed5638986ca03ee95bfffa9ad821124ed7e903e63\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/f32301a03372eb72a8b5542a4cc223e01ee1e33b\"\u003e\u003ccode\u003ef32301a\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260106T130342Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1922\"\u003e#1922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/25f4ca658c1880c7a27ed817ded4c17d84c26854\"\u003e\u003ccode\u003e25f4ca6\u003c/code\u003e\u003c/a\u003e chore: remove Python 3.7 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1919\"\u003e#1919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/60dc20014a35ec4ba71e8065b9a33ecbdbeca97a\"\u003e\u003ccode\u003e60dc200\u003c/code\u003e\u003c/a\u003e fix: Python 3.8 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1918\"\u003e#1918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5c07e1c4f52bc77a1b16fa3b7b3c5269c242f6f4\"\u003e\u003ccode\u003e5c07e1c\u003c/code\u003e\u003c/a\u003e feat: drop \u003ccode\u003ecachetools\u003c/code\u003e dependency in favor of simple local implementation (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2cbc2a2e2e75e8797bf3709eb1e624ad39e7e7d4\"\u003e\u003ccode\u003e2cbc2a2\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260105T122553Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1913\"\u003e#1913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/5b7b5d83adafe275351989a96328472b1845c4be\"\u003e\u003ccode\u003e5b7b5d8\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260105T112538Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1912\"\u003e#1912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/7dbf05a56c5c8f1c01f985af140dc8c5ea29656a\"\u003e\u003ccode\u003e7dbf05a\u003c/code\u003e\u003c/a\u003e chore: rename _refresh_token to _perform_refresh_token (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1900\"\u003e#1900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/855a45af913a5d099e30036b80d8ba3b0c324a62\"\u003e\u003ccode\u003e855a45a\u003c/code\u003e\u003c/a\u003e chore(deps): update all dependencies (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1894\"\u003e#1894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/77c8bc48b5638cbe8c4415fdd378853e9db6e156\"\u003e\u003ccode\u003e77c8bc4\u003c/code\u003e\u003c/a\u003e tests: make the TLS tests skip when pyopenssl isn't available (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1873\"\u003e#1873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0b9107d573123e358c347ffa067637f992af61b4\"\u003e\u003ccode\u003e0b9107d\u003c/code\u003e\u003c/a\u003e feat: Recognize workload certificate config in has_default_client_cert_source...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.38.0...v2.47.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.0.1 to 1.2.1\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.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport reading .env 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/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI to use trusted publishing on PyPI\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/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\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.0...v1.2.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: upgrade to use ruff 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/567\"\u003etheskumar/python-dotenv#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.exit() instead of exit() 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/568\"\u003etheskumar/python-dotenv#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:  add \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e flag to disable load_dotenv (fixes \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/510\"\u003e#510\u003c/a\u003e) 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/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python@3.14: Github CI \u0026amp; tox.ini 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/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eocs: clarify what load_dotenv() does in README by \u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory 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/theskumar/python-dotenv/pull/577\"\u003etheskumar/python-dotenv#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove project metadata and config to pyproject.toml 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/pull/583\"\u003etheskumar/python-dotenv#583\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/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\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.1.1...v1.2.0\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv 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/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a security policy 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/512\"\u003etheskumar/python-dotenv#512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep GitHub Actions up to date with GitHub's Dependabot by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/506\"\u003etheskumar/python-dotenv#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: fix multiline string in test.yml \u0026amp; use fail-fast strategy by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/514\"\u003etheskumar/python-dotenv#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance dotenv run: Switch to execvpe for better resource management and signal handling by \u003ca href=\"https://github.com/eekstunt\"\u003e\u003ccode\u003e@​eekstunt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/523\"\u003etheskumar/python-dotenv#523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add py3.13 to test.yml by \u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/527\"\u003etheskumar/python-dotenv#527\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 trove classifier by \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/535\"\u003etheskumar/python-dotenv#535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/529\"\u003etheskumar/python-dotenv#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.13 and drop 3.8 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/551\"\u003etheskumar/python-dotenv#551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update README.md by \u003ca href=\"https://github.com/chapeupreto\"\u003e\u003ccode\u003e@​chapeupreto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/516\"\u003etheskumar/python-dotenv#516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSome more s/Python-dotenv/python-dotenv/ 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/552\"\u003etheskumar/python-dotenv#552\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/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.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/pull/563\"\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/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.0] - 2025-03-25\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFeature\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.13\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003edotenv run\u003c/code\u003e, switch to \u003ccode\u003eexecvpe\u003c/code\u003e for better resource management and signal handling (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/523\"\u003e#523\u003c/a\u003e) by [\u003ca href=\"https://github.com/eekstunt\"\u003e\u003ccode\u003e@​eekstunt\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efind_dotenv\u003c/code\u003e and \u003ccode\u003eload_dotenv\u003c/code\u003e now correctly looks up at the current directory when running in debugger or pdb (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/553\"\u003e#553\u003c/a\u003e by [\u003ca href=\"https://github.com/randomseed42\"\u003e\u003ccode\u003e@​randomseed42\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMisc\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/eaf2a9129ccec6febda0f741eb3bb852c3f947bd\"\u003e\u003ccode\u003eeaf2a91\u003c/code\u003e\u003c/a\u003e Do not remove .coverage file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8716196891532eeb67d24a513e8d975437f5e8b7\"\u003e\u003ccode\u003e8716196\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.0 → 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/b87807fcad6e74332c3c63a75c92ce5814fa7a55\"\u003e\u003ccode\u003eb87807f\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/3af77d3029eb717aeec0a3c25f751b6a614a6d3c\"\u003e\u003ccode\u003e3af77d3\u003c/code\u003e\u003c/a\u003e Support reading .env from FIFOs (Unix) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/467ee22fccb2fb7ccda71a0d9e37c6ea3cb8d993\"\u003e\u003ccode\u003e467ee22\u003c/code\u003e\u003c/a\u003e Fix test failures after moving config to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/76999e741d87e958ebd74e3ae9834c0514e77a59\"\u003e\u003ccode\u003e76999e7\u003c/code\u003e\u003c/a\u003e Move more config pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/222ce2cc58ebc82ba78da8781269267b9f585932\"\u003e\u003ccode\u003e222ce2c\u003c/code\u003e\u003c/a\u003e Update to use trusted publisher on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ed4f79d202eba582b44bdf1f5deb726dd68783d\"\u003e\u003ccode\u003e8ed4f79\u003c/code\u003e\u003c/a\u003e Update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/5bf882241c607445bf02cf5b241535d62e2b99c1\"\u003e\u003ccode\u003e5bf8822\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.1 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1fe11cc737ee4399e9c51d1b69b0dd858f6b4669\"\u003e\u003ccode\u003e1fe11cc\u003c/code\u003e\u003c/a\u003e upadate changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.0.1...v1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `orjson` from 3.10.16 to 3.11.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ijl/orjson/releases\"\u003eorjson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.5\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow simple error message instead of traceback when attempting to\nbuild on unsupported Python versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.4\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eABI compatibility with CPython 3.15 alpha 1.\u003c/li\u003e\n\u003cli\u003ePublish PyPI wheels for 3.14 and manylinux i686, manylinux arm7,\nmanylinux ppc64le, manylinux s390x.\u003c/li\u003e\n\u003cli\u003eBuild now requires a C compiler.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix PyPI project metadata when using maturin 1.9.2 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix build using Rust 1.89 on amd64.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.85 or later instead of 1.82.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish PyPI wheels for CPython 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003estr\u003c/code\u003e on big-endian architectures.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse a deserialization buffer allocated per request instead of a shared buffer allocated on import.\u003c/li\u003e\n\u003cli\u003eABI compatibility with CPython 3.14 beta 4.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect escaping of the vertical tabulation character. This was\nintroduced in 3.10.17.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.17\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/ijl/orjson/blob/master/CHANGELOG.md\"\u003eorjson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.5 - 2025-12-06\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow simple error message instead of traceback when attempting to\nbuild on unsupported Python versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.4 - 2025-10-24\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eABI compatibility with CPython 3.15 alpha 1.\u003c/li\u003e\n\u003cli\u003ePublish PyPI wheels for 3.14 and manylinux i686, manylinux arm7,\nmanylinux ppc64le, manylinux s390x.\u003c/li\u003e\n\u003cli\u003eBuild now requires a C compiler.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.3 - 2025-08-26\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix PyPI project metadata when using maturin 1.9.2 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.2 - 2025-08-12\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix build using Rust 1.89 on amd64.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.85 or later instead of 1.82.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.1 - 2025-07-25\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish PyPI wheels for CPython 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003estr\u003c/code\u003e on big-endian architectures. This was introduced in 3.11.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.0 - 2025-07-15\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/fb3eb1f729c7e7b019f780af5695722c99c7c695\"\u003e\u003ccode\u003efb3eb1f\u003c/code\u003e\u003c/a\u003e 3.11.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/52688e02c51c845cde24a46cd1011a6010d10eb8\"\u003e\u003ccode\u003e52688e0\u003c/code\u003e\u003c/a\u003e Record contributors in headers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/dc083e87d5262e7dde3ba4b1d2a377b5b065a27c\"\u003e\u003ccode\u003edc083e8\u003c/code\u003e\u003c/a\u003e Further compatibility and build misc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/18f0186d47fbadd53c9db4e39a442d5b04225418\"\u003e\u003ccode\u003e18f0186\u003c/code\u003e\u003c/a\u003e Compatibility and build misc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/a4fdeb3aff125d501ec0dd0577f9b38b2b977b4f\"\u003e\u003ccode\u003ea4fdeb3\u003c/code\u003e\u003c/a\u003e 3.11.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/2e80d68afacafca8751e6a64ca05d0d4087dbd15\"\u003e\u003ccode\u003e2e80d68\u003c/code\u003e\u003c/a\u003e unlikely to cold_path, remove intrinsics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/27edea92f8da2fdfc3f1342474e2f1686f1edf55\"\u003e\u003ccode\u003e27edea9\u003c/code\u003e\u003c/a\u003e FFI through crate::ffi, partial non-CPython compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/416a8c9578da780d0d58b5e6b751793deafc610d\"\u003e\u003ccode\u003e416a8c9\u003c/code\u003e\u003c/a\u003e Unconditionally build yyjson\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/c8c1a17dca8436a2fee05ca060febd096e653d98\"\u003e\u003ccode\u003ec8c1a17\u003c/code\u003e\u003c/a\u003e edition 2024\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/af4179a1fa0aafffd0f867203b6c36e9a522f165\"\u003e\u003ccode\u003eaf4179a\u003c/code\u003e\u003c/a\u003e build maintenance, panic_immediate_abort break, test 3.15\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ijl/orjson/compare/3.10.16...3.11.5\"\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 `geoalchemy2` from 0.17.1 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect by \u003ca href=\"https://github.com/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/570\"\u003egeoalchemy/geoalchemy2#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string by \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/574\"\u003egeoalchemy/geoalchemy2#574\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/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/538\"\u003egeoalchemy/geoalchemy2#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/540\"\u003egeoalchemy/geoalchemy2#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCompile literal binds by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/543\"\u003egeoalchemy/geoalchemy2#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/544\"\u003egeoalchemy/geoalchemy2#544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore (mariadb): Stop converting WKB to WKT by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/545\"\u003egeoalchemy/geoalchemy2#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker containers by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/546\"\u003egeoalchemy/geoalchemy2#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/547\"\u003egeoalchemy/geoalchemy2#547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/553\"\u003egeoalchemy/geoalchemy2#553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/554\"\u003egeoalchemy/geoalchemy2#554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Improve readbility of benchmark results by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/556\"\u003egeoalchemy/geoalchemy2#556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/555\"\u003egeoalchemy/geoalchemy2#555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/557\"\u003egeoalchemy/geoalchemy2#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Remove warning message from MySQL/MariaDB reflection by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/560\"\u003egeoalchemy/geoalchemy2#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/561\"\u003egeoalchemy/geoalchemy2#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: correct doc strings by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/564\"\u003egeoalchemy/geoalchemy2#564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/565\"\u003egeoalchemy/geoalchemy2#565\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/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.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/geoalchemy/geoalchemy2/blob/master/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string - \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Fix doc strings for cache enabled - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(papacodebear/master) Fix: Remove warning from MySQL/MariaDB reflection \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Improve readability of benchmark results \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/556\"\u003e#556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/553\"\u003e#553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker container \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf (mariadb): Stop converting WKB to WKT \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issu...\n\n_Description has been truncated_","html_url":"https://github.com/Canner/wren-engine/pull/1401","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Canner%2Fwren-engine/issues/1401","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1401/packages"}},{"old_version":"0.17.1","new_version":"0.18.1","update_type":"minor","path":null,"pr_created_at":"2026-01-06T09:54:16.000Z","version_change":"0.17.1 → 0.18.1","issue":{"uuid":"3784517827","node_id":"PR_kwDOEcrRgc67sGuz","number":4722,"state":"closed","title":"[Tech] Python - Bump the non-major-dependencies group across 1 directory with 22 updates","user":"dependabot[bot]","labels":["tech. enhancement","dependencies"],"assignees":["VincentAntoine"],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-01-06T17:08:23.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-06T09:54:16.000Z","updated_at":"2026-01-06T17:08:33.000Z","time_to_close":26047,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"[Tech] Python - Bump","group_name":"non-major-dependencies","update_count":22,"packages":[{"name":"pandas","old_version":"2.3.0","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"black","old_version":"25.1.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.9.1","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"python-dotenv","old_version":"1.1.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"scrapy","old_version":"2.13.2","new_version":"2.14.0","repository_url":"https://github.com/scrapy/scrapy"},{"name":"simplejson","old_version":"3.20.1","new_version":"3.20.2","repository_url":"https://github.com/simplejson/simplejson"},{"name":"geoalchemy2","old_version":"0.17.1","new_version":"0.18.1","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"rtree","old_version":"1.4.0","new_version":"1.4.1","repository_url":"https://github.com/Toblerity/rtree"},{"name":"geopandas","old_version":"1.1.0","new_version":"1.1.2","repository_url":"https://github.com/geopandas/geopandas"},{"name":"css-inline","old_version":"0.14.6","new_version":"0.19.0","repository_url":"https://github.com/Stranger6667/css-inline"},{"name":"h3","old_version":"4.3.0","new_version":"4.4.1","repository_url":"https://github.com/uber/h3-py"},{"name":"clickhouse-connect","old_version":"0.8.17","new_version":"0.10.0","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"prefect","old_version":"3.4.7","new_version":"3.6.9","repository_url":"https://github.com/PrefectHQ/prefect"},{"name":"duckdb","old_version":"1.3.1","new_version":"1.4.3","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"plotly","old_version":"6.1.2","new_version":"6.5.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"xlsxwriter","old_version":"3.2.5","new_version":"3.2.9","repository_url":"https://github.com/jmcnamara/XlsxWriter"},{"name":"matplotlib","old_version":"3.10.3","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"sphinx-intl","old_version":"2.3.1","new_version":"2.3.2","repository_url":"https://github.com/sphinx-doc/sphinx-intl"},{"name":"sphinx-autoapi","old_version":"3.6.0","new_version":"3.6.1","repository_url":"https://github.com/readthedocs/sphinx-autoapi"},{"name":"scikit-learn","old_version":"1.7.0","new_version":"1.8.0","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"ipywidgets","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/jupyter-widgets/ipywidgets"}],"path":null,"ecosystem":"pip"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the non-major-dependencies group with 22 updates in the /pipeline directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.0` | `2.3.3` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.9.1` | `7.13.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.1` | `1.2.1` |\n| [scrapy](https://github.com/scrapy/scrapy) | `2.13.2` | `2.14.0` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.1` | `3.20.2` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.17.1` | `0.18.1` |\n| [rtree](https://github.com/Toblerity/rtree) | `1.4.0` | `1.4.1` |\n| [geopandas](https://github.com/geopandas/geopandas) | `1.1.0` | `1.1.2` |\n| [css-inline](https://github.com/Stranger6667/css-inline) | `0.14.6` | `0.19.0` |\n| [h3](https://github.com/uber/h3-py) | `4.3.0` | `4.4.1` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.8.17` | `0.10.0` |\n| [prefect](https://github.com/PrefectHQ/prefect) | `3.4.7` | `3.6.9` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.3.1` | `1.4.3` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.1.2` | `6.5.0` |\n| [xlsxwriter](https://github.com/jmcnamara/XlsxWriter) | `3.2.5` | `3.2.9` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.3` | `3.10.8` |\n| [sphinx-intl](https://github.com/sphinx-doc/sphinx-intl) | `2.3.1` | `2.3.2` |\n| [sphinx-autoapi](https://github.com/readthedocs/sphinx-autoapi) | `3.6.0` | `3.6.1` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.7.0` | `1.8.0` |\n| [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) | `8.1.7` | `8.1.8` |\n\n\nUpdates `pandas` from 2.3.0 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.3.0...v2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 25.1.0 to 25.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.9.1...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.2.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.3.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.3.0 - 2025-08-09\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.2.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.1.1 to 1.2.1\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.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport reading .env 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/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI to use trusted publishing on PyPI\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/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\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.0...v1.2.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: upgrade to use ruff 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/567\"\u003etheskumar/python-dotenv#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.exit() instead of exit() 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/568\"\u003etheskumar/python-dotenv#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:  add \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e flag to disable load_dotenv (fixes \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/510\"\u003e#510\u003c/a\u003e) 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/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python@3.14: Github CI \u0026amp; tox.ini 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/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eocs: clarify what load_dotenv() does in README by \u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory 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/theskumar/python-dotenv/pull/577\"\u003etheskumar/python-dotenv#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove project metadata and config to pyproject.toml 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/pull/583\"\u003etheskumar/python-dotenv#583\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/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\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.1.1...v1.2.0\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/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.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/pull/563\"\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\u003c/blockquote\u003e\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/eaf2a9129ccec6febda0f741eb3bb852c3f947bd\"\u003e\u003ccode\u003eeaf2a91\u003c/code\u003e\u003c/a\u003e Do not remove .coverage file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8716196891532eeb67d24a513e8d975437f5e8b7\"\u003e\u003ccode\u003e8716196\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.0 → 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/b87807fcad6e74332c3c63a75c92ce5814fa7a55\"\u003e\u003ccode\u003eb87807f\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/3af77d3029eb717aeec0a3c25f751b6a614a6d3c\"\u003e\u003ccode\u003e3af77d3\u003c/code\u003e\u003c/a\u003e Support reading .env from FIFOs (Unix) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/467ee22fccb2fb7ccda71a0d9e37c6ea3cb8d993\"\u003e\u003ccode\u003e467ee22\u003c/code\u003e\u003c/a\u003e Fix test failures after moving config to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/76999e741d87e958ebd74e3ae9834c0514e77a59\"\u003e\u003ccode\u003e76999e7\u003c/code\u003e\u003c/a\u003e Move more config pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/222ce2cc58ebc82ba78da8781269267b9f585932\"\u003e\u003ccode\u003e222ce2c\u003c/code\u003e\u003c/a\u003e Update to use trusted publisher on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ed4f79d202eba582b44bdf1f5deb726dd68783d\"\u003e\u003ccode\u003e8ed4f79\u003c/code\u003e\u003c/a\u003e Update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/5bf882241c607445bf02cf5b241535d62e2b99c1\"\u003e\u003ccode\u003e5bf8822\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.1 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1fe11cc737ee4399e9c51d1b69b0dd858f6b4669\"\u003e\u003ccode\u003e1fe11cc\u003c/code\u003e\u003c/a\u003e upadate changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scrapy` from 2.13.2 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scrapy/scrapy/releases\"\u003escrapy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.14.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMore coroutine-based replacements for Deferred-based APIs\u003c/li\u003e\n\u003cli\u003eThe default priority queue is now \u003ccode\u003eDownloaderAwarePriorityQueue\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDropped support for Python 3.9 and PyPy 3.10\u003c/li\u003e\n\u003cli\u003eImproved and documented the API for custom download handlers\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.scrapy.org/en/latest/news.html#scrapy-2-14-0-2026-01-05\"\u003eFull changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.13.4\u003c/h2\u003e\n\u003cp\u003eFix for the \u003ca href=\"https://nvd.nist.gov/vuln/detail/CVE-2025-6176\"\u003eCVE-2025-6176\u003c/a\u003e security issue: improved protection against decompression bombs in \u003ccode\u003eHttpCompressionMiddleware\u003c/code\u003e for responses compressed using the \u003ccode\u003ebr\u003c/code\u003e and \u003ccode\u003edeflate\u003c/code\u003e methods. Requires \u003ccode\u003ebrotli \u0026gt;= 1.2.0\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://docs.scrapy.org/en/latest/news.html#scrapy-2-13-4-2025-11-17\"\u003eFull changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.13.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged the values for \u003ccode\u003eDOWNLOAD_DELAY\u003c/code\u003e (from \u003ccode\u003e0\u003c/code\u003e to \u003ccode\u003e1\u003c/code\u003e) and \u003ccode\u003eCONCURRENT_REQUESTS_PER_DOMAIN\u003c/code\u003e (from \u003ccode\u003e8\u003c/code\u003e to \u003ccode\u003e1\u003c/code\u003e) in the default project template.\u003c/li\u003e\n\u003cli\u003eFixed several bugs in the engine initialization and exception handling logic.\u003c/li\u003e\n\u003cli\u003eAllowed running tests with Twisted 25.5.0+ again and fixed test failures with lxml 6.0.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.scrapy.org/en/2.13/news.html#scrapy-2-13-3-2025-07-02\"\u003eSee the full changelog\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/scrapy/scrapy/blob/master/docs/news.rst\"\u003escrapy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eScrapy 2.14.0 (2026-01-05)\u003c/h2\u003e\n\u003cp\u003eHighlights:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMore coroutine-based replacements for Deferred-based APIs\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default priority queue is now \u003ccode\u003eDownloaderAwarePriorityQueue\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for Python 3.9 and PyPy 3.10\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved and documented the API for custom download handlers\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eModified requirements\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n-   Dropped support for Python 3.9.\n    (:issue:`7121`)\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for PyPy 3.10.\u003cbr /\u003e\n(:issue:\u003ccode\u003e7050\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIncreased the minimum versions of the following dependencies:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003elxml_: 4.6.0 → 4.6.4\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePillow_ (optional dependency): 8.0.0 → 8.3.2\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ebotocore_ (optional dependency): 1.4.87 → 1.13.45\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRestored support for \u003ccode\u003ebrotlicffi\u003c/code\u003e dropped in Scrapy 2.13.4. Its minimum\u003cbr /\u003e\nsupported version is now \u003ccode\u003e1.2.0.0\u003c/code\u003e.\u003cbr /\u003e\n(:issue:\u003ccode\u003e7160\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBackward-incompatible changes\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf you set the :setting:\u003ccode\u003eTWISTED_REACTOR\u003c/code\u003e setting to a :ref:\u003ccode\u003enon-asyncio value \u0026lt;disable-asyncio\u0026gt;\u003c/code\u003e at the :ref:\u003ccode\u003espider level \u0026lt;spider-settings\u0026gt;\u003c/code\u003e, you\nmay now need to set the :setting:\u003ccode\u003eFORCE_CRAWLER_PROCESS\u003c/code\u003e setting to\n\u003ccode\u003eTrue\u003c/code\u003e when running Scrapy via :ref:\u003ccode\u003eits command-line tool \u0026lt;topics-commands-crawlerprocess\u0026gt;\u003c/code\u003e to avoid a reactor mismatch exception.\n(:issue:\u003ccode\u003e6845\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ccode\u003elog_count/*\u003c/code\u003e stats no longer count some of the early messages that\nthey counted before. While the earliest log messages, emitted before the\ncounter is initialized, were never counted, the counter initialization now\nhappens later than in previous Scrapy versions. You may need to adjust\nexpected values if you retrieve and compare values of these stats in your\ncode.\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/scrapy/scrapy/commit/3ac1192f35fc32d01c69c929eed85601fb0405e8\"\u003e\u003ccode\u003e3ac1192\u003c/code\u003e\u003c/a\u003e Bump version: 2.13.4 → 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapy/scrapy/commit/7bef98b4f14a29f8f760a67c21edf6a6bee4dad0\"\u003e\u003ccode\u003e7bef98b\u003c/code\u003e\u003c/a\u003e Release notes for 2.14.0 (\u003ca href=\"https://redirect.github.com/scrapy/scrapy/issues/7035\"\u003e#7035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapy/scrapy/commit/d1bd8eb49f7aba9289e4ff692006cead8bcd9080\"\u003e\u003ccode\u003ed1bd8eb\u003c/code\u003e\u003c/a\u003e Async API for download handlers. (\u003ca href=\"https://redirect.github.com/scrapy/scrapy/issues/7164\"\u003e#7164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapy/scrapy/commit/a2463325db2fd128e27da45d6ee36e21126c1bf5\"\u003e\u003ccode\u003ea246332\u003c/code\u003e\u003c/a\u003e Allow Crawler.crawl_async() without asyncio. (\u003ca href=\"https://redirect.github.com/scrapy/scrapy/issues/7202\"\u003e#7202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapy/scrapy/commit/9381ad893dfea0e8dac73fc78cb609b6017bde9a\"\u003e\u003ccode\u003e9381ad8\u003c/code\u003e\u003c/a\u003e Remove outdated version marker directives (\u0026lt; 2.8.0) from documentation (\u003ca href=\"https://redirect.github.com/scrapy/scrapy/issues/7198\"\u003e#7198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapy/scrapy/commit/180ca39b230590a2a2862c8d18c574661b1d16ad\"\u003e\u003ccode\u003e180ca39\u003c/code\u003e\u003c/a\u003e Deprecate returning Deferreds from pipeline methods (\u003ca href=\"https://redirect.github.com/scrapy/scrapy/issues/7179\"\u003e#7179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapy/scrapy/commit/5a7e132486f3337956f684fffcac77cb6ad5a8d2\"\u003e\u003ccode\u003e5a7e132\u003c/code\u003e\u003c/a\u003e Restore and deprecate the spider arg of Downloader._get_slot(). (\u003ca href=\"https://redirect.github.com/scrapy/scrapy/issues/7178\"\u003e#7178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapy/scrapy/commit/c49ae2115afd05afd7d0175f392e262e01b2779e\"\u003e\u003ccode\u003ec49ae21\u003c/code\u003e\u003c/a\u003e Refactor MediaPipeline.process_item() to async def (\u003ca href=\"https://redirect.github.com/scrapy/scrapy/issues/7177\"\u003e#7177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapy/scrapy/commit/588f3d4f65e292424d227e8a0498bcba2d395781\"\u003e\u003ccode\u003e588f3d4\u003c/code\u003e\u003c/a\u003e Remove docs mentioning deprecated spider attrs. (\u003ca href=\"https://redirect.github.com/scrapy/scrapy/issues/7176\"\u003e#7176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scrapy/scrapy/commit/d8583a89c7f9d5a444ef48039af1101c0cbfcef8\"\u003e\u003ccode\u003ed8583a8\u003c/code\u003e\u003c/a\u003e Change default priority queue to DownloaderAwarePriorityQueue (\u003ca href=\"https://redirect.github.com/scrapy/scrapy/issues/6940\"\u003e#6940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scrapy/scrapy/compare/2.13.2...2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplejson` from 3.20.1 to 3.20.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/releases\"\u003esimplejson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.20.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a test for the min and max floats by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/337\"\u003esimplejson/simplejson#337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable speedups on GraalPy same as on PyPy by \u003ca href=\"https://github.com/timfel\"\u003e\u003ccode\u003e@​timfel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/339\"\u003esimplejson/simplejson#339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate changelog and version for v3.20.2 by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/340\"\u003esimplejson/simplejson#340\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/timfel\"\u003e\u003ccode\u003e@​timfel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/339\"\u003esimplejson/simplejson#339\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v3.20.1...v3.20.2\"\u003ehttps://github.com/simplejson/simplejson/compare/v3.20.1...v3.20.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/simplejson/simplejson/blob/master/CHANGES.txt\"\u003esimplejson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 3.20.2 released 2025-09-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDisable speedups on GraalPy smae as on PyPy\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/339\"\u003esimplejson/simplejson#339\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 3.20.1 released 2025-02-14\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDo not memoize keys before they are coerced to string\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/329\"\u003esimplejson/simplejson#329\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 3.19.3 released 2024-08-14\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated test \u0026amp; build matrix to include Python 3.13.\nDropped wheel support for Python 2.7 on macOS.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/326\"\u003esimplejson/simplejson#326\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 3.19.2 released 2023-10-05\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated test \u0026amp; build matrix to include Python 3.12 and use\nGitHub Actions as a Trusted Publisher (OIDC)\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/317\"\u003esimplejson/simplejson#317\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 3.19.1 released 2023-04-06\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThis release contains security hardening measures based on recommendations\nby a security audit sponsored by OSTIF and conducted by X41 D-Sec GmbH.\nSeveral of these measures include changing defaults to be more strict,\nby default simplejson will now only consume and produce compliant JSON,\nbut the flags still exist for any backwards compatibility needs.\nNo high priority issues were discovered, the reference count\nleak is thought to be unreachable since the digits of the float are\nchecked before PyOS_string_to_double is called.\nA link to the public version of this report will be included in a\nfuture release of simplejson. The following fixes were implemented in\none PR: \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/313\"\u003esimplejson/simplejson#313\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix invalid handling of unicode escape sequences in the pure Python\nimplementation of the decoder (SJ-PT-23-01)\u003c/li\u003e\n\u003cli\u003eFix missing reference count decrease if PyOS_string_to_double raises\nan exception in Python 2.x; was probably unreachable (SJ-PT-23-02)\u003c/li\u003e\n\u003cli\u003eBackport the integer string length limitation from Python 3.11 to\nlimit quadratic number parsing (SJ-PT-23-03)\u003c/li\u003e\n\u003cli\u003eFix inconsistencies with error messages between the C and Python\nimplementations (SJ-PT-23-100)\u003c/li\u003e\n\u003cli\u003eRemove unused unichr import from encoder (SJ-PT-23-101)\u003c/li\u003e\n\u003cli\u003eRemove unused namedtuple_as_object and tuple_as_array arguments from\nsimplejson.load (SJ-PT-23-102)\u003c/li\u003e\n\u003cli\u003eRemove vestigial _one_shot code from iterencode (SJ-PT-23-103)\u003c/li\u003e\n\u003cli\u003eChange default of allow_nan from True to False and add allow_nan\nto decoder (SJ-PT-23-107)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/10e5aaffd4823faf5dedcea8bc43ce2c82c5ca4c\"\u003e\u003ccode\u003e10e5aaf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/340\"\u003e#340\u003c/a\u003e from simplejson/changes-v3.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/39ba9df4cbbb3845ee0c778ba646a94777ccf7e5\"\u003e\u003ccode\u003e39ba9df\u003c/code\u003e\u003c/a\u003e Update changelog and version for v3.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/5f9f96fe83fb33d371d35d99ae028a8e7c0f574f\"\u003e\u003ccode\u003e5f9f96f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/339\"\u003e#339\u003c/a\u003e from timfel/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/feb07a3f18a0c5672af154fbc8bb4e39a638242d\"\u003e\u003ccode\u003efeb07a3\u003c/code\u003e\u003c/a\u003e Test pure Python code, also on PyPy and GraalPy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/ae69b83218dd1e250b3e2158f924ab6b7b9ea75d\"\u003e\u003ccode\u003eae69b83\u003c/code\u003e\u003c/a\u003e Disable speedups on GraalPy same as on PyPy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/fd905ba3d7fe7bc8acc6f797f17145234cd65df9\"\u003e\u003ccode\u003efd905ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/337\"\u003e#337\u003c/a\u003e from simplejson/float-range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/92c0230c6038a1a7b4736c7d63c28b44eb76f256\"\u003e\u003ccode\u003e92c0230\u003c/code\u003e\u003c/a\u003e Add a test for the min and max floats\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/simplejson/simplejson/compare/v3.20.1...v3.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geoalchemy2` from 0.17.1 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect by \u003ca href=\"https://github.com/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/570\"\u003egeoalchemy/geoalchemy2#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string by \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/574\"\u003egeoalchemy/geoalchemy2#574\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/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/538\"\u003egeoalchemy/geoalchemy2#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/540\"\u003egeoalchemy/geoalchemy2#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCompile literal binds by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/543\"\u003egeoalchemy/geoalchemy2#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/544\"\u003egeoalchemy/geoalchemy2#544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore (mariadb): Stop converting WKB to WKT by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/545\"\u003egeoalchemy/geoalchemy2#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker containers by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/546\"\u003egeoalchemy/geoalchemy2#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/547\"\u003egeoalchemy/geoalchemy2#547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/553\"\u003egeoalchemy/geoalchemy2#553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/554\"\u003egeoalchemy/geoalchemy2#554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Improve readbility of benchmark results by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/556\"\u003egeoalchemy/geoalchemy2#556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/555\"\u003egeoalchemy/geoalchemy2#555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/557\"\u003egeoalchemy/geoalchemy2#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Remove warning message from MySQL/MariaDB reflection by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/560\"\u003egeoalchemy/geoalchemy2#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/561\"\u003egeoalchemy/geoalchemy2#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: correct doc strings by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/564\"\u003egeoalchemy/geoalchemy2#564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/565\"\u003egeoalchemy/geoalchemy2#565\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/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.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/geoalchemy/geoalchemy2/blob/master/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string - \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Fix doc strings for cache enabled - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(papacodebear/master) Fix: Remove warning from MySQL/MariaDB reflection \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Improve readability of benchmark results \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/556\"\u003e#556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/553\"\u003e#553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker container \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf (mariadb): Stop converting WKB to WKT \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/544\"\u003e#544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Compile literal binds properly \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/540\"\u003e#540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0c311122e5228a885e262d8f79b037cb74c0949b\"\u003e\u003ccode\u003e0c31112\u003c/code\u003e\u003c/a\u003e Release: 0.18.1 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/75f87fac699ed31579ef93dffc59cc25bda241a8\"\u003e\u003ccode\u003e75f87fa\u003c/code\u003e\u003c/a\u003e Fix: Allow scientific notation within WKT string (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8653df3a1b0236556f1c39c916f0fb717475a6d1\"\u003e\u003ccode\u003e8653df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/3d6099504023afda68137f0ac2d041986159dac9\"\u003e\u003ccode\u003e3d60995\u003c/code\u003e\u003c/a\u003e Fix (mysql): Fix failing test for MySQL dialect (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/60767082df9f4587fadd56ab94847ebc39df8295\"\u003e\u003ccode\u003e6076708\u003c/code\u003e\u003c/a\u003e Release: 0.18.0 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/565\"\u003e#565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/e13112177bdf79cae0d72a6e89d815dc272e3dc5\"\u003e\u003ccode\u003ee131121\u003c/code\u003e\u003c/a\u003e Feat: Add support of spatial indexes for Raster type for PostgreSQL (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0b432086a0c3b8ab160c5cc1864aa65e02f35362\"\u003e\u003ccode\u003e0b43208\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8791b2eec013f21f599ca060d9fee4aba72ec2a1\"\u003e\u003ccode\u003e8791b2e\u003c/code\u003e\u003c/a\u003e Docs: Fix doc strings for cache enabled (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/d3c1d04c8b462c61132403e44a7a4f04a487c142\"\u003e\u003ccode\u003ed3c1d04\u003c/code\u003e\u003c/a\u003e Chore: Move reflection type registering (\u003ca href=\"https://redirect.github...\n\n_Description has been truncated_","html_url":"https://github.com/MTES-MCT/monitorfish/pull/4722","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MTES-MCT%2Fmonitorfish/issues/4722","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4722/packages"}},{"old_version":"0.18.0","new_version":"0.18.1","update_type":"patch","path":null,"pr_created_at":"2026-01-01T07:09:48.000Z","version_change":"0.18.0 → 0.18.1","issue":{"uuid":"3774232227","node_id":"PR_kwDOLG-pxs67Le-e","number":129,"state":"open","title":"Bump the non-major-dependencies group across 1 directory with 11 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-01T07:09:48.000Z","updated_at":"2026-02-01T08:17:23.987Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"non-major-dependencies","update_count":11,"packages":[{"name":"pandas","old_version":"2.3.2","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"duckdb","old_version":"1.3.2","new_version":"1.4.3","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"black","old_version":"25.1.0","new_version":"25.12.0","repository_url":"https://github.com/psf/black"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"python-dotenv","old_version":"1.1.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"geopandas","old_version":"1.1.1","new_version":"1.1.2","repository_url":"https://github.com/geopandas/geopandas"},{"name":"simplejson","old_version":"3.20.1","new_version":"3.20.2","repository_url":"https://github.com/simplejson/simplejson"},{"name":"geoalchemy2","old_version":"0.18.0","new_version":"0.18.1","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"clickhouse-connect","old_version":"0.8.18","new_version":"0.10.0","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"h3","old_version":"4.3.1","new_version":"4.4.1","repository_url":"https://github.com/uber/h3-py"}],"path":null,"ecosystem":"pip"},"body":"Bumps the non-major-dependencies group with 11 updates in the /forklift directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.2` | `2.3.3` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.3.2` | `1.4.3` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.12.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.1` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.1` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.1` | `1.2.1` |\n| [geopandas](https://github.com/geopandas/geopandas) | `1.1.1` | `1.1.2` |\n| [simplejson](https://github.com/simplejson/simplejson) | `3.20.1` | `3.20.2` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.18.0` | `0.18.1` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.8.18` | `0.10.0` |\n| [h3](https://github.com/uber/h3-py) | `4.3.1` | `4.4.1` |\n\n\nUpdates `pandas` from 2.3.2 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\u003c/blockquote\u003e\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.3.2...v2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `duckdb` from 1.3.2 to 1.4.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/duckdb/duckdb-python/releases\"\u003educkdb's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePython DuckDB v1.4.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix project metadata by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/174\"\u003educkdb/duckdb-python#174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd filename_pattern to to_parquet Python API by \u003ca href=\"https://github.com/matthewbayer\"\u003e\u003ccode\u003e@​matthewbayer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/201\"\u003educkdb/duckdb-python#201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd windows arm64 build by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/211\"\u003educkdb/duckdb-python#211\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix adbc test imports by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/215\"\u003educkdb/duckdb-python#215\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd file_size_bytes to to_parquet by \u003ca href=\"https://github.com/nicornk\"\u003e\u003ccode\u003e@​nicornk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/204\"\u003educkdb/duckdb-python#204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[minor][spark] Minor bugfixes by \u003ca href=\"https://github.com/Dharin-shah\"\u003e\u003ccode\u003e@​Dharin-shah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/180\"\u003educkdb/duckdb-python#180\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/matthewbayer\"\u003e\u003ccode\u003e@​matthewbayer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/201\"\u003educkdb/duckdb-python#201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nicornk\"\u003e\u003ccode\u003e@​nicornk\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/204\"\u003educkdb/duckdb-python#204\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/duckdb/duckdb-python/compare/v1.4.2...v1.4.3\"\u003ehttps://github.com/duckdb/duckdb-python/compare/v1.4.2...v1.4.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ePython DuckDB v1.4.2\u003c/h2\u003e\n\u003cp\u003eThis is a bug fix release for various issues discovered after we released v1.4.1.\u003c/p\u003e\n\u003cp\u003eAlso see the \u003ca href=\"https://github.com/duckdb/duckdb/releases/tag/v1.4.2\"\u003eDuckDB v1.4.2 Changelog\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/116\"\u003educkdb/duckdb-python#116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ADBC driver path resolution when \u003ccode\u003eimportlib.util\u003c/code\u003e was not implicitly loaded  by \u003ca href=\"https://github.com/henryharbeck\"\u003e\u003ccode\u003e@​henryharbeck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/135\"\u003educkdb/duckdb-python#135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd targeted test workflow by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/145\"\u003educkdb/duckdb-python#145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove xfail annotations on adbc tests by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/147\"\u003educkdb/duckdb-python#147\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix config dict value typehint by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/151\"\u003educkdb/duckdb-python#151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd df data and tz type columns back into the same loc after type con… by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/150\"\u003educkdb/duckdb-python#150\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable pyarrow with python 3.14 by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/152\"\u003educkdb/duckdb-python#152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espark imports by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/157\"\u003educkdb/duckdb-python#157\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix failing test due to changed error msg by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/158\"\u003educkdb/duckdb-python#158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd explicit .pl(lazy=True) overload by \u003ca href=\"https://github.com/J-Meyers\"\u003e\u003ccode\u003e@​J-Meyers\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/172\"\u003educkdb/duckdb-python#172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix InsertRelation on attached database by \u003ca href=\"https://github.com/evertlammerts\"\u003e\u003ccode\u003e@​evertlammerts\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/pull/155\"\u003educkdb/duckdb-python#155\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/duckdb/duckdb-python/compare/v1.4.1...v1.4.2\"\u003ehttps://github.com/duckdb/duckdb-python/compare/v1.4.1...v1.4.2\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/duckdb/duckdb-python/commit/49da1d7f2396cade0a84af275e1b8601b64054c6\"\u003e\u003ccode\u003e49da1d7\u003c/code\u003e\u003c/a\u003e pin new duckdb core SHA\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/030a76a475e263cf9bf09289b69c85951664309c\"\u003e\u003ccode\u003e030a76a\u003c/code\u003e\u003c/a\u003e [minor][spark] Minor bugfixes (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/180\"\u003e#180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/bf7b2a0f8ca506d8d07ddfe295e6f1278ab69024\"\u003e\u003ccode\u003ebf7b2a0\u003c/code\u003e\u003c/a\u003e add file_size_bytes to to_parquet (\u003ca href=\"https://redirect.github.com/duckdb/duckdb-python/issues/204\"\u003e#204\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/6de71c437994d63148eeb7a03ad5ba198eb565d8\"\u003e\u003ccode\u003e6de71c4\u003c/code\u003e\u003c/a\u003e feat: add file_size_bytes to to_parquet\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/743fdb2a916734336369755d37765e58b42a7014\"\u003e\u003ccode\u003e743fdb2\u003c/code\u003e\u003c/a\u003e Merge branch 'v1.4-andium' into minor-bugfixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/b8c499c266f6bf343d4b3246c3323418182af1e9\"\u003e\u003ccode\u003eb8c499c\u003c/code\u003e\u003c/a\u003e remove unncessary comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/e410e7a0449fcf51e091bd2015e07fd4db30f7d8\"\u003e\u003ccode\u003ee410e7a\u003c/code\u003e\u003c/a\u003e revert unncessary change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/0bfeccbe380a86fa7ef5163cce58376a4083cd91\"\u003e\u003ccode\u003e0bfeccb\u003c/code\u003e\u003c/a\u003e fix precommit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/e3e4b96d67a8b66c3620aa1d5726664cf0c3b0ef\"\u003e\u003ccode\u003ee3e4b96\u003c/code\u003e\u003c/a\u003e fix test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/duckdb/duckdb-python/commit/bfa84c15e38849a1c01222724e49bc3cdd63d6b0\"\u003e\u003ccode\u003ebfa84c1\u003c/code\u003e\u003c/a\u003e fix ruff check\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/duckdb/duckdb-python/compare/v1.3.2...v1.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `black` from 25.1.0 to 25.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003cp\u003ePlease test out the draft 2026 style in version 26.1a1! This style will be finalized in\nthe January release (26.1.0). Most of the changes in \u003ccode\u003e--preview\u003c/code\u003e will be in the 2026\nstable style, but not all.\n\u003ca href=\"https://redirect.github.com/psf/black/issues/4042\"\u003ePlease share your feedback!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release (25.12.0) will still produce the 2025 style.\u003c/p\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.12.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBlack no longer supports running with Python 3.9 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4842\"\u003e#4842\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments preceding \u003ccode\u003e# fmt: off\u003c/code\u003e/\u003ccode\u003e# fmt: on\u003c/code\u003e blocks were incorrectly\nremoved, particularly affecting Jupytext's \u003ccode\u003e# %% [markdown]\u003c/code\u003e comments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4845\"\u003e#4845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in a multi-part if-clause, on\nstring literals, or on dictionary entries with long lines (\u003ca href=\"https://redirect.github.com/psf/black/issues/4872\"\u003e#4872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix possible crash when \u003ccode\u003efmt: \u003c/code\u003e directives aren't on the top level (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary parentheses from the left-hand side of assignments while preserving\nmagic trailing commas and intentional multiline formatting (\u003ca href=\"https://redirect.github.com/psf/black/issues/4865\"\u003e#4865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on \u003ccode\u003ewith\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/psf/black/issues/4853\"\u003e#4853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003efix_fmt_skip_in_one_liners\u003c/code\u003e crashing on annotated parameters (\u003ca href=\"https://redirect.github.com/psf/black/issues/4854\"\u003e#4854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReleases now include arm64 Windows binaries and wheels (\u003ca href=\"https://redirect.github.com/psf/black/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eIntegrations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eoutput-file\u003c/code\u003e input to GitHub Action \u003ccode\u003epsf/black\u003c/code\u003e to write formatter output to a\nfile for artifact capture and log cleanliness (\u003ca href=\"https://redirect.github.com/psf/black/issues/4824\"\u003e#4824\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e25.11.0\u003c/h2\u003e\n\u003ch3\u003eHighlights\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable base 3.14 support (\u003ca href=\"https://redirect.github.com/psf/black/issues/4804\"\u003e#4804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for the new Python 3.14 t-string syntax introduced by PEP 750 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4805\"\u003e#4805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where comments between \u003ccode\u003e# fmt: off\u003c/code\u003e and \u003ccode\u003e# fmt: on\u003c/code\u003e were reformatted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComments containing fmt directives now preserve their exact formatting instead of\nbeing normalized (\u003ca href=\"https://redirect.github.com/psf/black/issues/4811\"\u003e#4811\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove \u003ccode\u003emultiline_string_handling\u003c/code\u003e from \u003ccode\u003e--unstable\u003c/code\u003e to \u003ccode\u003e--preview\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/psf/black/issues/4760\"\u003e#4760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where module docstrings would be treated as normal strings if preceded by\ncomments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4764\"\u003e#4764\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/782e5605c86aab56be6f905da10dcd3e463fd9c2\"\u003e\u003ccode\u003e782e560\u003c/code\u003e\u003c/a\u003e Pin actions/checkout@v5.0.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/4895\"\u003e#4895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/f0f40945c1b0ebaa9ca733aca517610574c451d6\"\u003e\u003ccode\u003ef0f4094\u003c/code\u003e\u003c/a\u003e Fix new lines being added after imports with \u003ccode\u003e# fmt: skip\u003c/code\u003e on them (\u003ca href=\"https://redirect.github.com/psf/black/issues/4894\"\u003e#4894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/70fc194172184861aafb418c124824cae0fbe3b0\"\u003e\u003ccode\u003e70fc194\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions\u0026quot; (\u003ca href=\"https://redirect.github.com/psf/black/issues/4893\"\u003e#4893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7044b145f4826e0d6e07178d89666856a8e37aff\"\u003e\u003ccode\u003e7044b14\u003c/code\u003e\u003c/a\u003e Prepare 25.12.0 release (\u003ca href=\"https://redirect.github.com/psf/black/issues/4891\"\u003e#4891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/5b470f0e577f3c39e0f7d668934d587c0733a652\"\u003e\u003ccode\u003e5b470f0\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e# fmt: skip\u003c/code\u003e ignored in deeply nested expressions (\u003ca href=\"https://redirect.github.com/psf/black/issues/4883\"\u003e#4883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/1b342ef5b0433fc1ed61a7e05a65744bef706fc9\"\u003e\u003ccode\u003e1b342ef\u003c/code\u003e\u003c/a\u003e Fix crash when multiple \u003ccode\u003e# fmt: skip\u003c/code\u003e comments are used in multi-part if-clau...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7b265f16634155dafcca65f6122ef7ed8d14a67f\"\u003e\u003ccode\u003e7b265f1\u003c/code\u003e\u003c/a\u003e Pin Hatch to hopefully fix Docker builds (\u003ca href=\"https://redirect.github.com/psf/black/issues/4878\"\u003e#4878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c9523f463fdc9d9f9f0e61ca92d9b37acdf0d8fc\"\u003e\u003ccode\u003ec9523f4\u003c/code\u003e\u003c/a\u003e Attempt to fix Docker build failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4876\"\u003e#4876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0f376e0c35bcb29f87ce18eace30333a3e105841\"\u003e\u003ccode\u003e0f376e0\u003c/code\u003e\u003c/a\u003e Fix crashes when fmt directives are indented (\u003ca href=\"https://redirect.github.com/psf/black/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/a8bfcc1040fdfce2e02cdd85dc8bf4e7abe0462f\"\u003e\u003ccode\u003ea8bfcc1\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003efmt: skip\u003c/code\u003e skipping the line after instead of the line it's on (\u003ca href=\"https://redirect.github.com/psf/black/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...25.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.6 to 7.13.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.1 — 2025-12-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: the JSON report now includes a \u003ccode\u003e\u0026quot;start_line\u0026quot;\u003c/code\u003e key for function and\nclass regions, indicating the first line of the region in the source. Closes\n\u003ccode\u003eissue 2110\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded: The \u003ccode\u003edebug data\u003c/code\u003e command now takes file names as arguments on the\ncommand line, so you can inspect specific data files without needing to set\nthe \u003ccode\u003eCOVERAGE_FILE\u003c/code\u003e environment variable.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the JSON report used to report module docstrings as executed lines,\nwhich no other report did, as described in \u003ccode\u003eissue 2105\u003c/code\u003e_. This is now fixed,\nthanks to Jianrong Zhao.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: coverage.py uses a more disciplined approach to detecting where\nthird-party code is installed, and avoids measuring it. This shouldn't change\nany behavior. If you find that it does, please get in touch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: data files that will be combined now record their hash as part\nof the file name. This lets us skip duplicate data more quickly, speeding the\ncombining step.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs: added a section explaining more about what is considered a missing\nbranch and how it is reported: :ref:\u003ccode\u003ebranch_explain\u003c/code\u003e, as requested in \u003ccode\u003eissue 1597\u003c/code\u003e\u003cem\u003e. Thanks to \u003ccode\u003eAyisha Mohammed \u0026lt;pull 2092_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTests: the test suite misunderstood what core was being tested if\n\u003ccode\u003eCOVERAGE_CORE\u003c/code\u003e wasn't set on 3.14+. This is now fixed, closing \u003ccode\u003eissue 2109\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1597: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/1597\"\u003ecoveragepy/coveragepy#1597\u003c/a\u003e\n.. _pull 2092: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2092\"\u003ecoveragepy/coveragepy#2092\u003c/a\u003e\n.. _issue 2105: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2105\"\u003ecoveragepy/coveragepy#2105\u003c/a\u003e\n.. _issue 2109: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2109\"\u003ecoveragepy/coveragepy#2109\u003c/a\u003e\n.. _issue 2110: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2110\"\u003ecoveragepy/coveragepy#2110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.0 — 2025-12-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature: coverage.py now supports :file:\u003ccode\u003e.coveragerc.toml\u003c/code\u003e configuration\nfiles. These files use TOML syntax and take priority over\n:file:\u003ccode\u003epyproject.toml\u003c/code\u003e but lower priority than :file:\u003ccode\u003e.coveragerc\u003c/code\u003e files.\nCloses \u003ccode\u003eissue 1643\u003c/code\u003e_ thanks to \u003ccode\u003eOlena Yefymenko \u0026lt;pull 1952_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: we now include a permanent .pth file which is installed with the code,\nfixing \u003ccode\u003eissue 2084\u003c/code\u003e_.  In 7.12.1b1 this was done incorrectly: it didn't work\nwhen using the source wheel (\u003ccode\u003epy3-none-any\u003c/code\u003e).  This is now fixed. Thanks,\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a6afdc36332d797fb4f4262fc9ff2b2da5bb99c8\"\u003e\u003ccode\u003ea6afdc3\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a497081b6759957a1c52957fdbb34848e0d46276\"\u003e\u003ccode\u003ea497081\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e9920336e5118a7a7002b1eb606400cd3be640b2\"\u003e\u003ccode\u003ee992033\u003c/code\u003e\u003c/a\u003e docs: polish up CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/18bba6e60958d5c825a93882b8997f2cfc6ecfe3\"\u003e\u003ccode\u003e18bba6e\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 4 updates (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2111\"\u003e#2111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/80fb80826f3bd8953018d4a4a134a7fc42643784\"\u003e\u003ccode\u003e80fb808\u003c/code\u003e\u003c/a\u003e refactor: (?x:...) lets us use re.VERBOSE even when combining later\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/cc272bdc050308328e3ee64800b5e298468260c8\"\u003e\u003ccode\u003ecc272bd\u003c/code\u003e\u003c/a\u003e docs: leave a comment so we'll find this when 3.12 is the minimum\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/70d007d160d40b40de1bae89ad2856c2191c1c94\"\u003e\u003ccode\u003e70d007d\u003c/code\u003e\u003c/a\u003e types: be explicit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a2c1940fd2eae103c2366859d75cb7de195a0439\"\u003e\u003ccode\u003ea2c1940\u003c/code\u003e\u003c/a\u003e types: fully import modules that will be patched\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/57b975d3b8e069364525b2e8d5a88b7fbc0e8b93\"\u003e\u003ccode\u003e57b975d\u003c/code\u003e\u003c/a\u003e types: explicit Protocol inheritance permits changing parameter names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/63ec12d7c87748e7a03ea2eb6240edeaffc7ccde\"\u003e\u003ccode\u003e63ec12d\u003c/code\u003e\u003c/a\u003e types: clarify that morfs arguments can be a single morf\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.10.6...7.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.1.1 to 1.2.1\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.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport reading .env 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/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI to use trusted publishing on PyPI\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/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\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.0...v1.2.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: upgrade to use ruff 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/567\"\u003etheskumar/python-dotenv#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.exit() instead of exit() 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/568\"\u003etheskumar/python-dotenv#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:  add \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e flag to disable load_dotenv (fixes \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/510\"\u003e#510\u003c/a\u003e) 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/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python@3.14: Github CI \u0026amp; tox.ini 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/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eocs: clarify what load_dotenv() does in README by \u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory 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/theskumar/python-dotenv/pull/577\"\u003etheskumar/python-dotenv#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove project metadata and config to pyproject.toml 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/pull/583\"\u003etheskumar/python-dotenv#583\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/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\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.1.1...v1.2.0\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/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.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/pull/563\"\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\u003c/blockquote\u003e\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/eaf2a9129ccec6febda0f741eb3bb852c3f947bd\"\u003e\u003ccode\u003eeaf2a91\u003c/code\u003e\u003c/a\u003e Do not remove .coverage file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8716196891532eeb67d24a513e8d975437f5e8b7\"\u003e\u003ccode\u003e8716196\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.0 → 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/b87807fcad6e74332c3c63a75c92ce5814fa7a55\"\u003e\u003ccode\u003eb87807f\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/3af77d3029eb717aeec0a3c25f751b6a614a6d3c\"\u003e\u003ccode\u003e3af77d3\u003c/code\u003e\u003c/a\u003e Support reading .env from FIFOs (Unix) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/467ee22fccb2fb7ccda71a0d9e37c6ea3cb8d993\"\u003e\u003ccode\u003e467ee22\u003c/code\u003e\u003c/a\u003e Fix test failures after moving config to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/76999e741d87e958ebd74e3ae9834c0514e77a59\"\u003e\u003ccode\u003e76999e7\u003c/code\u003e\u003c/a\u003e Move more config pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/222ce2cc58ebc82ba78da8781269267b9f585932\"\u003e\u003ccode\u003e222ce2c\u003c/code\u003e\u003c/a\u003e Update to use trusted publisher on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ed4f79d202eba582b44bdf1f5deb726dd68783d\"\u003e\u003ccode\u003e8ed4f79\u003c/code\u003e\u003c/a\u003e Update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/5bf882241c607445bf02cf5b241535d62e2b99c1\"\u003e\u003ccode\u003e5bf8822\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.1 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1fe11cc737ee4399e9c51d1b69b0dd858f6b4669\"\u003e\u003ccode\u003e1fe11cc\u003c/code\u003e\u003c/a\u003e upadate changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geopandas` from 1.1.1 to 1.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geopandas/geopandas/releases\"\u003egeopandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue that caused an error in \u003ccode\u003eGeoDataFrame.from_features\u003c/code\u003e when there is no \u003ccode\u003eproperties\u003c/code\u003e field (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3599\"\u003e#3599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_file\u003c/code\u003e and \u003ccode\u003eto_file\u003c/code\u003e errors (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3682\"\u003e#3682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_parquet\u003c/code\u003e with \u003ccode\u003eto_pandas_kwargs\u003c/code\u003e for complex (list/struct) arrow types (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3640\"\u003e#3640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evalue_counts\u003c/code\u003e on GeoSeries now preserves CRS in index (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3669\"\u003e#3669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix f-string placeholders appearing in error messages when \u003ccode\u003epyogrio\u003c/code\u003e cannot be imported (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3682\"\u003e#3682\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_parquet\u003c/code\u003e with \u003ccode\u003eto_pandas_kwargs\u003c/code\u003e for complex (list/struct) arrow types (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3640\"\u003e#3640\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.to_json\u003c/code\u003e now provides a clearer error message when called on a GeoDataFrame without an active geometry\ncolumn (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3648\"\u003e#3648\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eCalling \u003ccode\u003edel gdf[\u0026quot;geometry\u0026quot;]\u003c/code\u003e now will downcast to a \u003ccode\u003epd.DataFrame\u003c/code\u003e if there are no geometry columns left\nin the dataframe (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3648\"\u003e#3648\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix SQL injection in \u003ccode\u003eto_postgis\u003c/code\u003e via geometry column name (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3681\"\u003e#3681\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geopandas/geopandas/compare/v1.1.1...v1.1.2\"\u003ehttps://github.com/geopandas/geopandas/compare/v1.1.1...v1.1.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/geopandas/geopandas/blob/main/CHANGELOG.md\"\u003egeopandas's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.1.2 (December 22, 2025)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue that caused an error in \u003ccode\u003eGeoDataFrame.from_features\u003c/code\u003e when there is no \u003ccode\u003eproperties\u003c/code\u003e field (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3599\"\u003e#3599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_file\u003c/code\u003e and \u003ccode\u003eto_file\u003c/code\u003e errors (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3682\"\u003e#3682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_parquet\u003c/code\u003e with \u003ccode\u003eto_pandas_kwargs\u003c/code\u003e for complex (list/struct) arrow types (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3640\"\u003e#3640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evalue_counts\u003c/code\u003e on GeoSeries now preserves CRS in index (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3669\"\u003e#3669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix f-string placeholders appearing in error messages when \u003ccode\u003epyogrio\u003c/code\u003e cannot be imported (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3682\"\u003e#3682\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_parquet\u003c/code\u003e with \u003ccode\u003eto_pandas_kwargs\u003c/code\u003e for complex (list/struct) arrow types (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3640\"\u003e#3640\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.to_json\u003c/code\u003e now provides a clearer error message when called on a GeoDataFrame without an active geometry\ncolumn (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3648\"\u003e#3648\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eCalling \u003ccode\u003edel gdf[\u0026quot;geometry\u0026quot;]\u003c/code\u003e now will downcast to a \u003ccode\u003epd.DataFrame\u003c/code\u003e if there are no geometry columns left\nin the dataframe (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3648\"\u003e#3648\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix SQL injection in \u003ccode\u003eto_postgis\u003c/code\u003e via geometry column name (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3681\"\u003e#3681\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/geopandas/geopandas/commit/81214bf9f3eaba9f5fdcfd141ae8d16fa17fd860\"\u003e\u003ccode\u003e81214bf\u003c/code\u003e\u003c/a\u003e RLS: backport fixes for 1.1.2 (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3693\"\u003e#3693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/62dd4a2469bb6236b83fb91466a8183321da04da\"\u003e\u003ccode\u003e62dd4a2\u003c/code\u003e\u003c/a\u003e COMPAT: pandas 3 refactor breaks \u003cstrong\u003efinalize\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3611\"\u003e#3611\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/geopandas/geopandas/compare/v1.1.1...v1.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplejson` from 3.20.1 to 3.20.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplejson/simplejson/releases\"\u003esimplejson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.20.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a test for the min and max floats by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/337\"\u003esimplejson/simplejson#337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable speedups on GraalPy same as on PyPy by \u003ca href=\"https://github.com/timfel\"\u003e\u003ccode\u003e@​timfel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/339\"\u003esimplejson/simplejson#339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate changelog and version for v3.20.2 by \u003ca href=\"https://github.com/etrepum\"\u003e\u003ccode\u003e@​etrepum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/340\"\u003esimplejson/simplejson#340\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/timfel\"\u003e\u003ccode\u003e@​timfel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/339\"\u003esimplejson/simplejson#339\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/simplejson/simplejson/compare/v3.20.1...v3.20.2\"\u003ehttps://github.com/simplejson/simplejson/compare/v3.20.1...v3.20.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/simplejson/simplejson/blob/master/CHANGES.txt\"\u003esimplejson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 3.20.2 released 2025-09-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDisable speedups on GraalPy smae as on PyPy\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/339\"\u003esimplejson/simplejson#339\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 3.20.1 released 2025-02-14\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDo not memoize keys before they are coerced to string\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/329\"\u003esimplejson/simplejson#329\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 3.19.3 released 2024-08-14\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated test \u0026amp; build matrix to include Python 3.13.\nDropped wheel support for Python 2.7 on macOS.\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/326\"\u003esimplejson/simplejson#326\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 3.19.2 released 2023-10-05\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated test \u0026amp; build matrix to include Python 3.12 and use\nGitHub Actions as a Trusted Publisher (OIDC)\n\u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/317\"\u003esimplejson/simplejson#317\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 3.19.1 released 2023-04-06\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThis release contains security hardening measures based on recommendations\nby a security audit sponsored by OSTIF and conducted by X41 D-Sec GmbH.\nSeveral of these measures include changing defaults to be more strict,\nby default simplejson will now only consume and produce compliant JSON,\nbut the flags still exist for any backwards compatibility needs.\nNo high priority issues were discovered, the reference count\nleak is thought to be unreachable since the digits of the float are\nchecked before PyOS_string_to_double is called.\nA link to the public version of this report will be included in a\nfuture release of simplejson. The following fixes were implemented in\none PR: \u003ca href=\"https://redirect.github.com/simplejson/simplejson/pull/313\"\u003esimplejson/simplejson#313\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix invalid handling of unicode escape sequences in the pure Python\nimplementation of the decoder (SJ-PT-23-01)\u003c/li\u003e\n\u003cli\u003eFix missing reference count decrease if PyOS_string_to_double raises\nan exception in Python 2.x; was probably unreachable (SJ-PT-23-02)\u003c/li\u003e\n\u003cli\u003eBackport the integer string length limitation from Python 3.11 to\nlimit quadratic number parsing (SJ-PT-23-03)\u003c/li\u003e\n\u003cli\u003eFix inconsistencies with error messages between the C and Python\nimplementations (SJ-PT-23-100)\u003c/li\u003e\n\u003cli\u003eRemove unused unichr import from encoder (SJ-PT-23-101)\u003c/li\u003e\n\u003cli\u003eRemove unused namedtuple_as_object and tuple_as_array arguments from\nsimplejson.load (SJ-PT-23-102)\u003c/li\u003e\n\u003cli\u003eRemove vestigial _one_shot code from iterencode (SJ-PT-23-103)\u003c/li\u003e\n\u003cli\u003eChange default of allow_nan from True to False and add allow_nan\nto decoder (SJ-PT-23-107)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/10e5aaffd4823faf5dedcea8bc43ce2c82c5ca4c\"\u003e\u003ccode\u003e10e5aaf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/340\"\u003e#340\u003c/a\u003e from simplejson/changes-v3.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/39ba9df4cbbb3845ee0c778ba646a94777ccf7e5\"\u003e\u003ccode\u003e39ba9df\u003c/code\u003e\u003c/a\u003e Update changelog and version for v3.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/5f9f96fe83fb33d371d35d99ae028a8e7c0f574f\"\u003e\u003ccode\u003e5f9f96f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/339\"\u003e#339\u003c/a\u003e from timfel/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/feb07a3f18a0c5672af154fbc8bb4e39a638242d\"\u003e\u003ccode\u003efeb07a3\u003c/code\u003e\u003c/a\u003e Test pure Python code, also on PyPy and GraalPy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/ae69b83218dd1e250b3e2158f924ab6b7b9ea75d\"\u003e\u003ccode\u003eae69b83\u003c/code\u003e\u003c/a\u003e Disable speedups on GraalPy same as on PyPy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/fd905ba3d7fe7bc8acc6f797f17145234cd65df9\"\u003e\u003ccode\u003efd905ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/simplejson/simplejson/issues/337\"\u003e#337\u003c/a\u003e from simplejson/float-range\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplejson/simplejson/commit/92c0230c6038a1a7b4736c7d63c28b44eb76f256\"\u003e\u003ccode\u003e92c0230\u003c/code\u003e\u003c/a\u003e Add a test for the min and max floats\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/simplejson/simplejson/compare/v3.20.1...v3.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geoalchemy2` from 0.18.0 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect by \u003ca href=\"https://github.com/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/570\"\u003egeoalchemy/geoalchemy2#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string by \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/574\"\u003egeoalchemy/geoalchemy2#574\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/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.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/geoalchemy/geoalchemy2/blob/master/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string - \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\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/geoalchemy/geoalchemy2/commit/0c311122e5228a885e262d8f79b037cb74c0949b\"\u003e\u003ccode\u003e0c31112\u003c/code\u003e\u003c/a\u003e Release: 0.18.1 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/75f87fac699ed31579ef93dffc59cc25bda241a8\"\u003e\u003ccode\u003e75f87fa\u003c/code\u003e\u003c/a\u003e Fix: Allow scientific notation within WKT string (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8653df3a1b0236556f1c39c916f0fb717475a6d1\"\u003e\u003ccode\u003e8653df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/3d6099504023afda68137f0ac2d041986159dac9\"\u003e\u003ccode\u003e3d60995\u003c/code\u003e\u003c/a\u003e Fix (mysql): Fix failing test for MySQL dialect (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `clickhouse-connect` from 0.8.18 to 0.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/releases\"\u003eclickhouse-connect's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded SQLAlchemy core API support for \u003ccode\u003eARRAY JOIN\u003c/code\u003e and \u003ccode\u003eFINAL\u003c/code\u003e modifier. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/579\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python 3.14 support 🎉  (non-free-threaded build only; free-threaded builds are not yet supported). Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/574\"\u003e#574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eutc_tz_aware\u003c/code\u003e parameter to client and query methods to opt in to returning timezone-aware UTC objects for \u003ccode\u003eDateTime\u003c/code\u003e/\u003ccode\u003eDateTime64\u003c/code\u003e columns. Default behavior remains the same and returns tz naive objects for backward compatibility.\n\u003cul\u003e\n\u003cli\u003eNote: this parameter will likely be removed and only return tz-aware dts in some future release. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eexecutor\u003c/code\u003e parameter to \u003ccode\u003eAsyncClient\u003c/code\u003e constructor to allow passing a custom executor for async operations. This allows users to control the concurrency and thread pool used by the async client.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed DST fallback bug in \u003ccode\u003eDateTime\u003c/code\u003e and \u003ccode\u003eDateTime64\u003c/code\u003e types caused by passing potentially ambiguous times to \u003ccode\u003epd.DateTimeIndex\u003c/code\u003e constructor. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/585\"\u003e#585\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue with JSON key dot escaping. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/571\"\u003e#571\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/prokofyevDmitry\"\u003e\u003ccode\u003e@​prokofyevDmitry\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/569\"\u003eClickHouse/clickhouse-connect#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wiese-m\"\u003e\u003ccode\u003e@​wiese-m\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/583\"\u003eClickHouse/clickhouse-connect#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/meirdev\"\u003e\u003ccode\u003e@​meirdev\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/578\"\u003eClickHouse/clickhouse-connect#578\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/compare/v0.9.2...v0.10.0\"\u003ehttps://github.com/ClickHouse/clickhouse-connect/compare/v0.9.2...v0.10.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.9.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003epython_requires\u003c/code\u003e to drop Python 3.8 and advertise support for 3.9–3.13\u003c/li\u003e\n\u003cli\u003eAllow passing \u003ccode\u003erole\u003c/code\u003e as a field in the \u003ccode\u003esettings\u003c/code\u003e keyword argument to set a role for a specific query\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/svix-jbrown\"\u003e\u003ccode\u003e@​svix-jbrown\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/pull/550\"\u003eClickHouse/clickhouse-connect#550\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/compare/v0.9.1...v0.9.2\"\u003ehttps://github.com/ClickHouse/clickhouse-connect/compare/v0.9.1...v0.9.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.9.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed typing issue that required numpy to be installed during clickhouse_connect import\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ClickHouse/clickhouse-connect/compare/v0.9.0...v0.9.1\"\u003ehttps://github.com/ClickHouse/clickhouse-connect/compare/v0.9.0...v0.9.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.9.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eWARNING: BREAKING CHANGE\u003c/strong\u003e — Removed support for sqlalchemy 1.3 which reached its EOL in 2021. The minimum required version is now 1.4.40.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWARNING: BREAKING CHANGE\u003c/strong\u003e — Behavior for reading from IPv6 columns has changed:\n\u003cul\u003e\n\u003cli\u003eWith \u003ccode\u003eread_format='native'\u003c/code\u003e, the client will \u003cstrong\u003ealways\u003c/strong\u003e return \u003ca href=\"https://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address\"\u003e\u003ccode\u003eipaddress.IPv6Address\u003c/code\u003e\u003c/a\u003e objects, even for IPv4-mapped addresses (e.g., \u003ccode\u003e\u0026quot;::ffff:192.168.1.1\u0026quot;\u003c/code\u003e). Previously, the client returned \u003ca href=\"https://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address\"\u003e\u003ccode\u003eipaddress.IPv4Address\u003c/code\u003e\u003c/a\u003e objects for these cases. This change enforces type consistency and avoids surprising implicit conversions. If your application requires IPv4 objects, you can explicitly convert using the \u003ca href=\"https://docs.python.org/3/library/ipaddress.html#ipaddress.IPv6Address.ipv4_mapped\"\u003e\u003ccode\u003eipv4_mapped\u003c/code\u003e\u003c/a\u003e attribute of \u003ccode\u003eIPv6Address\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eWith \u003ccode\u003eread_format='string'\u003c/code\u003e, the client will \u003cstrong\u003ealways\u003c/strong\u003e return IPv6 string representations, e.g., \u003ccode\u003e\u0026quot;::ffff:192.168.1.1\u0026quot;\u003c/code\u003e instead of \u003ccode\u003e\u0026quot;192.168.1.1\u0026quot;\u003c/code\u003e, for the same reasons as above. If you require only the IPv4 string, you can parse or truncate this in your application code.\u003c/li\u003e\n\u003cli\u003eCloses \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/493\"\u003e#493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMajor Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for SQLAlchemy 2.x. The minimum required version is 1.4.40. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/263\"\u003e#263\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Polars support for Arrow-based query and insert methods (\u003ccode\u003equery_df_arrow\u003c/code\u003e, \u003ccode\u003equery_df_arrow_stream\u003c/code\u003e, \u003ccode\u003einsert_df_arrow\u003c/code\u003e). This initial implementation provides basic dataframe conversion through the Arrow format, similar to how we support the pyarrow-backed pandas dataframes. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/111\"\u003e#111\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/542\"\u003e#542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded support for querying/inserting pyarrow-backed DataFrames:\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- 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/ClickHouse/clickhouse-connect/blob/main/CHANGELOG.md\"\u003eclickhouse-connect's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.10.0, 2025-11-14\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed DST fallback bug in DateTime and DateTime64 types caused by passing potentially ambiguous times to pd.DateTimeIndex constructor. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/585\"\u003e#585\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed issue with JSON key dot escaping. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/571\"\u003e#571\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded SQLAlchemy core API support for \u003ccode\u003eARRAY JOIN\u003c/code\u003e and \u003ccode\u003eFINAL\u003c/code\u003e modifier. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/579\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python 3.14 support (non-free-threaded build only; free-threaded builds are not yet supported). Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/574\"\u003e#574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eutc_tz_aware\u003c/code\u003e parameter to client and query methods to opt in to returning timezone-aware UTC objects for DateTime/DateTime64 columns. Default behavior remains the same and returns tz naive objects for backward compatibility. Note: this parameter will likely be removed and only return tz-aware dts in some future release. Closes \u003ca href=\"https://redirect.github.com/ClickHouse/clickhouse-connect/issues/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eexecutor\u003c/code\u003e parameter to \u003ccode\u003eAsyncC...\n\n_Description has been truncated_","html_url":"https://github.com/MTES-MCT/fisheries-and-environment-data-warehouse/pull/129","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MTES-MCT%2Ffisheries-and-environment-data-warehouse/issues/129","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/129/packages"}},{"old_version":"0.17.1","new_version":"0.18.1","update_type":"minor","path":null,"pr_created_at":"2025-12-29T18:38:50.000Z","version_change":"0.17.1 → 0.18.1","issue":{"uuid":"3768072730","node_id":"PR_kwDOHTdvBs663EKr","number":1397,"state":"open","title":"deps(ibis): bump the all group across 1 directory with 32 updates","user":"dependabot[bot]","labels":["ibis","dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-29T18:38:50.000Z","updated_at":"2025-12-29T18:39:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(ibis): bump","group_name":"all","update_count":32,"packages":[{"name":"fastapi","old_version":"0.120.1","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.10.6","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"google-auth","old_version":"2.38.0","new_version":"2.45.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"orjson","old_version":"3.10.16","new_version":"3.11.5","repository_url":"https://github.com/ijl/orjson"},{"name":"geopandas","old_version":"1.1.1","new_version":"1.1.2","repository_url":"https://github.com/geopandas/geopandas"},{"name":"geoalchemy2","old_version":"0.17.1","new_version":"0.18.1","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"gql","old_version":"3.5.2","new_version":"4.0.0","repository_url":"https://github.com/graphql-python/gql"},{"name":"anyio","old_version":"4.10.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"duckdb","old_version":"1.3.2","new_version":"1.4.3","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"oracledb","old_version":"3.3.0","new_version":"3.4.1","repository_url":"https://github.com/oracle/python-oracledb"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"uvicorn-worker","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/Kludex/uvicorn-worker"},{"name":"redshift-connector","old_version":"2.1.7","new_version":"2.1.10","repository_url":"https://github.com/aws/amazon-redshift-python-driver"},{"name":"datafusion","old_version":"47.0.0","new_version":"50.1.0","repository_url":"https://github.com/apache/datafusion-python"},{"name":"starlette","old_version":"0.49.1","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"databricks-sql-connector","old_version":"4.1.4","new_version":"4.2.3","repository_url":"https://github.com/databricks/databricks-sql-python"},{"name":"databricks-sdk","old_version":"0.73.0","new_version":"0.76.0","repository_url":"https://github.com/databricks/databricks-sdk-py"},{"name":"jupyterlab","old_version":"4.4.9","new_version":"4.5.1","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"ipykernel","old_version":"6.30.1","new_version":"7.1.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ipywidgets","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"matplotlib","old_version":"3.10.6","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"plotly","old_version":"6.3.0","new_version":"6.5.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"testcontainers","old_version":"4.9.2","new_version":"4.13.3","repository_url":"https://github.com/testcontainers/testcontainers-python"},{"name":"sqlalchemy","old_version":"2.0.39","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.11.2","new_version":"0.14.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"trino","old_version":"0.335.0","new_version":"0.336.0","repository_url":"https://github.com/trinodb/trino-python-client"},{"name":"psycopg2","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"clickhouse-connect","old_version":"0.8.15","new_version":"0.10.0","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"polars","old_version":"1.33.1","new_version":"1.36.1","repository_url":"https://github.com/pola-rs/polars"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all group with 32 updates in the /ibis-server directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.120.1` | `0.128.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.10.6` | `2.12.5` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.38.0` | `2.45.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.1` |\n| [orjson](https://github.com/ijl/orjson) | `3.10.16` | `3.11.5` |\n| [geopandas](https://github.com/geopandas/geopandas) | `1.1.1` | `1.1.2` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.17.1` | `0.18.1` |\n| [gql](https://github.com/graphql-python/gql) | `3.5.2` | `4.0.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.12.0` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.3.2` | `1.4.3` |\n| [oracledb](https://github.com/oracle/python-oracledb) | `3.3.0` | `3.4.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.40.0` |\n| [uvicorn-worker](https://github.com/Kludex/uvicorn-worker) | `0.3.0` | `0.4.0` |\n| [redshift-connector](https://github.com/aws/amazon-redshift-python-driver) | `2.1.7` | `2.1.10` |\n| [datafusion](https://github.com/apache/datafusion-python) | `47.0.0` | `50.1.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.1` | `0.50.0` |\n| [databricks-sql-connector](https://github.com/databricks/databricks-sql-python) | `4.1.4` | `4.2.3` |\n| [databricks-sdk](https://github.com/databricks/databricks-sdk-py) | `0.73.0` | `0.76.0` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.4.9` | `4.5.1` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.30.1` | `7.1.0` |\n| [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) | `8.1.7` | `8.1.8` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.6` | `3.10.8` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.3.0` | `6.5.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [testcontainers](https://github.com/testcontainers/testcontainers-python) | `4.9.2` | `4.13.3` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.39` | `2.0.45` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.2` | `0.14.10` |\n| [trino](https://github.com/trinodb/trino-python-client) | `0.335.0` | `0.336.0` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.8.15` | `0.10.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.33.1` | `1.36.1` |\n\n\nUpdates `fastapi` from 0.120.1 to 0.128.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\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✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\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 missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\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👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\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👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\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 scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\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 LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\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⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.120.1...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.10.6 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.10.6...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.38.0 to 2.45.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth 2.45.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e\"\u003eb32c934e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.44.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-12)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95\"\u003e0387bb95\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e7\"\u003e0f7097e7\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5\"\u003e39c381a5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd shlex to correctly parse executable commands with spaces (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1855\"\u003e#1855\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/cf6fc3cc\"\u003ecf6fc3cc\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986\"\u003ed5638986\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd temporary patch to workload cert logic to accomodate Cloud Run mis-configuration (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1880\"\u003e#1880\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907\"\u003e78de7907\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDelegate workload cert and key default lookup to helper function (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1877\"\u003e#1877\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7e\"\u003eb0993c7e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse public refresh method for source credentials in ImpersonatedCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1884\"\u003e#1884\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f\"\u003ee0c3296f\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.43.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.42.1...v2.43.0\"\u003e2.43.0\u003c/a\u003e (2025-11-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd public wrapper for _mtls_helper.check_use_client_cert which enables mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE is not set, when the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1859\"\u003e#1859\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/1535eccb\"\u003e1535eccb\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnable mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE  is not set, if the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1848\"\u003e#1848\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/395e405b\"\u003e395e405b\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eonboard \u003ccode\u003egoogle-auth\u003c/code\u003e to librarian (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1838\"\u003e#1838\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c503eaa5\"\u003ec503eaa5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.42.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.42.0...v2.42.1\"\u003e2.42.1\u003c/a\u003e (2025-10-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCatch ValueError for json.loads() (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1842\"\u003e#1842\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b074cad460589633adfc6744c01726ae86f2aa2b\"\u003eb074cad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.42.0\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/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.44.0...v2.45.0\"\u003e2.45.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Agent Identity bound token support and handling certificate mismatches with retries (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1890\"\u003e#1890\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e6b0d09b94c467cd432a0a635e8b05f5c\"\u003eb32c934e6b0d09b94c467cd432a0a635e8b05f5c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e78f247665b6ef0287d482033f7be2ed6d\"\u003e0f7097e78f247665b6ef0287d482033f7be2ed6d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5f6881b590025f36d333d12eff8dc60fc\"\u003e39c381a5f6881b590025f36d333d12eff8dc60fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95713653d47e846cad3a010eb55ef2db4c\"\u003e0387bb95713653d47e846cad3a010eb55ef2db4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986ca03ee95bfffa9ad821124ed7e903e63\"\u003ed5638986ca03ee95bfffa9ad821124ed7e903e63\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd shlex to correctly parse executable commands with spaces (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1855\"\u003e#1855\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/cf6fc3cced78bc1362a7fe596c32ebc9ce03c26b\"\u003ecf6fc3cced78bc1362a7fe596c32ebc9ce03c26b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse public refresh method for source credentials in ImpersonatedCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1884\"\u003e#1884\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f471747258f6d98d2d9bfde636358ecde\"\u003ee0c3296f471747258f6d98d2d9bfde636358ecde\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd temporary patch to workload cert logic to accomodate Cloud Run mis-configuration (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1880\"\u003e#1880\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907b8bdb7b5510e3c6fa8a3f3721e2436d7\"\u003e78de7907b8bdb7b5510e3c6fa8a3f3721e2436d7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDelegate workload cert and key default lookup to helper function (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1877\"\u003e#1877\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7edaba505d0fb0628af28760c43034c959\"\u003eb0993c7edaba505d0fb0628af28760c43034c959\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-v2.42.1...google-auth-v2.43.0\"\u003e2.43.0\u003c/a\u003e (2025-11-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd public wrapper for _mtls_helper.check_use_client_cert which enables mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE is not set, when the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1859\"\u003e#1859\u003c/a\u003e) Add public wrapper for check_use_client_cert which enables mTLS if\nGOOGLE_API_USE_CLIENT_CERTIFICATE is not set, when the MWID/X.509 cert\nsources detected. Also, fix check_use_client_cert to return boolean\nvalue.\nChange \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1848\"\u003e#1848\u003c/a\u003e added the check_use_client_cert method that helps know if\nclient cert should be used for mTLS connection. However, that was in a\nprivate class, thus, created a public wrapper of the same function so\nthat it can be used by python Client Libraries. Also, updated\ncheck_use_client_cert to return a boolean value instead of existing\nstring value for better readability and future scope.\n--------- (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1535eccbff0ad8f3fd6a9775316ac8b77dca66ba\"\u003e1535eccbff0ad8f3fd6a9775316ac8b77dca66ba\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnable mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE  is not set, if the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1848\"\u003e#1848\u003c/a\u003e) The Python SDK will use a hybrid approach for mTLS enablement:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eIf the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable is set\n(either true or false), the SDK will respect that setting. This is\nnecessary for test scenarios and users who need to explicitly control\nmTLS behavior.\u003c/li\u003e\n\u003cli\u003eIf the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable is not\nset, the SDK will automatically enable mTLS only if it detects Managed\nWorkload Identity (MWID) or X.509 Workforce Identity Federation (WIF)\ncertificate sources. In other cases where the variable is not set, mTLS\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/08fabf776c02dc6a70472b3ddd9733d66d0053bf\"\u003e\u003ccode\u003e08fabf7\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251215T132028Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1891\"\u003e#1891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b32c934e6b0d09b94c467cd432a0a635e8b05f5c\"\u003e\u003ccode\u003eb32c934\u003c/code\u003e\u003c/a\u003e feat: Adding Agent Identity bound token support and handling certificate mism...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/262eb9e33d58ffeb536ecd083c22d9fb12c808e6\"\u003e\u003ccode\u003e262eb9e\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251212T161150Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1888\"\u003e#1888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e78f247665b6ef0287d482033f7be2ed6d\"\u003e\u003ccode\u003e0f7097e\u003c/code\u003e\u003c/a\u003e feat: support Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f471747258f6d98d2d9bfde636358ecde\"\u003e\u003ccode\u003ee0c3296\u003c/code\u003e\u003c/a\u003e fix(auth): Use public refresh method for source credentials in ImpersonatedCr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907b8bdb7b5510e3c6fa8a3f3721e2436d7\"\u003e\u003ccode\u003e78de790\u003c/code\u003e\u003c/a\u003e fix(auth): Add temporary patch to workload cert logic to accomodate Cloud Run...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3e8a56687fd050ff44a35cc8db0e95e996648173\"\u003e\u003ccode\u003e3e8a566\u003c/code\u003e\u003c/a\u003e chore(tests): allow expired secret in system tests (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1883\"\u003e#1883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7edaba505d0fb0628af28760c43034c959\"\u003e\u003ccode\u003eb0993c7\u003c/code\u003e\u003c/a\u003e fix(auth): Delegate workload cert and key default lookup to helper function (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2c374d36a61569b75d11c17fae124d591c52ddc6\"\u003e\u003ccode\u003e2c374d3\u003c/code\u003e\u003c/a\u003e chore: update secret (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5f6881b590025f36d333d12eff8dc60fc\"\u003e\u003ccode\u003e39c381a\u003c/code\u003e\u003c/a\u003e feat: add ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.38.0...v2.45.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.0.1 to 1.2.1\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.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport reading .env 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/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI to use trusted publishing on PyPI\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/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\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.0...v1.2.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: upgrade to use ruff 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/567\"\u003etheskumar/python-dotenv#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.exit() instead of exit() 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/568\"\u003etheskumar/python-dotenv#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:  add \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e flag to disable load_dotenv (fixes \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/510\"\u003e#510\u003c/a\u003e) 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/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python@3.14: Github CI \u0026amp; tox.ini 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/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eocs: clarify what load_dotenv() does in README by \u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory 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/theskumar/python-dotenv/pull/577\"\u003etheskumar/python-dotenv#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove project metadata and config to pyproject.toml 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/pull/583\"\u003etheskumar/python-dotenv#583\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/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\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.1.1...v1.2.0\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv 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/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a security policy 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/512\"\u003etheskumar/python-dotenv#512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep GitHub Actions up to date with GitHub's Dependabot by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/506\"\u003etheskumar/python-dotenv#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: fix multiline string in test.yml \u0026amp; use fail-fast strategy by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/514\"\u003etheskumar/python-dotenv#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance dotenv run: Switch to execvpe for better resource management and signal handling by \u003ca href=\"https://github.com/eekstunt\"\u003e\u003ccode\u003e@​eekstunt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/523\"\u003etheskumar/python-dotenv#523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add py3.13 to test.yml by \u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/527\"\u003etheskumar/python-dotenv#527\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 trove classifier by \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/535\"\u003etheskumar/python-dotenv#535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/529\"\u003etheskumar/python-dotenv#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.13 and drop 3.8 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/551\"\u003etheskumar/python-dotenv#551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update README.md by \u003ca href=\"https://github.com/chapeupreto\"\u003e\u003ccode\u003e@​chapeupreto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/516\"\u003etheskumar/python-dotenv#516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSome more s/Python-dotenv/python-dotenv/ 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/552\"\u003etheskumar/python-dotenv#552\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/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.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/pull/563\"\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/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.0] - 2025-03-25\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFeature\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.13\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003edotenv run\u003c/code\u003e, switch to \u003ccode\u003eexecvpe\u003c/code\u003e for better resource management and signal handling (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/523\"\u003e#523\u003c/a\u003e) by [\u003ca href=\"https://github.com/eekstunt\"\u003e\u003ccode\u003e@​eekstunt\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efind_dotenv\u003c/code\u003e and \u003ccode\u003eload_dotenv\u003c/code\u003e now correctly looks up at the current directory when running in debugger or pdb (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/553\"\u003e#553\u003c/a\u003e by [\u003ca href=\"https://github.com/randomseed42\"\u003e\u003ccode\u003e@​randomseed42\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMisc\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/eaf2a9129ccec6febda0f741eb3bb852c3f947bd\"\u003e\u003ccode\u003eeaf2a91\u003c/code\u003e\u003c/a\u003e Do not remove .coverage file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8716196891532eeb67d24a513e8d975437f5e8b7\"\u003e\u003ccode\u003e8716196\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.0 → 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/b87807fcad6e74332c3c63a75c92ce5814fa7a55\"\u003e\u003ccode\u003eb87807f\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/3af77d3029eb717aeec0a3c25f751b6a614a6d3c\"\u003e\u003ccode\u003e3af77d3\u003c/code\u003e\u003c/a\u003e Support reading .env from FIFOs (Unix) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/467ee22fccb2fb7ccda71a0d9e37c6ea3cb8d993\"\u003e\u003ccode\u003e467ee22\u003c/code\u003e\u003c/a\u003e Fix test failures after moving config to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/76999e741d87e958ebd74e3ae9834c0514e77a59\"\u003e\u003ccode\u003e76999e7\u003c/code\u003e\u003c/a\u003e Move more config pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/222ce2cc58ebc82ba78da8781269267b9f585932\"\u003e\u003ccode\u003e222ce2c\u003c/code\u003e\u003c/a\u003e Update to use trusted publisher on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ed4f79d202eba582b44bdf1f5deb726dd68783d\"\u003e\u003ccode\u003e8ed4f79\u003c/code\u003e\u003c/a\u003e Update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/5bf882241c607445bf02cf5b241535d62e2b99c1\"\u003e\u003ccode\u003e5bf8822\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.1 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1fe11cc737ee4399e9c51d1b69b0dd858f6b4669\"\u003e\u003ccode\u003e1fe11cc\u003c/code\u003e\u003c/a\u003e upadate changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.0.1...v1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `orjson` from 3.10.16 to 3.11.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ijl/orjson/releases\"\u003eorjson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.5\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow simple error message instead of traceback when attempting to\nbuild on unsupported Python versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.4\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eABI compatibility with CPython 3.15 alpha 1.\u003c/li\u003e\n\u003cli\u003ePublish PyPI wheels for 3.14 and manylinux i686, manylinux arm7,\nmanylinux ppc64le, manylinux s390x.\u003c/li\u003e\n\u003cli\u003eBuild now requires a C compiler.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix PyPI project metadata when using maturin 1.9.2 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix build using Rust 1.89 on amd64.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.85 or later instead of 1.82.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish PyPI wheels for CPython 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003estr\u003c/code\u003e on big-endian architectures.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse a deserialization buffer allocated per request instead of a shared buffer allocated on import.\u003c/li\u003e\n\u003cli\u003eABI compatibility with CPython 3.14 beta 4.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect escaping of the vertical tabulation character. This was\nintroduced in 3.10.17.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.17\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/ijl/orjson/blob/master/CHANGELOG.md\"\u003eorjson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.5 - 2025-12-06\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow simple error message instead of traceback when attempting to\nbuild on unsupported Python versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.4 - 2025-10-24\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eABI compatibility with CPython 3.15 alpha 1.\u003c/li\u003e\n\u003cli\u003ePublish PyPI wheels for 3.14 and manylinux i686, manylinux arm7,\nmanylinux ppc64le, manylinux s390x.\u003c/li\u003e\n\u003cli\u003eBuild now requires a C compiler.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.3 - 2025-08-26\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix PyPI project metadata when using maturin 1.9.2 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.2 - 2025-08-12\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix build using Rust 1.89 on amd64.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.85 or later instead of 1.82.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.1 - 2025-07-25\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish PyPI wheels for CPython 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003estr\u003c/code\u003e on big-endian architectures. This was introduced in 3.11.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.0 - 2025-07-15\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/fb3eb1f729c7e7b019f780af5695722c99c7c695\"\u003e\u003ccode\u003efb3eb1f\u003c/code\u003e\u003c/a\u003e 3.11.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/52688e02c51c845cde24a46cd1011a6010d10eb8\"\u003e\u003ccode\u003e52688e0\u003c/code\u003e\u003c/a\u003e Record contributors in headers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/dc083e87d5262e7dde3ba4b1d2a377b5b065a27c\"\u003e\u003ccode\u003edc083e8\u003c/code\u003e\u003c/a\u003e Further compatibility and build misc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/18f0186d47fbadd53c9db4e39a442d5b04225418\"\u003e\u003ccode\u003e18f0186\u003c/code\u003e\u003c/a\u003e Compatibility and build misc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/a4fdeb3aff125d501ec0dd0577f9b38b2b977b4f\"\u003e\u003ccode\u003ea4fdeb3\u003c/code\u003e\u003c/a\u003e 3.11.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/2e80d68afacafca8751e6a64ca05d0d4087dbd15\"\u003e\u003ccode\u003e2e80d68\u003c/code\u003e\u003c/a\u003e unlikely to cold_path, remove intrinsics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/27edea92f8da2fdfc3f1342474e2f1686f1edf55\"\u003e\u003ccode\u003e27edea9\u003c/code\u003e\u003c/a\u003e FFI through crate::ffi, partial non-CPython compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/416a8c9578da780d0d58b5e6b751793deafc610d\"\u003e\u003ccode\u003e416a8c9\u003c/code\u003e\u003c/a\u003e Unconditionally build yyjson\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/c8c1a17dca8436a2fee05ca060febd096e653d98\"\u003e\u003ccode\u003ec8c1a17\u003c/code\u003e\u003c/a\u003e edition 2024\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/af4179a1fa0aafffd0f867203b6c36e9a522f165\"\u003e\u003ccode\u003eaf4179a\u003c/code\u003e\u003c/a\u003e build maintenance, panic_immediate_abort break, test 3.15\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ijl/orjson/compare/3.10.16...3.11.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geopandas` from 1.1.1 to 1.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geopandas/geopandas/releases\"\u003egeopandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.1.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue that caused an error in \u003ccode\u003eGeoDataFrame.from_features\u003c/code\u003e when there is no \u003ccode\u003eproperties\u003c/code\u003e field (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3599\"\u003e#3599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_file\u003c/code\u003e and \u003ccode\u003eto_file\u003c/code\u003e errors (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3682\"\u003e#3682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_parquet\u003c/code\u003e with \u003ccode\u003eto_pandas_kwargs\u003c/code\u003e for complex (list/struct) arrow types (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3640\"\u003e#3640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evalue_counts\u003c/code\u003e on GeoSeries now preserves CRS in index (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3669\"\u003e#3669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix f-string placeholders appearing in error messages when \u003ccode\u003epyogrio\u003c/code\u003e cannot be imported (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3682\"\u003e#3682\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_parquet\u003c/code\u003e with \u003ccode\u003eto_pandas_kwargs\u003c/code\u003e for complex (list/struct) arrow types (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3640\"\u003e#3640\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.to_json\u003c/code\u003e now provides a clearer error message when called on a GeoDataFrame without an active geometry\ncolumn (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3648\"\u003e#3648\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eCalling \u003ccode\u003edel gdf[\u0026quot;geometry\u0026quot;]\u003c/code\u003e now will downcast to a \u003ccode\u003epd.DataFrame\u003c/code\u003e if there are no geometry columns left\nin the dataframe (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3648\"\u003e#3648\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix SQL injection in \u003ccode\u003eto_postgis\u003c/code\u003e via geometry column name (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3681\"\u003e#3681\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geopandas/geopandas/compare/v1.1.1...v1.1.2\"\u003ehttps://github.com/geopandas/geopandas/compare/v1.1.1...v1.1.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/geopandas/geopandas/blob/main/CHANGELOG.md\"\u003egeopandas's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.1.2 (December 22, 2025)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue that caused an error in \u003ccode\u003eGeoDataFrame.from_features\u003c/code\u003e when there is no \u003ccode\u003eproperties\u003c/code\u003e field (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3599\"\u003e#3599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_file\u003c/code\u003e and \u003ccode\u003eto_file\u003c/code\u003e errors (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3682\"\u003e#3682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_parquet\u003c/code\u003e with \u003ccode\u003eto_pandas_kwargs\u003c/code\u003e for complex (list/struct) arrow types (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3640\"\u003e#3640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003evalue_counts\u003c/code\u003e on GeoSeries now preserves CRS in index (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3669\"\u003e#3669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix f-string placeholders appearing in error messages when \u003ccode\u003epyogrio\u003c/code\u003e cannot be imported (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3682\"\u003e#3682\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eread_parquet\u003c/code\u003e with \u003ccode\u003eto_pandas_kwargs\u003c/code\u003e for complex (list/struct) arrow types (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3640\"\u003e#3640\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.to_json\u003c/code\u003e now provides a clearer error message when called on a GeoDataFrame without an active geometry\ncolumn (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3648\"\u003e#3648\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eCalling \u003ccode\u003edel gdf[\u0026quot;geometry\u0026quot;]\u003c/code\u003e now will downcast to a \u003ccode\u003epd.DataFrame\u003c/code\u003e if there are no geometry columns left\nin the dataframe (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3648\"\u003e#3648\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix SQL injection in \u003ccode\u003eto_postgis\u003c/code\u003e via geometry column name (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3681\"\u003e#3681\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/geopandas/geopandas/commit/81214bf9f3eaba9f5fdcfd141ae8d16fa17fd860\"\u003e\u003ccode\u003e81214bf\u003c/code\u003e\u003c/a\u003e RLS: backport fixes for 1.1.2 (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3693\"\u003e#3693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geopandas/geopandas/commit/62dd4a2469bb6236b83fb91466a8183321da04da\"\u003e\u003ccode\u003e62dd4a2\u003c/code\u003e\u003c/a\u003e COMPAT: pandas 3 refactor breaks \u003cstrong\u003efinalize\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3611\"\u003e#3611\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/geopandas/geopandas/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/geopandas/geopandas/compare/v1.1.1...v1.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geoalchemy2` from 0.17.1 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect by \u003ca href=\"https://github.com/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/570\"\u003egeoalchemy/geoalchemy2#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string by \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/574\"\u003egeoalchemy/geoalchemy2#574\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/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/538\"\u003egeoalchemy/geoalchemy2#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/540\"\u003egeoalchemy/geoalchemy2#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCompile literal binds by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/543\"\u003egeoalchemy/geoalchemy2#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/544\"\u003egeoalchemy/geoalchemy2#544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore (mariadb): Stop converting WKB to WKT by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/545\"\u003egeoalchemy/geoalchemy2#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker containers by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/546\"\u003egeoalchemy/geoalchemy2#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/547\"\u003egeoalchemy/geoalchemy2#547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/553\"\u003egeoalchemy/geoalchemy2#553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/554\"\u003egeoalchemy/geoalchemy2#554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Improve readbility of benchmark results by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/556\"\u003egeoalchemy/geoalchemy2#556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/555\"\u003egeoalchemy/geoalchemy2#555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/557\"\u003egeoalchemy/geoalchemy2#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Remove warning message from MySQL/MariaDB reflection by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/560\"\u003egeoalchemy/geoalchemy2#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/561\"\u003egeoalchemy/geoalchemy2#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: correct doc strings by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/564\"\u003egeoalchemy/geoalchemy2#564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/565\"\u003egeoalchemy/geoalchemy2#565\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/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.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/geoalchemy/geoalchemy2/blob/master/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string - \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Fix doc strings for cache enabled - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(papacodebear/master) Fix: Remove warning from MySQL/MariaDB reflection \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Improve readability of benchmark results \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/556\"\u003e#556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/553\"\u003e#553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker container \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf (mariadb): Stop converting WKB to WKT \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/544\"\u003e#544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Compile literal binds properly \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redi...\n\n_Description has been truncated_","html_url":"https://github.com/Canner/wren-engine/pull/1397","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Canner%2Fwren-engine/issues/1397","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1397/packages"}},{"old_version":"0.17.1","new_version":"0.18.1","update_type":"minor","path":null,"pr_created_at":"2025-12-15T18:44:22.000Z","version_change":"0.17.1 → 0.18.1","issue":{"uuid":"3731680920","node_id":"PR_kwDOHTdvBs64_Xbv","number":1388,"state":"open","title":"deps(ibis): bump the all group across 1 directory with 31 updates","user":"dependabot[bot]","labels":["ibis","dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-15T18:44:22.000Z","updated_at":"2025-12-15T18:44:36.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(ibis): bump","group_name":"all","update_count":31,"packages":[{"name":"fastapi","old_version":"0.120.1","new_version":"0.124.4","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.10.6","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"google-auth","old_version":"2.38.0","new_version":"2.44.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"python-dotenv","old_version":"1.0.1","new_version":"1.2.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"orjson","old_version":"3.10.16","new_version":"3.11.5","repository_url":"https://github.com/ijl/orjson"},{"name":"geoalchemy2","old_version":"0.17.1","new_version":"0.18.1","repository_url":"https://github.com/geoalchemy/geoalchemy2"},{"name":"gql","old_version":"3.5.2","new_version":"4.0.0","repository_url":"https://github.com/graphql-python/gql"},{"name":"anyio","old_version":"4.10.0","new_version":"4.12.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"duckdb","old_version":"1.3.2","new_version":"1.4.3","repository_url":"https://github.com/duckdb/duckdb-python"},{"name":"oracledb","old_version":"3.3.0","new_version":"3.4.1","repository_url":"https://github.com/oracle/python-oracledb"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.38.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"uvicorn-worker","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/Kludex/uvicorn-worker"},{"name":"redshift-connector","old_version":"2.1.7","new_version":"2.1.10","repository_url":"https://github.com/aws/amazon-redshift-python-driver"},{"name":"datafusion","old_version":"47.0.0","new_version":"50.1.0","repository_url":"https://github.com/apache/datafusion-python"},{"name":"starlette","old_version":"0.49.1","new_version":"0.50.0","repository_url":"https://github.com/Kludex/starlette"},{"name":"databricks-sql-connector","old_version":"4.1.4","new_version":"4.2.2","repository_url":"https://github.com/databricks/databricks-sql-python"},{"name":"databricks-sdk","old_version":"0.73.0","new_version":"0.74.0","repository_url":"https://github.com/databricks/databricks-sdk-py"},{"name":"jupyterlab","old_version":"4.4.9","new_version":"4.5.1","repository_url":"https://github.com/jupyterlab/jupyterlab"},{"name":"ipykernel","old_version":"6.30.1","new_version":"7.1.0","repository_url":"https://github.com/ipython/ipykernel"},{"name":"ipywidgets","old_version":"8.1.7","new_version":"8.1.8","repository_url":"https://github.com/jupyter-widgets/ipywidgets"},{"name":"matplotlib","old_version":"3.10.6","new_version":"3.10.8","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"plotly","old_version":"6.3.0","new_version":"6.5.0","repository_url":"https://github.com/plotly/plotly.py"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"testcontainers","old_version":"4.9.2","new_version":"4.13.3","repository_url":"https://github.com/testcontainers/testcontainers-python"},{"name":"sqlalchemy","old_version":"2.0.39","new_version":"2.0.45","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.11.2","new_version":"0.14.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"trino","old_version":"0.335.0","new_version":"0.336.0","repository_url":"https://github.com/trinodb/trino-python-client"},{"name":"psycopg2","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"clickhouse-connect","old_version":"0.8.15","new_version":"0.10.0","repository_url":"https://github.com/ClickHouse/clickhouse-connect"},{"name":"polars","old_version":"1.33.1","new_version":"1.36.1","repository_url":"https://github.com/pola-rs/polars"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all group with 31 updates in the /ibis-server directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.120.1` | `0.124.4` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.10.6` | `2.12.5` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.38.0` | `2.44.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.1` |\n| [orjson](https://github.com/ijl/orjson) | `3.10.16` | `3.11.5` |\n| [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) | `0.17.1` | `0.18.1` |\n| [gql](https://github.com/graphql-python/gql) | `3.5.2` | `4.0.0` |\n| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.12.0` |\n| [duckdb](https://github.com/duckdb/duckdb-python) | `1.3.2` | `1.4.3` |\n| [oracledb](https://github.com/oracle/python-oracledb) | `3.3.0` | `3.4.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.38.0` |\n| [uvicorn-worker](https://github.com/Kludex/uvicorn-worker) | `0.3.0` | `0.4.0` |\n| [redshift-connector](https://github.com/aws/amazon-redshift-python-driver) | `2.1.7` | `2.1.10` |\n| [datafusion](https://github.com/apache/datafusion-python) | `47.0.0` | `50.1.0` |\n| [starlette](https://github.com/Kludex/starlette) | `0.49.1` | `0.50.0` |\n| [databricks-sql-connector](https://github.com/databricks/databricks-sql-python) | `4.1.4` | `4.2.2` |\n| [databricks-sdk](https://github.com/databricks/databricks-sdk-py) | `0.73.0` | `0.74.0` |\n| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.4.9` | `4.5.1` |\n| [ipykernel](https://github.com/ipython/ipykernel) | `6.30.1` | `7.1.0` |\n| [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) | `8.1.7` | `8.1.8` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.6` | `3.10.8` |\n| [plotly](https://github.com/plotly/plotly.py) | `6.3.0` | `6.5.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [testcontainers](https://github.com/testcontainers/testcontainers-python) | `4.9.2` | `4.13.3` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.39` | `2.0.45` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.2` | `0.14.9` |\n| [trino](https://github.com/trinodb/trino-python-client) | `0.335.0` | `0.336.0` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [clickhouse-connect](https://github.com/ClickHouse/clickhouse-connect) | `0.8.15` | `0.10.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.33.1` | `1.36.1` |\n\n\nUpdates `fastapi` from 0.120.1 to 0.124.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.124.4\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix parameter aliases. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14371\"\u003e#14371\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.124.3\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix support for tagged union with discriminator inside of \u003ccode\u003eAnnotated\u003c/code\u003e with \u003ccode\u003eBody()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14512\"\u003e#14512\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\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Add set of tests for request parameters and alias. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14358\"\u003e#14358\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Tweak links format. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14505\"\u003e#14505\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 docs about re-raising validation errors, do not include string as is to not leak information. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14487\"\u003e#14487\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🔥 Remove external links section. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14486\"\u003e#14486\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\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Sync Russian docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14509\"\u003e#14509\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🌐 Sync German docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14488\"\u003e#14488\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Tweak coverage to not pass Smokeshow max file size limit. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14507\"\u003e#14507\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✅ Expand test matrix to include Windows and MacOS. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14171\"\u003e#14171\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.124.2\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix support for \u003ccode\u003eif TYPE_CHECKING\u003c/code\u003e,  non-evaluated stringified annotations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14485\"\u003e#14485\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.124.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix handling arbitrary types when using \u003ccode\u003earbitrary_types_allowed=True\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14482\"\u003e#14482\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add variants for code examples in \u0026quot;Advanced User Guide\u0026quot;. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14413\"\u003e#14413\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update tech stack in project generation docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14472\"\u003e#14472\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Add test for Pydantic v2, dataclasses, UUID, and \u003ccode\u003e__annotations__\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14477\"\u003e#14477\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.124.0\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/fastapi/fastapi/commit/b1d9769f97295a238df8c2d318ad65dd6a40c6ff\"\u003e\u003ccode\u003eb1d9769\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.124.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/89157a803c4c75332566a5ca499afd5358c42049\"\u003e\u003ccode\u003e89157a8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d86c47477e4d91b5e1f07973b3437908558a8b4b\"\u003e\u003ccode\u003ed86c474\u003c/code\u003e\u003c/a\u003e 🐛 Fix parameter aliases (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14371\"\u003e#14371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3fe6522aaed4d36d6a38175a4a8137ee0fc62451\"\u003e\u003ccode\u003e3fe6522\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.124.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/80d1f732e5e10efe75e03427558271d46cd663e3\"\u003e\u003ccode\u003e80d1f73\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c0556ac3a50420d0ba298b5641517c61f3c1c2c4\"\u003e\u003ccode\u003ec0556ac\u003c/code\u003e\u003c/a\u003e 🐛 Fix support for tagged union with discriminator inside of \u003ccode\u003eAnnotated\u003c/code\u003e with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1fcec88ad2df4541b6a81c4786c4d039dc745e1e\"\u003e\u003ccode\u003e1fcec88\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/f8b216df30f4d4fd36dccf7c7e885154a2699838\"\u003e\u003ccode\u003ef8b216d\u003c/code\u003e\u003c/a\u003e 🌐 Sync Russian docs (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14509\"\u003e#14509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b905b614c84fbf4a278bdb69f4a22d52a43721e\"\u003e\u003ccode\u003e4b905b6\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6c54bcefd3c37c8656e909980af00f86acea99c3\"\u003e\u003ccode\u003e6c54bce\u003c/code\u003e\u003c/a\u003e ✅ Add set of tests for request parameters and alias (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14358\"\u003e#14358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.120.1...0.124.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.10.6 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.10.6...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-auth` from 2.38.0 to 2.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/releases\"\u003egoogle-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-auth 2.44.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-12)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95\"\u003e0387bb95\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e7\"\u003e0f7097e7\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5\"\u003e39c381a5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd shlex to correctly parse executable commands with spaces (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1855\"\u003e#1855\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/cf6fc3cc\"\u003ecf6fc3cc\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986\"\u003ed5638986\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd temporary patch to workload cert logic to accomodate Cloud Run mis-configuration (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1880\"\u003e#1880\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907\"\u003e78de7907\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDelegate workload cert and key default lookup to helper function (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1877\"\u003e#1877\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7e\"\u003eb0993c7e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse public refresh method for source credentials in ImpersonatedCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1884\"\u003e#1884\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f\"\u003ee0c3296f\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogle-auth 2.43.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.42.1...v2.43.0\"\u003e2.43.0\u003c/a\u003e (2025-11-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd public wrapper for _mtls_helper.check_use_client_cert which enables mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE is not set, when the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1859\"\u003e#1859\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/1535eccb\"\u003e1535eccb\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eEnable mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE  is not set, if the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1848\"\u003e#1848\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/395e405b\"\u003e395e405b\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eonboard \u003ccode\u003egoogle-auth\u003c/code\u003e to librarian (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1838\"\u003e#1838\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/c503eaa5\"\u003ec503eaa5\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.42.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.42.0...v2.42.1\"\u003e2.42.1\u003c/a\u003e (2025-10-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCatch ValueError for json.loads() (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1842\"\u003e#1842\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b074cad460589633adfc6744c01726ae86f2aa2b\"\u003eb074cad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.42.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.41.1...v2.42.0\"\u003e2.42.0\u003c/a\u003e (2025-10-24)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd trust boundary support for external accounts. (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1809\"\u003e#1809\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/36ecb1d65883477d27faf9c2281fc289659b9903\"\u003e36ecb1d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-python/blob/main/CHANGELOG.md\"\u003egoogle-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.43.0...v2.44.0\"\u003e2.44.0\u003c/a\u003e (2025-12-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e78f247665b6ef0287d482033f7be2ed6d\"\u003e0f7097e78f247665b6ef0287d482033f7be2ed6d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5f6881b590025f36d333d12eff8dc60fc\"\u003e39c381a5f6881b590025f36d333d12eff8dc60fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95713653d47e846cad3a010eb55ef2db4c\"\u003e0387bb95713653d47e846cad3a010eb55ef2db4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement token revocation in STS client and add revoke() metho… (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1849\"\u003e#1849\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/d5638986ca03ee95bfffa9ad821124ed7e903e63\"\u003ed5638986ca03ee95bfffa9ad821124ed7e903e63\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd shlex to correctly parse executable commands with spaces (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1855\"\u003e#1855\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/cf6fc3cced78bc1362a7fe596c32ebc9ce03c26b\"\u003ecf6fc3cced78bc1362a7fe596c32ebc9ce03c26b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse public refresh method for source credentials in ImpersonatedCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1884\"\u003e#1884\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f471747258f6d98d2d9bfde636358ecde\"\u003ee0c3296f471747258f6d98d2d9bfde636358ecde\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd temporary patch to workload cert logic to accomodate Cloud Run mis-configuration (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1880\"\u003e#1880\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907b8bdb7b5510e3c6fa8a3f3721e2436d7\"\u003e78de7907b8bdb7b5510e3c6fa8a3f3721e2436d7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDelegate workload cert and key default lookup to helper function (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1877\"\u003e#1877\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7edaba505d0fb0628af28760c43034c959\"\u003eb0993c7edaba505d0fb0628af28760c43034c959\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-auth-v2.42.1...google-auth-v2.43.0\"\u003e2.43.0\u003c/a\u003e (2025-11-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd public wrapper for _mtls_helper.check_use_client_cert which enables mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE is not set, when the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1859\"\u003e#1859\u003c/a\u003e) Add public wrapper for check_use_client_cert which enables mTLS if\nGOOGLE_API_USE_CLIENT_CERTIFICATE is not set, when the MWID/X.509 cert\nsources detected. Also, fix check_use_client_cert to return boolean\nvalue.\nChange \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1848\"\u003e#1848\u003c/a\u003e added the check_use_client_cert method that helps know if\nclient cert should be used for mTLS connection. However, that was in a\nprivate class, thus, created a public wrapper of the same function so\nthat it can be used by python Client Libraries. Also, updated\ncheck_use_client_cert to return a boolean value instead of existing\nstring value for better readability and future scope.\n--------- (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1535eccbff0ad8f3fd6a9775316ac8b77dca66ba\"\u003e1535eccbff0ad8f3fd6a9775316ac8b77dca66ba\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnable mTLS if GOOGLE_API_USE_CLIENT_CERTIFICATE  is not set, if the MWID/X.509 cert sources detected (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1848\"\u003e#1848\u003c/a\u003e) The Python SDK will use a hybrid approach for mTLS enablement:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eIf the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable is set\n(either true or false), the SDK will respect that setting. This is\nnecessary for test scenarios and users who need to explicitly control\nmTLS behavior.\u003c/li\u003e\n\u003cli\u003eIf the GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable is not\nset, the SDK will automatically enable mTLS only if it detects Managed\nWorkload Identity (MWID) or X.509 Workforce Identity Federation (WIF)\ncertificate sources. In other cases where the variable is not set, mTLS\nwill remain disabled.\n** This change also adds the helper method \u003ccode\u003echeck_use_client_cert\u003c/code\u003e and\nit's unit test, which will be used for checking the criteria for setting\nthe mTLS to true\n** This change is only for Auth-Library, other changes will be created\nfor Client-Library use-cases.\n--------- (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/395e405b64b56ddb82ee639958c2e8056ad2e82b\"\u003e395e405b64b56ddb82ee639958c2e8056ad2e82b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/262eb9e33d58ffeb536ecd083c22d9fb12c808e6\"\u003e\u003ccode\u003e262eb9e\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251212T161150Z (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1888\"\u003e#1888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0f7097e78f247665b6ef0287d482033f7be2ed6d\"\u003e\u003ccode\u003e0f7097e\u003c/code\u003e\u003c/a\u003e feat: support Python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1822\"\u003e#1822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/e0c3296f471747258f6d98d2d9bfde636358ecde\"\u003e\u003ccode\u003ee0c3296\u003c/code\u003e\u003c/a\u003e fix(auth): Use public refresh method for source credentials in ImpersonatedCr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/78de7907b8bdb7b5510e3c6fa8a3f3721e2436d7\"\u003e\u003ccode\u003e78de790\u003c/code\u003e\u003c/a\u003e fix(auth): Add temporary patch to workload cert logic to accomodate Cloud Run...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/3e8a56687fd050ff44a35cc8db0e95e996648173\"\u003e\u003ccode\u003e3e8a566\u003c/code\u003e\u003c/a\u003e chore(tests): allow expired secret in system tests (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1883\"\u003e#1883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/b0993c7edaba505d0fb0628af28760c43034c959\"\u003e\u003ccode\u003eb0993c7\u003c/code\u003e\u003c/a\u003e fix(auth): Delegate workload cert and key default lookup to helper function (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/2c374d36a61569b75d11c17fae124d591c52ddc6\"\u003e\u003ccode\u003e2c374d3\u003c/code\u003e\u003c/a\u003e chore: update secret (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/39c381a5f6881b590025f36d333d12eff8dc60fc\"\u003e\u003ccode\u003e39c381a\u003c/code\u003e\u003c/a\u003e feat: add ecdsa p-384 support (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1872\"\u003e#1872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/daabaa714820008565133efdf4d928143b8fe518\"\u003e\u003ccode\u003edaabaa7\u003c/code\u003e\u003c/a\u003e chore(tests): update secret (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1876\"\u003e#1876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-python/commit/0387bb95713653d47e846cad3a010eb55ef2db4c\"\u003e\u003ccode\u003e0387bb9\u003c/code\u003e\u003c/a\u003e feat: MDS connections use mTLS (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-python/issues/1856\"\u003e#1856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-python/compare/v2.38.0...v2.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.0.1 to 1.2.1\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.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport reading .env 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/pull/586\"\u003etheskumar/python-dotenv#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI to use trusted publishing on PyPI\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/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/586\"\u003etheskumar/python-dotenv#586\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.0...v1.2.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: upgrade to use ruff 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/567\"\u003etheskumar/python-dotenv#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse sys.exit() instead of exit() 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/568\"\u003etheskumar/python-dotenv#568\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat:  add \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e flag to disable load_dotenv (fixes \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/510\"\u003e#510\u003c/a\u003e) 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/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded Python@3.14: Github CI \u0026amp; tox.ini 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/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eocs: clarify what load_dotenv() does in README by \u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory 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/theskumar/python-dotenv/pull/577\"\u003etheskumar/python-dotenv#577\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove project metadata and config to pyproject.toml 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/pull/583\"\u003etheskumar/python-dotenv#583\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/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/569\"\u003etheskumar/python-dotenv#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/579\"\u003etheskumar/python-dotenv#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cybercoded\"\u003e\u003ccode\u003e@​cybercoded\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/575\"\u003etheskumar/python-dotenv#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/583\"\u003etheskumar/python-dotenv#583\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.1.1...v1.2.0\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv 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/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\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.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a security policy 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/512\"\u003etheskumar/python-dotenv#512\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKeep GitHub Actions up to date with GitHub's Dependabot by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/506\"\u003etheskumar/python-dotenv#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: fix multiline string in test.yml \u0026amp; use fail-fast strategy by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/514\"\u003etheskumar/python-dotenv#514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance dotenv run: Switch to execvpe for better resource management and signal handling by \u003ca href=\"https://github.com/eekstunt\"\u003e\u003ccode\u003e@​eekstunt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/523\"\u003etheskumar/python-dotenv#523\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add py3.13 to test.yml by \u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/527\"\u003etheskumar/python-dotenv#527\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.13 trove classifier by \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/535\"\u003etheskumar/python-dotenv#535\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/529\"\u003etheskumar/python-dotenv#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for python 3.13 and drop 3.8 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/551\"\u003etheskumar/python-dotenv#551\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update README.md by \u003ca href=\"https://github.com/chapeupreto\"\u003e\u003ccode\u003e@​chapeupreto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/516\"\u003etheskumar/python-dotenv#516\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSome more s/Python-dotenv/python-dotenv/ 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/552\"\u003etheskumar/python-dotenv#552\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/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.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/pull/563\"\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/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.1.0] - 2025-03-25\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFeature\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.13\u003c/li\u003e\n\u003cli\u003eEnhance \u003ccode\u003edotenv run\u003c/code\u003e, switch to \u003ccode\u003eexecvpe\u003c/code\u003e for better resource management and signal handling (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/523\"\u003e#523\u003c/a\u003e) by [\u003ca href=\"https://github.com/eekstunt\"\u003e\u003ccode\u003e@​eekstunt\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efind_dotenv\u003c/code\u003e and \u003ccode\u003eload_dotenv\u003c/code\u003e now correctly looks up at the current directory when running in debugger or pdb (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/553\"\u003e#553\u003c/a\u003e by [\u003ca href=\"https://github.com/randomseed42\"\u003e\u003ccode\u003e@​randomseed42\u003c/code\u003e\u003c/a\u003e])\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMisc\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\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/eaf2a9129ccec6febda0f741eb3bb852c3f947bd\"\u003e\u003ccode\u003eeaf2a91\u003c/code\u003e\u003c/a\u003e Do not remove .coverage file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8716196891532eeb67d24a513e8d975437f5e8b7\"\u003e\u003ccode\u003e8716196\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.0 → 1.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/b87807fcad6e74332c3c63a75c92ce5814fa7a55\"\u003e\u003ccode\u003eb87807f\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/3af77d3029eb717aeec0a3c25f751b6a614a6d3c\"\u003e\u003ccode\u003e3af77d3\u003c/code\u003e\u003c/a\u003e Support reading .env from FIFOs (Unix) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/467ee22fccb2fb7ccda71a0d9e37c6ea3cb8d993\"\u003e\u003ccode\u003e467ee22\u003c/code\u003e\u003c/a\u003e Fix test failures after moving config to pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/76999e741d87e958ebd74e3ae9834c0514e77a59\"\u003e\u003ccode\u003e76999e7\u003c/code\u003e\u003c/a\u003e Move more config pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/222ce2cc58ebc82ba78da8781269267b9f585932\"\u003e\u003ccode\u003e222ce2c\u003c/code\u003e\u003c/a\u003e Update to use trusted publisher on pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8ed4f79d202eba582b44bdf1f5deb726dd68783d\"\u003e\u003ccode\u003e8ed4f79\u003c/code\u003e\u003c/a\u003e Update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/5bf882241c607445bf02cf5b241535d62e2b99c1\"\u003e\u003ccode\u003e5bf8822\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.1 → 1.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1fe11cc737ee4399e9c51d1b69b0dd858f6b4669\"\u003e\u003ccode\u003e1fe11cc\u003c/code\u003e\u003c/a\u003e upadate changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.0.1...v1.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `orjson` from 3.10.16 to 3.11.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ijl/orjson/releases\"\u003eorjson's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.5\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow simple error message instead of traceback when attempting to\nbuild on unsupported Python versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.4\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eABI compatibility with CPython 3.15 alpha 1.\u003c/li\u003e\n\u003cli\u003ePublish PyPI wheels for 3.14 and manylinux i686, manylinux arm7,\nmanylinux ppc64le, manylinux s390x.\u003c/li\u003e\n\u003cli\u003eBuild now requires a C compiler.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.3\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix PyPI project metadata when using maturin 1.9.2 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix build using Rust 1.89 on amd64.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.85 or later instead of 1.82.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish PyPI wheels for CPython 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003estr\u003c/code\u003e on big-endian architectures.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse a deserialization buffer allocated per request instead of a shared buffer allocated on import.\u003c/li\u003e\n\u003cli\u003eABI compatibility with CPython 3.14 beta 4.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect escaping of the vertical tabulation character. This was\nintroduced in 3.10.17.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.10.17\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/ijl/orjson/blob/master/CHANGELOG.md\"\u003eorjson's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.11.5 - 2025-12-06\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow simple error message instead of traceback when attempting to\nbuild on unsupported Python versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.4 - 2025-10-24\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eABI compatibility with CPython 3.15 alpha 1.\u003c/li\u003e\n\u003cli\u003ePublish PyPI wheels for 3.14 and manylinux i686, manylinux arm7,\nmanylinux ppc64le, manylinux s390x.\u003c/li\u003e\n\u003cli\u003eBuild now requires a C compiler.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.3 - 2025-08-26\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix PyPI project metadata when using maturin 1.9.2 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.2 - 2025-08-12\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix build using Rust 1.89 on amd64.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuild now depends on Rust 1.85 or later instead of 1.82.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.1 - 2025-07-25\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish PyPI wheels for CPython 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003estr\u003c/code\u003e on big-endian architectures. This was introduced in 3.11.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.11.0 - 2025-07-15\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/fb3eb1f729c7e7b019f780af5695722c99c7c695\"\u003e\u003ccode\u003efb3eb1f\u003c/code\u003e\u003c/a\u003e 3.11.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/52688e02c51c845cde24a46cd1011a6010d10eb8\"\u003e\u003ccode\u003e52688e0\u003c/code\u003e\u003c/a\u003e Record contributors in headers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/dc083e87d5262e7dde3ba4b1d2a377b5b065a27c\"\u003e\u003ccode\u003edc083e8\u003c/code\u003e\u003c/a\u003e Further compatibility and build misc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/18f0186d47fbadd53c9db4e39a442d5b04225418\"\u003e\u003ccode\u003e18f0186\u003c/code\u003e\u003c/a\u003e Compatibility and build misc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/a4fdeb3aff125d501ec0dd0577f9b38b2b977b4f\"\u003e\u003ccode\u003ea4fdeb3\u003c/code\u003e\u003c/a\u003e 3.11.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/2e80d68afacafca8751e6a64ca05d0d4087dbd15\"\u003e\u003ccode\u003e2e80d68\u003c/code\u003e\u003c/a\u003e unlikely to cold_path, remove intrinsics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/27edea92f8da2fdfc3f1342474e2f1686f1edf55\"\u003e\u003ccode\u003e27edea9\u003c/code\u003e\u003c/a\u003e FFI through crate::ffi, partial non-CPython compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/416a8c9578da780d0d58b5e6b751793deafc610d\"\u003e\u003ccode\u003e416a8c9\u003c/code\u003e\u003c/a\u003e Unconditionally build yyjson\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/c8c1a17dca8436a2fee05ca060febd096e653d98\"\u003e\u003ccode\u003ec8c1a17\u003c/code\u003e\u003c/a\u003e edition 2024\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ijl/orjson/commit/af4179a1fa0aafffd0f867203b6c36e9a522f165\"\u003e\u003ccode\u003eaf4179a\u003c/code\u003e\u003c/a\u003e build maintenance, panic_immediate_abort break, test 3.15\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ijl/orjson/compare/3.10.16...3.11.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geoalchemy2` from 0.17.1 to 0.18.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect by \u003ca href=\"https://github.com/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/570\"\u003egeoalchemy/geoalchemy2#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string by \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/574\"\u003egeoalchemy/geoalchemy2#574\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/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/538\"\u003egeoalchemy/geoalchemy2#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/540\"\u003egeoalchemy/geoalchemy2#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCompile literal binds by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/543\"\u003egeoalchemy/geoalchemy2#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/544\"\u003egeoalchemy/geoalchemy2#544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore (mariadb): Stop converting WKB to WKT by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/545\"\u003egeoalchemy/geoalchemy2#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker containers by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/546\"\u003egeoalchemy/geoalchemy2#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/547\"\u003egeoalchemy/geoalchemy2#547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/553\"\u003egeoalchemy/geoalchemy2#553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/554\"\u003egeoalchemy/geoalchemy2#554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Improve readbility of benchmark results by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/556\"\u003egeoalchemy/geoalchemy2#556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/555\"\u003egeoalchemy/geoalchemy2#555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/557\"\u003egeoalchemy/geoalchemy2#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Remove warning message from MySQL/MariaDB reflection by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/560\"\u003egeoalchemy/geoalchemy2#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/561\"\u003egeoalchemy/geoalchemy2#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: correct doc strings by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/564\"\u003egeoalchemy/geoalchemy2#564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/565\"\u003egeoalchemy/geoalchemy2#565\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/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.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/geoalchemy/geoalchemy2/blob/master/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string - \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Fix doc strings for cache enabled - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(papacodebear/master) Fix: Remove warning from MySQL/MariaDB reflection \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Improve readability of benchmark results \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/556\"\u003e#556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/553\"\u003e#553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker container \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf (mariadb): Stop converting WKB to WKT \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/544\"\u003e#544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Compile literal binds properly \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/540\"\u003e#540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0c311122e5228a885e262d8f79b037cb74c0949b\"\u003e\u003ccode\u003e0c31112\u003c/code\u003e\u003c/a\u003e Release: 0.18.1 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/75f87fac699ed31579ef93dffc59cc25bda241a8\"\u003e\u003ccode\u003e75f87fa\u003c/code\u003e\u003c/a\u003e Fix: Allow scientific notation within WKT string (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8653df3a1b0236556f1c39c916f0fb717475a6d1\"\u003e\u003ccode\u003e8653df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/3d6099504023afda68137f0ac2d041986159dac9\"\u003e\u003ccode\u003e3d60995\u003c/code\u003e\u003c/a\u003e Fix (mysql): Fix failing test for MySQL dialect (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/60767082df9f4587fadd56ab94847ebc39df8295\"\u003e\u003ccode\u003e6076708\u003c/code\u003e\u003c/a\u003e Release: 0.18.0 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/565\"\u003e#565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/e13112177bdf79cae0d72a6e89d815dc272e3dc5\"\u003e\u003ccode\u003ee131121\u003c/code\u003e\u003c/a\u003e Feat: Add support of spatial indexes for Raster type for PostgreSQL (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0b432086a0c3b8ab160c5cc1864aa65e02f35362\"\u003e\u003ccode\u003e0b43208\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8791b2eec013f21f599ca060d9fee4aba72ec2a1\"\u003e\u003ccode\u003e8791b2e\u003c/code\u003e\u003c/a\u003e Docs: Fix doc strings for cache enabled (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/d3c1d04c8b462c61132403e44a7a4f04a487c142\"\u003e\u003ccode\u003ed3c1d04\u003c/code\u003e\u003c/a\u003e Chore: Move reflection type registering (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/24dc5d05d97fb9a2a57103c1823a58f06940a5e8\"\u003e\u003ccode\u003e24dc5d0\u003c/code\u003e\u003c/a\u003e Fix: Remove warning from MySQL/MariaDB reflection (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gql` from 3.5.2 to 4.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/graphql-python/gql/releases\"\u003egql's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eChange transports prototype using GraphQLRequest (\u003ca href=\"https://redirect.github.com/graphql-python/gql/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUsing GraphQLRequest instead of DocumentNode for gql, execute, subscribe methods (\u003ca href=\"https://redirect.github.com/graphql-python/gql/issues/556\"\u003e#556\u003c/a\u003e):\n\u003cstrong\u003eThis is a big change:\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003ethe \u003ccode\u003egql\u003c/code\u003e and \u003ccode\u003edsl_gql\u003c/code\u003e methods will now return a \u003ccode\u003eGraphQLRequest\u003c/code\u003e instead of a \u003ccode\u003eDocument\u003c/code\u003e Node\na \u003ccode\u003eGraphQLRequest\u003c/code\u003e is an object containing the document and optional \u003ccode\u003evariable_values\u003c/code\u003e and \u003ccode\u003eoperation_name\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eALL the \u003ccode\u003eexecute\u003c/code\u003e and \u003ccode\u003esubscribe\u003c/code\u003e methods now receive a \u003ccode\u003eGraphQLRequest\u003c/code\u003e as main argument instead of\na \u003ccode\u003eDocumentNode\u003c/code\u003e, \u003ccode\u003evariable_values\u003c/code\u003e and \u003ccode\u003eoperation_name\u003c/code\u003e arguments\u003c/li\u003e\n\u003cli\u003eThe old method of sending \u003ccode\u003evariable_values\u003c/code\u003e as an argument of \u003ccode\u003eexecute\u003c/code\u003e or \u003ccode\u003esubscribe\u003c/code\u003e still works but is deprecated\nSee \u003ca href=\"https://gql.readthedocs.io/en/latest/usage/variables.html\"\u003ehttps://gql.readthedocs.io/en/latest/usage/variables.html\u003c/a\u003e for the new syntax.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix subscription task cancel exception swallow (\u003ca href=\"https://redirect.github.com/graphql-python/gql/issues/548\"\u003e#548\u003c/a\u003e):\nPreviously if a task was cancelled while a subscription task was active,\nthe \u003ccode\u003easyncio.CancelledError\u003c/code\u003e Exception would be swallowed by our code.\nThis is not the case anymore so you should now trap that Exception yourself.\u003c/li\u003e\n\u003cli\u003eClean up the file upload interface with FileVar class (\u003ca href=\"https://redirect.github.com/graphql-python/gql/issues/549\"\u003e#549\u003c/a\u003e):\nThe file upload functionality has been modified to require \u003ccode\u003eFileVar\u003c/code\u003e instances\nfor uploaded files (the old method still works but is deprecated).\nSee \u003ca href=\"https://gql.readthedocs.io/en/latest/usage/file_upload.html\"\u003ehttps://gql.readthedocs.io/en/latest/usage/file_upload.html\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet logging level to DEBUG for all transports (\u003ca href=\"https://redirect.github.com/g...\n\n_Description has been truncated_","html_url":"https://github.com/Canner/wren-engine/pull/1388","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Canner%2Fwren-engine/issues/1388","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1388/packages"}},{"old_version":"0.17.1","new_version":"0.18.1","update_type":"minor","path":null,"pr_created_at":"2025-12-01T01:22:45.000Z","version_change":"0.17.1 → 0.18.1","issue":{"uuid":"3678820834","node_id":"PR_kwDOBwBL7M62OwJo","number":129,"state":"open","title":"Bump geoalchemy2 from 0.17.1 to 0.18.1","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-01T01:22:45.000Z","updated_at":"2026-03-02T01:53:06.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"geoalchemy2","old_version":"0.17.1","new_version":"0.18.1","repository_url":"https://github.com/geoalchemy/geoalchemy2"}],"path":null,"ecosystem":"pip"},"body":"Bumps [geoalchemy2](https://github.com/geoalchemy/geoalchemy2) from 0.17.1 to 0.18.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/releases\"\u003egeoalchemy2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect by \u003ca href=\"https://github.com/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/570\"\u003egeoalchemy/geoalchemy2#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string by \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.1 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/574\"\u003egeoalchemy/geoalchemy2#574\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/google-labs-jules\"\u003e\u003ccode\u003e@​google-labs-jules\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/567\"\u003egeoalchemy/geoalchemy2#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/573\"\u003egeoalchemy/geoalchemy2#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.18.0...0.18.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/538\"\u003egeoalchemy/geoalchemy2#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/540\"\u003egeoalchemy/geoalchemy2#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCompile literal binds by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/543\"\u003egeoalchemy/geoalchemy2#543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/544\"\u003egeoalchemy/geoalchemy2#544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore (mariadb): Stop converting WKB to WKT by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/545\"\u003egeoalchemy/geoalchemy2#545\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker containers by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/546\"\u003egeoalchemy/geoalchemy2#546\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/547\"\u003egeoalchemy/geoalchemy2#547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/553\"\u003egeoalchemy/geoalchemy2#553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/554\"\u003egeoalchemy/geoalchemy2#554\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest: Improve readbility of benchmark results by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/556\"\u003egeoalchemy/geoalchemy2#556\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/555\"\u003egeoalchemy/geoalchemy2#555\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/557\"\u003egeoalchemy/geoalchemy2#557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Remove warning message from MySQL/MariaDB reflection by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/560\"\u003egeoalchemy/geoalchemy2#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/561\"\u003egeoalchemy/geoalchemy2#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: correct doc strings by \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/564\"\u003egeoalchemy/geoalchemy2#564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease: 0.18.0 by \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/565\"\u003egeoalchemy/geoalchemy2#565\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/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/pull/562\"\u003egeoalchemy/geoalchemy2#562\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.0\"\u003ehttps://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.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/geoalchemy/geoalchemy2/blob/master/CHANGES.txt\"\u003egeoalchemy2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.18.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Allow scientific notation within WKT string - \u003ca href=\"https://github.com/autermann\"\u003e\u003ccode\u003e@​autermann\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix (mysql): Fix failing test for MySQL dialect - \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeat: Add support of spatial indexes for Raster type for PostgreSQL \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Fix doc strings for cache enabled - \u003ca href=\"https://github.com/pjonsson\"\u003e\u003ccode\u003e@​pjonsson\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Move reflection type registering \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e(papacodebear/master) Fix: Remove warning from MySQL/MariaDB reflection \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Handle computed columns \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Improve readability of benchmark results \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/556\"\u003e#556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf: Define \u003cstrong\u003eslots\u003c/strong\u003e in element classes to reduce memory usage of elements \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/555\"\u003e#555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChore: Create FUNDING.yml \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/554\"\u003e#554\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add more benchmarks \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/553\"\u003e#553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTest: Add benchmark tests \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: Update doc to run the tests inside docker container \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePerf (mariadb): Stop converting WKB to WKT \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Improve Geometry initializer to make the dimension optional \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/544\"\u003e#544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Compile literal binds properly \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat: Add more return types for spatial functions and update some typehints \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/540\"\u003e#540\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild: Deprecate Py\u0026lt;3.10 \u003ca href=\"https://github.com/adrien-berchet\"\u003e\u003ccode\u003e@​adrien-berchet\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0c311122e5228a885e262d8f79b037cb74c0949b\"\u003e\u003ccode\u003e0c31112\u003c/code\u003e\u003c/a\u003e Release: 0.18.1 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/75f87fac699ed31579ef93dffc59cc25bda241a8\"\u003e\u003ccode\u003e75f87fa\u003c/code\u003e\u003c/a\u003e Fix: Allow scientific notation within WKT string (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8653df3a1b0236556f1c39c916f0fb717475a6d1\"\u003e\u003ccode\u003e8653df3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/570\"\u003e#570\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/3d6099504023afda68137f0ac2d041986159dac9\"\u003e\u003ccode\u003e3d60995\u003c/code\u003e\u003c/a\u003e Fix (mysql): Fix failing test for MySQL dialect (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/60767082df9f4587fadd56ab94847ebc39df8295\"\u003e\u003ccode\u003e6076708\u003c/code\u003e\u003c/a\u003e Release: 0.18.0 (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/565\"\u003e#565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/e13112177bdf79cae0d72a6e89d815dc272e3dc5\"\u003e\u003ccode\u003ee131121\u003c/code\u003e\u003c/a\u003e Feat: Add support of spatial indexes for Raster type for PostgreSQL (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/0b432086a0c3b8ab160c5cc1864aa65e02f35362\"\u003e\u003ccode\u003e0b43208\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/8791b2eec013f21f599ca060d9fee4aba72ec2a1\"\u003e\u003ccode\u003e8791b2e\u003c/code\u003e\u003c/a\u003e Docs: Fix doc strings for cache enabled (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/d3c1d04c8b462c61132403e44a7a4f04a487c142\"\u003e\u003ccode\u003ed3c1d04\u003c/code\u003e\u003c/a\u003e Chore: Move reflection type registering (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/geoalchemy/geoalchemy2/commit/24dc5d05d97fb9a2a57103c1823a58f06940a5e8\"\u003e\u003ccode\u003e24dc5d0\u003c/code\u003e\u003c/a\u003e Fix: Remove warning from MySQL/MariaDB reflection (\u003ca href=\"https://redirect.github.com/geoalchemy/geoalchemy2/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/geoalchemy/geoalchemy2/compare/0.17.1...0.18.1\"\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=geoalchemy2\u0026package-manager=pip\u0026previous-version=0.17.1\u0026new-version=0.18.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/freezingsaddles/freezing-sync/pull/129","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/freezingsaddles%2Ffreezing-sync/issues/129","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/129/packages"}}]}