{"id":27944,"name":"datamodel-code-generator","ecosystem":"pip","repository_url":"https://github.com/koxudaxi/datamodel-code-generator","issues_count":232,"created_at":"2025-06-07T05:32:11.838Z","updated_at":"2025-06-07T05:32:11.838Z","purl":"pkg:pypi/datamodel-code-generator","metadata":{"id":2688905,"name":"datamodel-code-generator","ecosystem":"pypi","description":"Datamodel Code Generator","homepage":"https://github.com/koxudaxi/datamodel-code-generator","licenses":"MIT License","normalized_licenses":["MIT"],"repository_url":"https://github.com/koxudaxi/datamodel-code-generator","keywords_array":[],"namespace":null,"versions_count":209,"first_release_published_at":"2019-07-23T12:31:22.000Z","latest_release_published_at":"2025-06-07T02:42:10.000Z","latest_release_number":"0.30.2","last_synced_at":"2025-06-07T03:00:59.540Z","created_at":"2022-04-10T10:32:30.368Z","updated_at":"2025-06-07T03:01:00.178Z","registry_url":"https://pypi.org/project/datamodel-code-generator/","install_command":"pip install datamodel-code-generator --index-url https://pypi.org/simple","documentation_url":"https://datamodel-code-generator.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 4 - Beta","License :: OSI Approved :: MIT License","Natural Language :: English","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.9","Programming Language :: Python :: Implementation :: CPython"],"normalized_name":"datamodel-code-generator"},"repo_metadata":{"id":38050201,"uuid":"189179081","full_name":"koxudaxi/datamodel-code-generator","owner":"koxudaxi","description":"Pydantic model and dataclasses.dataclass generator for easy conversion of JSON, OpenAPI, JSON Schema, and YAML data sources.","archived":false,"fork":false,"pushed_at":"2024-05-01T20:21:49.000Z","size":11840,"stargazers_count":2310,"open_issues_count":160,"forks_count":264,"subscribers_count":25,"default_branch":"main","last_synced_at":"2024-05-02T01:27:42.422Z","etag":null,"topics":["code-generator","csv","dataclass","datamodel","fastapi","generator","json-schema","openapi","openapi-codegen","pydantic","python","swagger","swagger-codegen","yaml"],"latest_commit_sha":null,"homepage":"https://koxudaxi.github.io/datamodel-code-generator/","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/koxudaxi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"docs/supported-data-types.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["koxudaxi"],"polar":"koxudaxi"}},"created_at":"2019-05-29T08:01:32.000Z","updated_at":"2024-05-06T02:34:19.825Z","dependencies_parsed_at":"2023-11-07T13:40:37.372Z","dependency_job_id":"b2b22882-1e58-49cb-b2e2-b97082102c82","html_url":"https://github.com/koxudaxi/datamodel-code-generator","commit_stats":{"total_commits":756,"total_committers":67,"mean_commits":"11.283582089552239","dds":"0.46164021164021163","last_synced_commit":"3c6958275a7a2793b4f91b1709660fd86779b88c"},"previous_names":[],"tags_count":186,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/koxudaxi","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":216259265,"owners_count":15999042,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"koxudaxi","name":"Koudai Aono","uuid":"630670","kind":"user","description":"I am a software engineer focusing on Python 🐍 and Open Source contributions 💻🌐.\r\n","email":"","website":null,"location":"Tokyo, Japan","twitter":null,"company":"Tractable @tractableai","icon_url":"https://avatars.githubusercontent.com/u/630670?u=507d8577b4b3670546b449c4c2ccbc5af40d72f7\u0026v=4","repositories_count":47,"last_synced_at":"2024-05-20T14:52:40.064Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/koxudaxi","funding_links":["https://github.com/sponsors/koxudaxi"],"total_stars":4188,"followers":380,"following":11,"created_at":"2022-11-03T05:47:02.097Z","updated_at":"2024-05-20T14:52:41.377Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/koxudaxi","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/koxudaxi/repositories"},"tags":[{"name":"0.25.6","sha":"fcab9a4d555d4b96d64bb277f974bb7507982fb2","kind":"commit","published_at":"2024-04-23T17:53:31.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.25.6","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.25.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.25.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.25.6/manifests"},{"name":"0.25.5","sha":"113dcd28a1b2ad6ec9f1850ac69221ab2f473a5e","kind":"commit","published_at":"2024-03-16T11:41:03.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.25.5","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.25.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.25.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.25.5/manifests"},{"name":"0.25.4","sha":"a4a3a429871e1e93dce889f02f765a65dfbffb04","kind":"commit","published_at":"2024-02-13T18:06:56.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.25.4","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.25.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.25.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.25.4/manifests"},{"name":"0.25.3","sha":"690cb1281da0f22dba07dacf4ad1b3d956531ba7","kind":"commit","published_at":"2024-02-01T18:07:27.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.25.3","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.25.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.25.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.25.3/manifests"},{"name":"0.25.2","sha":"9bb2705327528fc6ab3fc87317c1767be552768f","kind":"commit","published_at":"2023-12-21T17:55:58.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.25.2","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.25.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.25.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.25.2/manifests"},{"name":"0.25.1","sha":"16043791b02f69e57fc453a65dd0149eab01140f","kind":"commit","published_at":"2023-11-26T16:02:28.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.25.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.25.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.25.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.25.1/manifests"},{"name":"0.25.0","sha":"a46fe94e36806eb4c24cf4e6327afbd5aff3b2f4","kind":"commit","published_at":"2023-11-25T07:04:29.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.25.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.25.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.25.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.25.0/manifests"},{"name":"0.24.2","sha":"0ffcfd1845c19c0fcc54801499d12033f8852101","kind":"commit","published_at":"2023-11-16T11:00:28.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.24.2","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.24.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.24.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.24.2/manifests"},{"name":"0.24.1","sha":"65edaef0298f36acc3523dc3d89934e1504d702f","kind":"commit","published_at":"2023-11-16T10:18:56.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.24.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.24.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.24.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.24.1/manifests"},{"name":"0.24.0","sha":"97b23f0a83071bf30c9daca0e94884a7f3bd879d","kind":"commit","published_at":"2023-11-14T17:56:27.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.24.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.24.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.24.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.24.0/manifests"},{"name":"0.23.0","sha":"979444cdd4cbfbfab489f6f4c9bb09f8eaf8553b","kind":"commit","published_at":"2023-11-08T16:16:57.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.23.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.23.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.23.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.23.0/manifests"},{"name":"0.22.1","sha":"339f6c6ab6cb1db70163d52c718a32937e254bc9","kind":"commit","published_at":"2023-10-08T00:35:02.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.22.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.22.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.22.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.22.1/manifests"},{"name":"0.22.0","sha":"739b05004d2f88896824c31cbad3897502369769","kind":"commit","published_at":"2023-09-23T16:37:51.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.22.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.22.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.22.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.22.0/manifests"},{"name":"0.21.5","sha":"04c8b68dbcd39bd3eb1366b589fa2b5ef9fa85bd","kind":"commit","published_at":"2023-09-06T16:34:07.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.21.5","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.21.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.21.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.21.5/manifests"},{"name":"0.21.4","sha":"de82679014235f0c53c293a6f7e715d879978b3c","kind":"commit","published_at":"2023-08-09T18:37:46.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.21.4","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.21.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.21.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.21.4/manifests"},{"name":"0.21.3","sha":"0deef65f8f81a169c564daf2c5dc09f63f600a32","kind":"commit","published_at":"2023-08-03T00:05:50.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.21.3","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.21.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.21.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.21.3/manifests"},{"name":"0.21.2","sha":"b63693a2497d40036a1eced65052471aa3c96182","kind":"commit","published_at":"2023-07-20T15:58:33.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.21.2","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.21.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.21.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.21.2/manifests"},{"name":"0.21.1","sha":"f172a5a41a6b48327b6179c24cf3453e84cc9324","kind":"commit","published_at":"2023-07-06T07:06:49.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.21.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.21.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.21.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.21.1/manifests"},{"name":"0.21.0","sha":"f9270683d0409191b61e80c219a066ed3d69b01b","kind":"commit","published_at":"2023-07-03T03:14:40.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.21.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.21.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.21.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.21.0/manifests"},{"name":"0.20.0","sha":"dcf11fcf5bdae115410bab95bcbe2836e41cbfde","kind":"commit","published_at":"2023-06-06T15:10:49.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.20.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.20.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.20.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.20.0/manifests"},{"name":"0.19.0","sha":"8855a1337d552b68857db6e8a547f43314b1c7d1","kind":"commit","published_at":"2023-05-04T06:24:12.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.19.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.19.0/manifests"},{"name":"0.18.1","sha":"3c6958275a7a2793b4f91b1709660fd86779b88c","kind":"commit","published_at":"2023-04-23T15:37:15.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.18.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.18.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.18.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.18.1/manifests"},{"name":"0.18.0","sha":"03eeddbabf9259dd083a4055809ba62d26178e6c","kind":"commit","published_at":"2023-04-16T17:16:27.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.18.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.18.0/manifests"},{"name":"0.17.2","sha":"38dc30e7315e8477e03f79dfa3c395af792f1127","kind":"commit","published_at":"2023-03-31T15:10:34.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.17.2","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.17.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.17.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.17.2/manifests"},{"name":"0.17.1","sha":"1c18fe5ede6656f2e892c92d69315fd870ede6ec","kind":"commit","published_at":"2023-02-06T17:54:38.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.17.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.17.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.17.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.17.1/manifests"},{"name":"0.17.0","sha":"38f177135fefaeb02909eba9f0c9f4ef550f5a22","kind":"commit","published_at":"2023-01-30T16:15:24.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.17.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.17.0/manifests"},{"name":"0.16.1","sha":"7dfacd51664a9911cac66c1f60ba650005ec0a33","kind":"commit","published_at":"2023-01-22T17:01:13.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.16.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.16.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.16.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.16.1/manifests"},{"name":"0.16.0","sha":"c81ad5caf506a4924148ee08f9689181b377d1aa","kind":"commit","published_at":"2023-01-16T05:15:08.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.16.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.16.0/manifests"},{"name":"0.15.0","sha":"9c21b5393eb516ecb4ae74cd782e7c7242a2773c","kind":"commit","published_at":"2023-01-03T17:31:25.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.15.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.15.0/manifests"},{"name":"0.14.1","sha":"c4e8f2c8680b5cdbfb8d718f98c3ca6978f4e6e5","kind":"commit","published_at":"2022-12-28T17:32:53.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.14.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.14.1/manifests"},{"name":"0.14.0","sha":"da52396eea6d65081521a80e782b3ad350eccf44","kind":"commit","published_at":"2022-11-18T05:10:47.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.14.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.14.0/manifests"},{"name":"0.13.5","sha":"df88011f22487c07231b423cefd13aef6d7a5bb6","kind":"commit","published_at":"2022-11-04T01:01:49.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.13.5","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.13.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.13.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.13.5/manifests"},{"name":"0.13.4","sha":"8183a29795c17fb80ebee189e12d0cd6e46f63b4","kind":"commit","published_at":"2022-10-31T16:07:10.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.13.4","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.13.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.13.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.13.4/manifests"},{"name":"0.13.3","sha":"ddee5d93a7482697d605e768ad4a67b093bf1cf5","kind":"commit","published_at":"2022-10-27T17:06:21.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.13.3","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.13.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.13.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.13.3/manifests"},{"name":"0.13.2","sha":"5a8654bffc4ac3e7adf3fdfffccf9efa07fa0c5b","kind":"commit","published_at":"2022-10-17T14:21:24.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.13.2","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.13.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.13.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.13.2/manifests"},{"name":"0.13.1","sha":"e3dbcc522042c1a6bdbcf9b7d534c9291e38b3f7","kind":"commit","published_at":"2022-08-11T18:41:44.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.13.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.13.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.13.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.13.1/manifests"},{"name":"0.13.0","sha":"431dd3329caeade72fce7d6c475f7c8a5467a039","kind":"commit","published_at":"2022-05-27T08:21:53.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.13.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.13.0/manifests"},{"name":"0.12.3","sha":"ce9bed7b45c3e693e0c7caef642b4cb40a3ac4a6","kind":"commit","published_at":"2022-05-27T05:20:06.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.12.3","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.12.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.12.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.12.3/manifests"},{"name":"0.12.2","sha":"7c7e35d8699a92807d9a870a7f6a6ae9b9d91254","kind":"commit","published_at":"2022-05-27T00:20:13.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.12.2","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.12.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.12.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.12.2/manifests"},{"name":"0.12.1","sha":"6e38bf7532c6d980aa5ff354d52af201172857c4","kind":"commit","published_at":"2022-05-16T18:09:42.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.12.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.12.1/manifests"},{"name":"0.12.0","sha":"fc1c25756a0b41ff68ce541c644456363cd1418b","kind":"commit","published_at":"2022-04-16T16:59:51.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.12.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.12.0/manifests"},{"name":"0.11.20","sha":"ae622117e1fcefdbb823eaf317f0732774d72b6c","kind":"commit","published_at":"2022-03-12T01:57:19.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.20","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.20","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.20","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.20/manifests"},{"name":"0.11.19","sha":"d706b1ec9fbac5e4f19df27637173e8c1da68eda","kind":"commit","published_at":"2022-02-08T17:14:52.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.19","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.19","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.19","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.19/manifests"},{"name":"0.11.18","sha":"eb8210e9ea5bbb1a9dc56fb5b200b3a6a4387903","kind":"commit","published_at":"2022-02-02T12:56:12.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.18","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.18","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.18/manifests"},{"name":"0.11.17","sha":"cf4b361b5c2796a46acb88bd30a2377fffe4d22f","kind":"commit","published_at":"2022-01-23T08:13:11.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.17","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.17","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.17","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.17/manifests"},{"name":"0.11.16","sha":"e2dcb199fc6da3c22aa5df4dd209721f1e71507e","kind":"commit","published_at":"2022-01-17T18:36:00.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.16","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.16/manifests"},{"name":"0.11.15","sha":"8486dd1f4dc5dc4c4e6d23bd6ed84170761d4376","kind":"commit","published_at":"2021-11-29T02:42:22.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.15","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.15/manifests"},{"name":"0.11.14","sha":"c01585036af05bc96f7f24e89c9b72ce60e7d057","kind":"commit","published_at":"2021-09-30T14:27:51.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.14","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.14/manifests"},{"name":"0.11.13","sha":"8901210c3811d2c9a98a28d7cfb03c51d2cf7d0e","kind":"commit","published_at":"2021-09-15T14:00:44.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.13","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.13/manifests"},{"name":"0.11.12","sha":"55eab4fb418555a2088f49346a4b0f212a823bb4","kind":"commit","published_at":"2021-08-27T16:05:08.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.12","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.12/manifests"},{"name":"0.11.11","sha":"02c147a7a7a742dc1920f05c4dffe126ba1e1656","kind":"commit","published_at":"2021-08-12T16:51:34.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.11","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.11/manifests"},{"name":"0.11.10","sha":"fd3ce204ca19f3f7e65f557b21b3c47b570decb1","kind":"commit","published_at":"2021-08-12T15:18:32.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.10","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.10/manifests"},{"name":"0.11.9","sha":"b782b5df6de4355070420d05ce88de15f6c21602","kind":"commit","published_at":"2021-07-31T09:51:34.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.9","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.9/manifests"},{"name":"0.11.8","sha":"824a6e1335614beb6e505b3236091303b7dc6377","kind":"commit","published_at":"2021-06-11T16:32:23.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.8","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.8/manifests"},{"name":"0.11.7","sha":"03959a43329dbdfc85c8ea050cc332a9c08dd0c3","kind":"commit","published_at":"2021-06-09T17:53:31.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.7","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.7/manifests"},{"name":"0.11.6","sha":"80bd7abaaafd6cb07cbfa41aa3a5a54d6d1c36a0","kind":"commit","published_at":"2021-05-28T15:42:05.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.6","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.6/manifests"},{"name":"0.2.11+backport-1","sha":"0886558b0cb45997e55059a5d0322303a2cdbc9b","kind":"commit","published_at":"2021-05-19T14:38:51.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.2.11+backport-1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.2.11+backport-1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.11+backport-1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.11+backport-1/manifests"},{"name":"0.11.5","sha":"79409270e7fa7589c798ba9cdb90ab56f74538f1","kind":"commit","published_at":"2021-05-16T16:15:17.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.5","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.5/manifests"},{"name":"0.11.4","sha":"af9f495334e3c9de0f333555f827c3bac7b657d3","kind":"commit","published_at":"2021-05-05T17:20:37.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.4","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.4/manifests"},{"name":"0.11.3","sha":"b370ec145175bfedfa6c9d45e0e1eb15d673445e","kind":"commit","published_at":"2021-04-29T16:58:17.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.3","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.3/manifests"},{"name":"0.11.2","sha":"d57b73895cf749118e93891e9bdf7070bede73fe","kind":"commit","published_at":"2021-04-26T17:34:03.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.2","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.2/manifests"},{"name":"0.11.1","sha":"1dd41dd62ddc8238b35a2dd430c0eb7d3d3abcc2","kind":"commit","published_at":"2021-04-22T17:58:38.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.1/manifests"},{"name":"0.11.0","sha":"6e18eca2f2814831705a8f7256cb6c440e12e53b","kind":"commit","published_at":"2021-04-20T17:28:59.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.11.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.11.0/manifests"},{"name":"0.10.3","sha":"5ccafec0d9e1efeb0651c7e5dcce017a6ecf6c58","kind":"commit","published_at":"2021-04-18T09:30:45.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.10.3","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.10.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.10.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.10.3/manifests"},{"name":"0.10.2","sha":"7fa641f9694afeac7dd5a6164df2e12270f580a4","kind":"commit","published_at":"2021-04-03T23:27:17.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.10.2","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.10.2/manifests"},{"name":"0.10.1","sha":"cba92a5efe5d7297e9d5525e639a97b4817c37ed","kind":"commit","published_at":"2021-03-31T15:49:03.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.10.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.10.1/manifests"},{"name":"0.10.0","sha":"f9c2179bedd805ec1e1b7e405adbc4debecbe31c","kind":"commit","published_at":"2021-03-26T18:54:36.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.10.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.10.0/manifests"},{"name":"0.9.4","sha":"d5bc50cb9d934ae5d40e8a5dd003224bdc7527de","kind":"commit","published_at":"2021-03-21T09:16:32.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.9.4","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.9.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.9.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.9.4/manifests"},{"name":"0.9.3","sha":"2e7545f728775d4a80fe5f8f4be8e461a0d3dae7","kind":"commit","published_at":"2021-03-18T05:39:07.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.9.3","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.9.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.9.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.9.3/manifests"},{"name":"0.9.2","sha":"86665b19c4e90ef62b28f8b341923a8cab5d597e","kind":"commit","published_at":"2021-03-11T03:24:38.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.9.2","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.9.2/manifests"},{"name":"0.9.1","sha":"81a72d1a37e02fb72634a615530ca9b0656b3c5a","kind":"commit","published_at":"2021-03-08T06:22:09.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.9.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.9.1/manifests"},{"name":"0.9.0","sha":"69e9c5c1c593c7fb1cb941b21e9200aa8c0acf69","kind":"commit","published_at":"2021-03-04T14:29:44.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.9.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.9.0/manifests"},{"name":"0.8.3","sha":"e85edd620286adec89906be65e954f6950c1d2f2","kind":"commit","published_at":"2021-02-25T14:35:35.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.8.3","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.8.3/manifests"},{"name":"0.8.2","sha":"3cad791559927f0419ebf0b741ba4a41bd49074a","kind":"commit","published_at":"2021-02-20T18:21:05.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.8.2","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.8.2/manifests"},{"name":"0.8.1","sha":"6f706f011ef4f77d22267e3d856893d983190314","kind":"commit","published_at":"2021-02-18T16:26:10.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.8.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.8.1/manifests"},{"name":"0.8.0","sha":"24c38e691c5c15ed396579743e1f765c2f8b90ba","kind":"commit","published_at":"2021-02-17T05:47:23.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.8.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.8.0/manifests"},{"name":"0.7.3","sha":"9842c538cad593f6e253713e3d40561873291d24","kind":"commit","published_at":"2021-02-16T04:06:20.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.7.3","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.7.3/manifests"},{"name":"0.7.2","sha":"1c3a842373108f54a2c170524189e919bf9cae91","kind":"commit","published_at":"2021-02-09T06:17:00.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.7.2","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.7.2/manifests"},{"name":"0.7.1","sha":"a016a08f9f5725072f9ed219e708c2369b6d3850","kind":"commit","published_at":"2021-02-05T19:51:34.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.7.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.7.1/manifests"},{"name":"0.7.0","sha":"c4a1852c28969762c1dc7c4607ece33a539f75aa","kind":"commit","published_at":"2021-01-31T16:59:47.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.7.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.7.0/manifests"},{"name":"0.6.26","sha":"f90e347e8ad0f9fa65c139228d379e730ec97bd5","kind":"commit","published_at":"2021-01-26T02:32:33.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.26","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.26","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.26","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.26/manifests"},{"name":"0.6.25","sha":"b0a636da3199fc42588b4a32b4aeb160af28a847","kind":"commit","published_at":"2021-01-24T15:57:41.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.25","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.25","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.25","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.25/manifests"},{"name":"0.6.24","sha":"4be430ab1dbe3736f0a33300af1831e36894c2c1","kind":"commit","published_at":"2021-01-23T09:46:56.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.24","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.24","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.24","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.24/manifests"},{"name":"0.6.23","sha":"f9b64e0a214d9ecbe583289c6e8d6752e1d9cbb4","kind":"commit","published_at":"2021-01-21T06:49:30.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.23","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.23","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.23","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.23/manifests"},{"name":"0.6.22","sha":"24ec6c70efcf69592a53390d1a7d7035fbbfd03f","kind":"commit","published_at":"2021-01-19T19:00:53.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.22","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.22","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.22","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.22/manifests"},{"name":"0.6.21","sha":"aa7ca9ade354d942f18477ae7000e5f3cb44c7da","kind":"commit","published_at":"2021-01-18T10:20:52.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.21","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.21","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.21","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.21/manifests"},{"name":"0.6.20","sha":"a6b8a70a419d5edd5bd4e295434cf3965ca302b4","kind":"commit","published_at":"2021-01-15T16:59:34.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.20","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.20","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.20","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.20/manifests"},{"name":"0.6.19","sha":"4c9d21544250e7abb560cbda4cfc53a9d4e2d422","kind":"commit","published_at":"2021-01-15T10:12:10.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.19","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.19","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.19","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.19/manifests"},{"name":"0.6.18","sha":"4b4f96a80a0dc47e908d1207f1775326c5c065c8","kind":"commit","published_at":"2021-01-08T15:32:04.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.18","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.18","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.18/manifests"},{"name":"0.6.17","sha":"ada9b19d4c51b22ac4d4a872794416ad71f329cd","kind":"commit","published_at":"2021-01-06T06:11:19.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.17","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.17","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.17","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.17/manifests"},{"name":"0.6.16","sha":"a9681712b7c40ef94154181db43840f06ccaca5b","kind":"commit","published_at":"2020-12-29T20:59:43.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.16","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.16/manifests"},{"name":"0.6.15","sha":"681ca87e7ee0c25a9e83dfe2a4cc9916083f1229","kind":"commit","published_at":"2020-12-28T10:10:09.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.15","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.15/manifests"},{"name":"0.6.14","sha":"93a008c4bc3c90cb16dd6d1e50566d8da0e58880","kind":"commit","published_at":"2020-12-27T15:58:02.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.14","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.14/manifests"},{"name":"0.6.13","sha":"8df715871860ae49fbbd47bbacc93e5a03126477","kind":"commit","published_at":"2020-12-25T09:17:43.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.13","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.13/manifests"},{"name":"0.6.12","sha":"dd3eaf38236d75eacd8fa7e075c5a03654d403b1","kind":"commit","published_at":"2020-12-24T09:59:53.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.12","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.12/manifests"},{"name":"0.6.11","sha":"e91ae4c6dc3fd6a1dfb561e1def2e681ec9ac2be","kind":"commit","published_at":"2020-12-17T06:46:20.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.11","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.11/manifests"},{"name":"0.6.10","sha":"70f3ed0adb3310235b8e87989034e30a00647976","kind":"commit","published_at":"2020-12-07T09:49:58.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.10","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.10/manifests"},{"name":"0.6.9","sha":"43bdc6239126769d27f1ecd54a624003f970d31c","kind":"commit","published_at":"2020-12-02T16:32:05.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.9","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.9/manifests"},{"name":"0.6.8","sha":"a1a1b92460df22c913f2204bf6140015659a9e4e","kind":"commit","published_at":"2020-11-29T16:48:34.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.8","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.8/manifests"},{"name":"0.6.7","sha":"4e4848fb9f03989599b2c8cc957dc30b4496afa3","kind":"commit","published_at":"2020-11-17T16:35:07.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.7","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.7/manifests"},{"name":"0.6.6","sha":"9111036025caa5abe9f8a72900ae49694ed677a7","kind":"commit","published_at":"2020-11-14T10:18:11.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.6","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.6/manifests"},{"name":"0.6.5","sha":"edfb52fb4112431e0874dd8c15b960b7e51dcda8","kind":"commit","published_at":"2020-11-12T09:40:47.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.5","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.5/manifests"},{"name":"0.6.4","sha":"f8d2e3114219a3e545385918e8f405c3fd656932","kind":"commit","published_at":"2020-11-11T01:52:13.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.4","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.4/manifests"},{"name":"0.6.3","sha":"a5400e36e41707c7da21a08f17c36756a1fc60d4","kind":"commit","published_at":"2020-11-09T20:16:38.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.3","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.3/manifests"},{"name":"0.6.2","sha":"bddf61aaaf98602530dde68028f6f5f4b77ee749","kind":"commit","published_at":"2020-11-05T03:18:15.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.2","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.2/manifests"},{"name":"0.6.1","sha":"6bf0a543db83e39cc154e33a3be521edbead4590","kind":"commit","published_at":"2020-11-01T17:05:19.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.1/manifests"},{"name":"0.6.0","sha":"b4a815702bcbd94977d86a6099d19280c3a113a0","kind":"commit","published_at":"2020-10-18T17:48:05.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.6.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.6.0/manifests"},{"name":"0.5.39","sha":"d3e92f7ab16e673fed6d5d7b1626735e4d47bdc1","kind":"commit","published_at":"2020-10-06T16:30:51.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.39","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.39","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.39","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.39/manifests"},{"name":"0.5.38","sha":"691e452235b6c3c64777aca4f352e748cdb7b4fa","kind":"commit","published_at":"2020-10-05T16:12:32.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.38","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.38","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.38","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.38/manifests"},{"name":"0.5.37","sha":"ddd909746a66df5c8268d782f3ae24bee636be92","kind":"commit","published_at":"2020-10-03T02:21:32.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.37","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.37","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.37","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.37/manifests"},{"name":"0.5.36","sha":"6777e88fe9a7232608518d3e722ef375342221cd","kind":"commit","published_at":"2020-10-02T18:15:25.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.36","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.36","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.36","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.36/manifests"},{"name":"0.5.35","sha":"bf2b2043fd7da3376dc6e38d2abf38e8e574ed96","kind":"commit","published_at":"2020-09-23T20:26:29.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.35","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.35","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.35","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.35/manifests"},{"name":"0.5.34","sha":"8780f278d1aebda5518811e3f3552a0b3ba61201","kind":"commit","published_at":"2020-09-19T16:07:35.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.34","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.34","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.34","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.34/manifests"},{"name":"0.5.33","sha":"c2bbfe9823f55a1210f1921db62f54170c707f0e","kind":"commit","published_at":"2020-09-17T19:04:11.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.33","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.33","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.33","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.33/manifests"},{"name":"0.5.32","sha":"7040ddc78f296ba093a704880a2bf98d51197e78","kind":"commit","published_at":"2020-09-16T19:21:46.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.32","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.32","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.32","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.32/manifests"},{"name":"0.5.31","sha":"52433e9985995fdffd95eb25eb7847954bc92d0a","kind":"commit","published_at":"2020-09-12T18:13:40.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.31","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.31","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.31","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.31/manifests"},{"name":"0.5.30","sha":"a4c8ea006eda48ffd9438ba48f5ee23a8ae6f804","kind":"commit","published_at":"2020-09-04T17:57:22.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.30","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.30","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.30","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.30/manifests"},{"name":"0.5.29","sha":"e9b6edfc2e2ace195cb465e2e980fb78c22c3fd9","kind":"commit","published_at":"2020-08-25T19:52:23.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.29","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.29","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.29","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.29/manifests"},{"name":"0.5.28","sha":"6e457d0172d2f42077028c1f71abf68fc2d4c235","kind":"commit","published_at":"2020-08-21T15:10:50.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.28","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.28","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.28","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.28/manifests"},{"name":"0.5.27","sha":"1438919e49f670416f6a07fe34f69847694ece74","kind":"commit","published_at":"2020-08-16T16:28:45.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.27","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.27","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.27","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.27/manifests"},{"name":"0.5.26","sha":"4a36f834525193118f5b6162748814e6b35a2339","kind":"commit","published_at":"2020-08-14T16:34:38.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.26","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.26","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.26","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.26/manifests"},{"name":"0.5.25","sha":"a065745463ccc68ce3066a5cf5ed8add425e0428","kind":"commit","published_at":"2020-08-13T14:54:58.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.25","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.25","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.25","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.25/manifests"},{"name":"0.5.24","sha":"1b8ae11db16864ab26d58030f1cd447111c09a79","kind":"commit","published_at":"2020-08-03T04:14:10.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.24","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.24","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.24","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.24/manifests"},{"name":"0.5.23","sha":"3e0522fdd72016386e555e888229c32064d80985","kind":"commit","published_at":"2020-08-02T16:27:15.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.23","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.23","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.23","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.23/manifests"},{"name":"0.5.22","sha":"e4671ce8cfb75d0c50a23d5044aa0b241607081b","kind":"commit","published_at":"2020-07-30T19:22:06.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.22","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.22","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.22","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.22/manifests"},{"name":"0.5.21","sha":"e415c15f2cbddcb0ba71c740b6e8fdf76b02d555","kind":"commit","published_at":"2020-07-30T17:06:37.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.21","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.21","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.21","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.21/manifests"},{"name":"0.5.20","sha":"f0060603bf5b64ddf29b49a2da1183cb1975faa1","kind":"commit","published_at":"2020-07-27T15:46:14.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.20","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.20","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.20","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.20/manifests"},{"name":"0.5.19","sha":"74e9139a1d74e186a61026c323c5ee9c66413e59","kind":"commit","published_at":"2020-07-24T15:52:08.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.19","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.19","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.19","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.19/manifests"},{"name":"0.5.18","sha":"77daf7de4b236304aef700be1f2f926c67e242a8","kind":"commit","published_at":"2020-07-23T14:58:46.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.18","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.18","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.18/manifests"},{"name":"0.5.17","sha":"368d8447f0da09fbbff01a91890f4b9c40561a23","kind":"commit","published_at":"2020-07-22T08:47:08.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.17","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.17","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.17","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.17/manifests"},{"name":"0.5.16","sha":"5066fa29a0c95fe46ea97072502f170d6abdef80","kind":"commit","published_at":"2020-07-19T18:48:35.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.16","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.16/manifests"},{"name":"0.5.15","sha":"ef64bb6b4753d7de2ffd395f04ba33e864c712fa","kind":"commit","published_at":"2020-07-19T10:16:58.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.15","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.15/manifests"},{"name":"0.5.14","sha":"7eee45b5ba3db77c56bb56cae24f1ab3f7c88076","kind":"commit","published_at":"2020-07-14T18:53:41.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.14","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.14/manifests"},{"name":"0.5.13","sha":"127739bffcfadabd96c3be5ca019417ff8d56bdf","kind":"commit","published_at":"2020-06-30T15:02:21.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.13","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.13/manifests"},{"name":"0.5.12","sha":"861553e5cb1cd87605ca2cc0231ec2059c6323bb","kind":"commit","published_at":"2020-06-29T02:32:53.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.12","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.12/manifests"},{"name":"0.5.11","sha":"ec21482860c65fed2a22223283aa2c386fc7faaa","kind":"commit","published_at":"2020-06-25T02:19:29.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.11","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.11/manifests"},{"name":"0.5.10","sha":"01e9e58e92e44c385133b80c01caa475548929cd","kind":"commit","published_at":"2020-06-20T15:40:25.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.10","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.10/manifests"},{"name":"0.5.9","sha":"2cc4d0d17ed5a1ed249c06bdc6d4d2dabbe34f71","kind":"commit","published_at":"2020-06-19T06:13:31.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.9","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.9/manifests"},{"name":"0.5.8","sha":"66309858d539e8d8cb8a2eb45896c270368ed15e","kind":"commit","published_at":"2020-06-17T06:13:19.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.8","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.8/manifests"},{"name":"0.5.7","sha":"462420a0712eda553f8725661e6755ae58833157","kind":"commit","published_at":"2020-06-14T09:33:09.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.7","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.7/manifests"},{"name":"0.5.6","sha":"4edf51f63a54a569aee25013b937d731b69f2e9c","kind":"commit","published_at":"2020-06-13T15:29:34.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.6","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.6/manifests"},{"name":"0.5.5","sha":"26cc2b460c8e9c731aab79c9c467b8f442e3a9ae","kind":"commit","published_at":"2020-06-12T02:49:07.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.5","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.5/manifests"},{"name":"0.5.4","sha":"af9df2e380b4d33f2e20e80ae96489ff95853f07","kind":"commit","published_at":"2020-06-11T16:43:24.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.4","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.4/manifests"},{"name":"0.5.3","sha":"762ac1b7257be5b30e2c133f9601a88f95520a32","kind":"commit","published_at":"2020-06-11T09:56:11.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.3","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.3/manifests"},{"name":"0.5.2","sha":"d647cd318bf2e0295d83732a5940dc89188f700f","kind":"commit","published_at":"2020-06-05T16:55:31.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.2","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.2/manifests"},{"name":"0.5.1","sha":"5420f30c1788cf23b73327a7139f5e38e687cf41","kind":"commit","published_at":"2020-06-05T04:51:39.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.1/manifests"},{"name":"0.5.0","sha":"6982fe9382774d5d2784ae98069a9164c414092e","kind":"commit","published_at":"2020-06-02T05:35:12.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.5.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.5.0/manifests"},{"name":"0.4.11","sha":"9bc322980ca33b33442370ae1284a239aa455316","kind":"commit","published_at":"2020-05-19T14:45:49.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.4.11","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.4.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.11/manifests"},{"name":"0.4.10","sha":"e979f13a2419c219d2cb4637986368c551c4e37e","kind":"commit","published_at":"2020-05-06T07:19:51.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.4.10","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.4.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.10/manifests"},{"name":"0.4.9","sha":"76043419f3a17fb0d0ff2ccf5cc624f2ea2bdab5","kind":"commit","published_at":"2020-04-22T15:12:32.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.4.9","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.4.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.9/manifests"},{"name":"0.4.8","sha":"6055368ace6ca616bd2bd2b398e63a2dd226813c","kind":"commit","published_at":"2020-04-18T18:01:15.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.4.8","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.4.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.8/manifests"},{"name":"0.4.7","sha":"9b665e86e58a6a7100ffa91d34e2a659ac13194d","kind":"commit","published_at":"2020-04-14T16:21:47.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.4.7","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.4.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.7/manifests"},{"name":"0.4.6","sha":"cf96232ea65fcd5336b499d2eed5d81b69cabdef","kind":"commit","published_at":"2020-04-06T18:09:25.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.4.6","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.4.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.6/manifests"},{"name":"0.4.5","sha":"834cdd354f9b6260226a2b14c5e2103f28008953","kind":"commit","published_at":"2020-04-05T17:09:49.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.4.5","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.5/manifests"},{"name":"0.4.4","sha":"bed6dea29f5df512d105add193d75949f4c2d185","kind":"commit","published_at":"2020-04-01T03:18:17.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.4.4","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.4/manifests"},{"name":"0.4.3","sha":"1c5fdaa1450c1e716c48e60cbd1356264024bf8b","kind":"commit","published_at":"2020-03-31T16:11:39.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.4.3","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.3/manifests"},{"name":"0.4.2","sha":"c0551c4b83f71958f098555a83145f437c482adb","kind":"commit","published_at":"2020-03-30T16:53:53.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.4.2","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.2/manifests"},{"name":"0.4.1","sha":"7e0dc0c740870fd64ed78d48c7d7fdb0682b8b19","kind":"commit","published_at":"2020-03-23T17:43:51.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.4.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.1/manifests"},{"name":"0.4.0","sha":"6529cd697eddb4208493a155d3a0bb7f77156903","kind":"commit","published_at":"2020-03-16T14:22:19.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.4.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.4.0/manifests"},{"name":"0.3.3","sha":"6ad759257b4a125d14c7e414aace9ad03d01d19a","kind":"commit","published_at":"2020-02-26T13:39:39.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.3.3","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.3.3/manifests"},{"name":"0.3.2","sha":"e596b40ef3f6889bd325d20807a35939ef6a3f96","kind":"commit","published_at":"2020-02-05T01:02:57.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.3.2","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.3.2/manifests"},{"name":"0.3.1","sha":"4d5135de802ae0dbbd95a08210d4ea0a80abdd86","kind":"commit","published_at":"2020-02-03T00:59:55.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.3.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.3.1/manifests"},{"name":"0.3.0","sha":"40b9f3521fb5905159641bf1a75ec594b2d93435","kind":"commit","published_at":"2020-01-09T16:47:26.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.3.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.3.0/manifests"},{"name":"0.2.16","sha":"2c9e777617b491f6637c0faba5a33cabb2f1e47b","kind":"commit","published_at":"2019-12-13T06:46:16.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.2.16","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.2.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.16/manifests"},{"name":"0.2.15","sha":"ad35e4cc58e994d932181028062e1759c917709f","kind":"commit","published_at":"2019-12-04T23:07:40.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.2.15","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.2.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.15/manifests"},{"name":"0.2.14","sha":"e375a32e09d6c94a18c0ac663c49244f14f53a4c","kind":"commit","published_at":"2019-11-25T00:58:55.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.2.14","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.2.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.14/manifests"},{"name":"0.2.13","sha":"0199de5931985ba3d05dc4bf3d636d43a3bd5d61","kind":"commit","published_at":"2019-11-22T07:23:37.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.2.13","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.2.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.13/manifests"},{"name":"0.2.12","sha":"a2dcffd1e30bc1ec5ba839914b990600f2b8c1d9","kind":"commit","published_at":"2019-11-04T04:24:27.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.2.12","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.2.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.12/manifests"},{"name":"0.2.11","sha":"cdcd01d1f602278f82e60be1dd21dc6199379767","kind":"commit","published_at":"2019-10-18T09:01:42.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.2.11","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.2.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.11/manifests"},{"name":"0.2.10","sha":"018e2d4dcc5400fd7e727dfb4aa69d70add22e6e","kind":"commit","published_at":"2019-10-18T02:58:23.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.2.10","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.2.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.10/manifests"},{"name":"0.2.9","sha":"b54c3d0992542c4635009cc423ccb9474d97f305","kind":"commit","published_at":"2019-10-17T17:36:58.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.2.9","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.2.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.9/manifests"},{"name":"0.2.8","sha":"5697b69056d932f815ce037b9be5f5bb1ad66a39","kind":"commit","published_at":"2019-10-16T00:51:59.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.2.8","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.2.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.8/manifests"},{"name":"0.2.7","sha":"30ae21357b337ddbf3f07193914b32a356200633","kind":"commit","published_at":"2019-10-15T11:49:24.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.2.7","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.2.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.7/manifests"},{"name":"0.2.6","sha":"f5b43a694e1ae5e8a3f1148f87e3e0d5e0c32abd","kind":"commit","published_at":"2019-10-10T13:04:34.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.2.6","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.6/manifests"},{"name":"0.2.5","sha":"06abed62492d3d53932f9fb432dd6b3870775c3b","kind":"commit","published_at":"2019-10-09T12:30:35.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.2.5","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.5/manifests"},{"name":"0.2.4","sha":"c211f466d08f1b4b828ed2037ade9cff5c6d7c69","kind":"commit","published_at":"2019-09-26T17:02:35.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.2.4","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.4/manifests"},{"name":"0.2.3","sha":"196b6c3d5151cfb122a30b4ab226f9c3647ed549","kind":"commit","published_at":"2019-09-13T19:05:47.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.2.3","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.3/manifests"},{"name":"0.2.2","sha":"2666433e6c5e050ae9a40b0672fb6370657c4773","kind":"commit","published_at":"2019-09-13T10:22:05.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.2.2","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.2/manifests"},{"name":"0.2.1","sha":"9dba5745bba51e19fb6be8784b9506559bb43177","kind":"commit","published_at":"2019-09-13T09:32:26.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.2.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.1/manifests"},{"name":"0.2.0","sha":"8fd5698bbdb375c091d64a5e20dd67af6914c3f8","kind":"commit","published_at":"2019-09-05T20:36:22.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.2.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.2.0/manifests"},{"name":"0.1.0","sha":"4eed7b29eddf1081a648f7451a05cdc791af3a99","kind":"commit","published_at":"2019-08-06T15:42:01.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.1.0","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.1.0/manifests"},{"name":"0.0.6","sha":"e3ba07884e98b174e71ad799b2819b9f228f8b05","kind":"commit","published_at":"2019-07-31T19:07:22.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.0.6","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.0.6/manifests"},{"name":"0.0.5","sha":"20ce8b2a683081c689f4d38ad69dbfc5bfe50ada","kind":"commit","published_at":"2019-07-26T09:06:29.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.0.5","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.0.5/manifests"},{"name":"0.0.4","sha":"a14de77fcc07ac5cb887bb23869dcb3ee05e5d05","kind":"commit","published_at":"2019-07-23T15:48:17.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.0.4","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.0.4/manifests"},{"name":"0.0.3","sha":"82e01fcc5b61c7c9c1f933bf2575bf60a343c21f","kind":"commit","published_at":"2019-07-23T14:26:49.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.0.3","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.0.3/manifests"},{"name":"0.0.1","sha":"71d00043279b72fd9c150ec8b519540fbe360f00","kind":"commit","published_at":"2019-07-23T12:27:13.000Z","download_url":"https://codeload.github.com/koxudaxi/datamodel-code-generator/tar.gz/0.0.1","html_url":"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koxudaxi%2Fdatamodel-code-generator/tags/0.0.1/manifests"}]},"repo_metadata_updated_at":"2024-09-07T17:03:09.924Z","dependent_packages_count":67,"downloads":7560167,"downloads_period":"last-month","dependent_repos_count":223,"rankings":{"downloads":0.4318542309483037,"dependent_repos_count":1.0157443331846654,"dependent_packages_count":0.348555154017562,"stargazers_count":1.6308670654853423,"forks_count":3.4992227018410524,"docker_downloads_count":1.9073822244766245,"average":1.472270951658925},"purl":"pkg:pypi/datamodel-code-generator","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/datamodel-code-generator","docker_dependents_count":15,"docker_downloads_count":3278,"usage_url":"https://repos.ecosyste.ms/usage/pypi/datamodel-code-generator","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/datamodel-code-generator/dependencies","status":null,"funding_links":["https://github.com/sponsors/koxudaxi","https://polar.sh/koxudaxi"],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/datamodel-code-generator/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/datamodel-code-generator/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/datamodel-code-generator/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/datamodel-code-generator/related_packages","maintainers":[{"uuid":"koxudaxi","login":"koxudaxi","name":null,"email":null,"url":null,"packages_count":7,"html_url":"https://pypi.org/user/koxudaxi/","role":null,"created_at":"2023-01-05T15:35:39.603Z","updated_at":"2023-01-05T15:35:39.603Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/koxudaxi/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690443,"maintainers_count":292827,"namespaces_count":0,"keywords_count":228590,"github":"pypi","metadata":{"funded_packages_count":48950},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-06T05:32:09.692Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},"unique_repositories_count":56,"unique_repositories_count_past_30_days":5,"recent_issues":[{"uuid":"4528230982","node_id":"PR_kwDOSn3wsM7fnM-p","number":5,"state":"open","title":"Bump the minor-update group with 145 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-26T23:33:44.000Z","updated_at":"2026-05-26T23:33:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":145,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.5.9","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"transformers","old_version":"5.5.3","new_version":"5.9.0","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"filelock","old_version":"3.16.1","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"alembic","old_version":"1.16.4","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.29.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.2.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.9","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.15","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.15","repository_url":"https://github.com/boto/botocore"},{"name":"click","old_version":"8.1.7","new_version":"8.4.1","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.10.6","new_version":"7.14.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.2.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.5.4","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.2.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.58.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.2","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.53.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.9.0","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.1","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.80.0"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"harfile","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.16.4","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.153.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.12.0","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.16","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librosa","old_version":"0.10.2.post1","new_version":"0.11.0","repository_url":"https://github.com/librosa/librosa"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.12.30","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.5.1.27"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.35"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.22.0.52"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.0.66"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.2.18"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.1.7"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.30.4"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.19.1","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.41.0","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.47.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.1","repository_url":"https://github.com/getsentry/responses"},{"name":"rpds-py","old_version":"0.20.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.17.1","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.5.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smart-open","old_version":"7.1.0","new_version":"7.6.1","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"structlog","old_version":"25.4.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.7.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.68.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.26.1","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.48.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.29.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xxhash","old_version":"3.5.0","new_version":"3.7.0","repository_url":"https://github.com/ifduyue/python-xxhash"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.2","repository_url":"https://github.com/aio-libs/yarl"},{"name":"tpu-inference","old_version":"0.19.0","new_version":"0.20.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"helion","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/pytorch/helion"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 145 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.5.9` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.9.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.136.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.25.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.13.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.29.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.42.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.42.1` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.4.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.18.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.13.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.6.3` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.29.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.2.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.9` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.15` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.15` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.4.1` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.14.1` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.2.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.5.4` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.2.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.58.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.30.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.2` | `2.53.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.6.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.10.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.9.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.1` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.80.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.4.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.5.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.16.4` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.15.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.153.0` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.16` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [librosa](https://github.com/librosa/librosa) | `0.10.2.post1` | `0.11.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.36.0` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.12.30` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.5.1.27` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.35` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.22.0.52` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.0.66` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.2.18` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.1.7` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.30.4` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.63b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.63b1` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.19.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.9.6` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.41.0` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.0` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.47.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.20.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.1` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.1` | `0.30.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.17.1` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.5.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.1.0` | `7.6.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.13.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.4.0` | `25.5.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.7.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.68.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.26.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.48.0` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.29.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.7.0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.5.0` | `3.7.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.2` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.19.0` | `0.20.0` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [helion](https://github.com/pytorch/helion) | `1.0.0` | `1.1.0` |\n\nUpdates `regex` from 2026.2.28 to 2026.5.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.5.9\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReverse matching with full unicode casefolding could lead to out-of-range string indexes.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eA fix for older Python versions before free-threading was  supported.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReplaced atomic operations with mutex on pattern object for free-threaded Python.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.26\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#598](https://github.com/mrabarnett/mrab-regex/issues/598): Fix race condition in storage caching with atomic operations.\n\u003cp\u003eReplaced use of PyUnicode_GET_LENGTH with PyUnicode_GetLength.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.2.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdded \\z as alias of \\Z, like in re module.\n\u003cp\u003eAdded prefixmatch as alias of match, like in re module.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.1.15\u003c/p\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.5.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.9.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eCohere2Moe\u003c/h3\u003e\n\u003cp\u003eCommand A+ is a Mixture-of-Experts (MoE) language model from Cohere that features a hybrid attention pattern combining sliding window and full attention layers. The model incorporates both shared and routed experts and supports a very large context window for processing extensive text sequences.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/cohere2_moe\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new cohere2_moe model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46115\"\u003e#46115\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/46115\"\u003e#46115\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eParakeet tdt (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44171\"\u003e#44171\u003c/a\u003e)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eParakeet tdt (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44171\"\u003e#44171\u003c/a\u003e) by \u003ca href=\"https://github.com/lmaksym\"\u003e\u003ccode\u003e@​lmaksym\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eHRM-Text\u003c/h3\u003e\n\u003cp\u003eHRM-Text is an improved autoregressive language-modeling variant of the Hierarchical Reasoning Model (HRM) that uses a hierarchical recurrent forward pass with two transformer stacks - one for slow, abstract planning (H) and one for fast, detailed computation (L) - reused inside a nested recurrence. It features PrefixLM attention where instruction tokens attend bidirectionally while response tokens attend causally, per-head sigmoid output gates, and parameterless RMSNorm. The model is designed as a base language model without instruction tuning or chat templates.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/hrm_text\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/papers/2506.21734\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd hrm text (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46025\"\u003e#46025\u003c/a\u003e) by \u003ca href=\"https://github.com/abcd1927\"\u003e\u003ccode\u003e@​abcd1927\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/46025\"\u003e#46025\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking changes\u003c/h2\u003e\n\u003cp\u003eThe \u003ccode\u003etext_embeds\u003c/code\u003e input for SAM3, EdgeTAM, and SAM3-Lite-Text models now expects full text embeddings instead of just pooler outputs, aligning with other models in the library — users must update their inputs accordingly.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e🚨Fix memory leaks caused by lru decorators in vision models (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45922\"\u003e#45922\u003c/a\u003e) by \u003ca href=\"https://github.com/yonigozlan\"\u003e\u003ccode\u003e@​yonigozlan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAudio\u003c/h2\u003e\n\u003cp\u003eAudio support was expanded with the addition of AudioFlamingoNext model checkpoints and improved compilability of audio/vision encoders via standalone pure functions. Additional improvements include better error messaging when loading audio from video files and new documentation for audio/video processors.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003euser friendly error when loading audio from video (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45221\"\u003e#45221\u003c/a\u003e) by \u003ca href=\"https://github.com/eustlb\"\u003e\u003ccode\u003e@​eustlb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45221\"\u003e#45221\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] adding audio/video processors (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45795\"\u003e#45795\u003c/a\u003e) by \u003ca href=\"https://github.com/stevhliu\"\u003e\u003ccode\u003e@​stevhliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45795\"\u003e#45795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Audio Flamingo Next checkpoints (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44830\"\u003e#44830\u003c/a\u003e) by \u003ca href=\"https://github.com/lashahub\"\u003e\u003ccode\u003e@​lashahub\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44830\"\u003e#44830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtract dynamic vision/audio tensors into standalone pure functions (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45396\"\u003e#45396\u003c/a\u003e) by \u003ca href=\"https://github.com/IlyasMoutawwakil\"\u003e\u003ccode\u003e@​IlyasMoutawwakil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45396\"\u003e#45396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGeneration\u003c/h2\u003e\n\u003cp\u003eFixed generation issues including \u003ccode\u003einputs_embeds\u003c/code\u003e and \u003ccode\u003eper_layer_inputs\u003c/code\u003e handling for Gemma4, an \u003ccode\u003eAttributeError\u003c/code\u003e in RAG's \u003ccode\u003egenerate()\u003c/code\u003e caused by missing config fields, and flaky VLM generation tests by blocking special image tokens during sampling.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Gemma4 generation from inputs_embeds and per_layer_inputs (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46049\"\u003e#46049\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46049\"\u003e#46049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AttributeError in RAG generate() for missing config fields (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46035\"\u003e#46035\u003c/a\u003e) by \u003ca href=\"https://github.com/Sriniketh24\"\u003e\u003ccode\u003e@​Sriniketh24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46035\"\u003e#46035\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0a2757da521a7a49b8143d9e0c938f08747d682e\"\u003e\u003ccode\u003e0a2757d\u003c/code\u003e\u003c/a\u003e release v5.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/e370a7f3f49c3c759cf8c7c01a935ce0e00c3f44\"\u003e\u003ccode\u003ee370a7f\u003c/code\u003e\u003c/a\u003e fix cohere2 tp_plan for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f59ffd1ef95634f9b0317ec5d8d43d71e3604a10\"\u003e\u003ccode\u003ef59ffd1\u003c/code\u003e\u003c/a\u003e Add new cohere2_moe model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46115\"\u003e#46115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4f41f261efcfd71ce08db2890b7c632cc9ffc0bc\"\u003e\u003ccode\u003e4f41f26\u003c/code\u003e\u003c/a\u003e [loading] Free up tensors faster inside ConversionOps (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46110\"\u003e#46110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d5dd7eed2f7d5b2ccba569e150647ef275e56365\"\u003e\u003ccode\u003ed5dd7ee\u003c/code\u003e\u003c/a\u003e Fix post processing RF-DETR (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46041\"\u003e#46041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0b25f8c49c37530ce9f8742d7a8c19ed8d254d7d\"\u003e\u003ccode\u003e0b25f8c\u003c/code\u003e\u003c/a\u003e [serve] Support for reasoning  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45690\"\u003e#45690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0df9b7fcaab447c75543598e6d959065c2296a24\"\u003e\u003ccode\u003e0df9b7f\u003c/code\u003e\u003c/a\u003e Fix Gemma4 generation from inputs_embeds and per_layer_inputs (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46049\"\u003e#46049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/38a8b55f22d593c103e8bcc616413e70a5ef03ca\"\u003e\u003ccode\u003e38a8b55\u003c/code\u003e\u003c/a\u003e Parakeet tdt (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44171\"\u003e#44171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/3428030a179620b01cb598928b6cc7d5e5e60990\"\u003e\u003ccode\u003e3428030\u003c/code\u003e\u003c/a\u003e Remove mask visualization tool from \u003ccode\u003emasking_utils.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46066\"\u003e#46066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/dda06506142a0efe4081a0ab574fbd3c7c72dc37\"\u003e\u003ccode\u003edda0650\u003c/code\u003e\u003c/a\u003e user friendly error when loading audio from video (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45221\"\u003e#45221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.128.0 to 0.136.3\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.3\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (the default). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15589\"\u003e#15589\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.136.2\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Validate Server Sent Event fields to avoid applications from sending broken data. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15588\"\u003e#15588\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15464\"\u003e#15464\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 and simplify docs about help and management. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15583\"\u003e#15583\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 docs references to central contributing docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15580\"\u003e#15580\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 security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15577\"\u003e#15577\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: TalorData image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15562\"\u003e#15562\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, simplify usage of admonitions, only default ones. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15553\"\u003e#15553\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📝 Fix image URLs in \u003ccode\u003eindex.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15534\"\u003e#15534\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Fix Azkaban spelling typo in \u003ccode\u003evirtual-environments.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15463\"\u003e#15463\u003c/a\u003e by \u003ca href=\"https://github.com/isaacbernat\"\u003e\u003ccode\u003e@​isaacbernat\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Improve layout and styling. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15462\"\u003e#15462\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Refactor opinions section with interactive tabs and new logos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15458\"\u003e#15458\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add FastAPI Conf '26 announcement to docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15457\"\u003e#15457\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Improve translation consistency in \u003ccode\u003e‎docs/pt/docs/advanced/generate-clients.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15456\"\u003e#15456\u003c/a\u003e by \u003ca href=\"https://github.com/Will-thom\"\u003e\u003ccode\u003e@​Will-thom\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15530\"\u003e#15530\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 translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15529\"\u003e#15529\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 translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15528\"\u003e#15528\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 translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15527\"\u003e#15527\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 translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15526\"\u003e#15526\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 translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15525\"\u003e#15525\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 translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15524\"\u003e#15524\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 translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15522\"\u003e#15522\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 translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15523\"\u003e#15523\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 translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15520\"\u003e#15520\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 translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15521\"\u003e#15521\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🌐 Fix typos in Spanish LLM-prompt. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15472\"\u003e#15472\u003c/a\u003e by \u003ca href=\"https://github.com/crr004\"\u003e\u003ccode\u003e@​crr004\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 tests, don't double dispose the engine. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15587\"\u003e#15587\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⚡️ Speed up test suite via caching and fixture scopes to make it ~24% faster. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13583\"\u003e#13583\u003c/a\u003e by \u003ca href=\"https://github.com/dikos1337\"\u003e\u003ccode\u003e@​dikos1337\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15585\"\u003e#15585\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⬆ Bump urllib3 from 2.6.3 to 2.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15502\"\u003e#15502\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 idna from 3.11 to 3.15. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15565\"\u003e#15565\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.15.0 to 4.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15571\"\u003e#15571\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🔧 Migrate docs from MkDocs to Zensical. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15563\"\u003e#15563\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🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15548\"\u003e#15548\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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/82064857539e6286522c347b4b11331b48dd2378\"\u003e\u003ccode\u003e8206485\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c910e0139f983d0e04e2d1d235cd71803afeae34\"\u003e\u003ccode\u003ec910e01\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/063b5bf582d31fb155cc6bc6f88cf512329d0fd5\"\u003e\u003ccode\u003e063b5bf\u003c/code\u003e\u003c/a\u003e ♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/22b02e26f9e8c7e32bd8266e2b0ebe8bb3a0db2b\"\u003e\u003ccode\u003e22b02e2\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3b252a2a22ba27a8ab83d6bde7d9cddbc5bf738e\"\u003e\u003ccode\u003e3b252a2\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c7fb7851b3389f24c51701d705458989be53ccbb\"\u003e\u003ccode\u003ec7fb785\u003c/code\u003e\u003c/a\u003e ♻️ Validate Server Sent Event fields to avoid applications from sending broke...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cb83b83dcf78eab4ea17d504db5abcda705fbdc4\"\u003e\u003ccode\u003ecb83b83\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/00f805cec94c0bf48c1f9a563535a3ab2e6f90ab\"\u003e\u003ccode\u003e00f805c\u003c/code\u003e\u003c/a\u003e ✅ Update tests, don't double dispose the engine (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15587\"\u003e#15587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3675137523dc167981aa3a3c44599b4f3079ccd8\"\u003e\u003ccode\u003e3675137\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7b57e42986bb4d40c9eb6580537d13fb8e76097e\"\u003e\u003ccode\u003e7b57e42\u003c/code\u003e\u003c/a\u003e 📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15464\"\u003e#15464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.0...0.136.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.0 to 2.13.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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.0...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Django] Pass correct registry to MultiProcessCollector by \u003ca href=\"https://github.com/jelly\"\u003e\u003ccode\u003e@​jelly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1152\"\u003eprometheus/client_python#1152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an AIOHTTP exporter by \u003ca href=\"https://github.com/Lexicality\"\u003e\u003ccode\u003e@​Lexicality\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1139\"\u003eprometheus/client_python#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd remove_matching() method for metric label deletion by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1121\"\u003eprometheus/client_python#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(multiprocess): avoid double-building child metric names (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1035\"\u003e#1035\u003c/a\u003e) by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1146\"\u003eprometheus/client_python#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't interleave histogram metrics in multi-process collector by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1148\"\u003eprometheus/client_python#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax registry type annotations for exposition by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1149\"\u003eprometheus/client_python#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded compression support in pushgateway by \u003ca href=\"https://github.com/ritesh-avesha\"\u003e\u003ccode\u003e@​ritesh-avesha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1144\"\u003eprometheus/client_python#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) by \u003ca href=\"https://github.com/Chadys\"\u003e\u003ccode\u003e@​Chadys\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1143\"\u003eprometheus/client_python#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code...\n\n_Description has been truncated_","html_url":"https://github.com/kingcharlezz/deepseek-v4-flash-deterministic-vllm/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingcharlezz%2Fdeepseek-v4-flash-deterministic-vllm/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"},{"uuid":"4518555179","node_id":"PR_kwDOG7OTWc7fHw7n","number":251,"state":"closed","title":"Bump datamodel-code-generator from 0.56.1 to 0.58.0","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-26T00:24:28.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-25T17:28:17.000Z","updated_at":"2026-05-26T00:24:37.000Z","time_to_close":24971,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"datamodel-code-generator","old_version":"0.56.1","new_version":"0.58.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) from 0.56.1 to 0.58.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.58.0\u003c/h2\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e--serialization-aliases\u003c/code\u003e for Pydantic v2 serialization alias mapping. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e--openapi-include-info-version\u003c/code\u003e to emit \u003ccode\u003eOPENAPI_INFO_VERSION\u003c/code\u003e from OpenAPI \u003ccode\u003einfo.version\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3176\"\u003e#3176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e--use-object-type\u003c/code\u003e to generate \u003ccode\u003eobject\u003c/code\u003e instead of \u003ccode\u003eAny\u003c/code\u003e for unspecified JSON Schema object and array values. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3177\"\u003e#3177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicate validation aliases are now deduplicated in generated Pydantic v2 \u003ccode\u003eAliasChoices\u003c/code\u003e - Fields that previously generated duplicate entries such as \u003ccode\u003eAliasChoices('endDate', 'end_date', 'endDate')\u003c/code\u003e now generate each alias once. Runtime behavior is equivalent, but exact generated output changes. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJSON Schema edge-case fixes change generated output for affected schemas - Schema-valued \u003ccode\u003eadditionalProperties\u003c/code\u003e/\u003ccode\u003eunevaluatedProperties\u003c/code\u003e, \u003ccode\u003econst: null\u003c/code\u003e, complex enum values, all-false \u003ccode\u003epatternProperties\u003c/code\u003e, non-string \u003ccode\u003epropertyNames\u003c/code\u003e, boolean array item schemas, \u003ccode\u003econtains\u003c/code\u003e, \u003ccode\u003eminProperties\u003c/code\u003e/\u003ccode\u003emaxProperties\u003c/code\u003e, and enum references through \u003ccode\u003eallOf\u003c/code\u003e now generate more accurate annotations or constraints. Users with snapshots or exact-output checks may see diffs. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDuplicate TypedDict import fix changes generated output - Mixed closed/open TypedDict generation no longer imports \u003ccode\u003eTypedDict\u003c/code\u003e from both \u003ccode\u003etyping\u003c/code\u003e and \u003ccode\u003etyping_extensions\u003c/code\u003e; \u003ccode\u003eTypedDict\u003c/code\u003e is kept only where required. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3155\"\u003e#3155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSchema-derived payload fixes change generated output for affected schemas - Forward-referenced dict key unions, indirect \u003ccode\u003e$ref\u003c/code\u003e types in \u003ccode\u003eallOf\u003c/code\u003e, \u003ccode\u003eadditionalProperties\u003c/code\u003e with \u003ccode\u003e$ref\u003c/code\u003e, heterogeneous root constraints, and unresolved discriminator fields now generate more valid types/fields. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3168\"\u003e#3168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrimitive \u003ccode\u003eallOf\u003c/code\u003e schemas now generate root-style payload types - Primitive-only \u003ccode\u003eallOf\u003c/code\u003e and top-level \u003ccode\u003eallOf\u003c/code\u003e combined with \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e now generate \u003ccode\u003eRootModel\u003c/code\u003e/root payload types instead of empty or object-like models. Code instantiating the previous generated classes may need updates. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3169\"\u003e#3169\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3171\"\u003e#3171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDiscriminator literal generation changed for some enum mappings - Discriminator mappings now use the resolved literal values for enum-backed mappings, including non-string values where applicable. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3074\"\u003e#3074\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3170\"\u003e#3170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultipleOf\u003c/code\u003e intersections in \u003ccode\u003eallOf\u003c/code\u003e now use the least common multiple - For example, \u003ccode\u003emultipleOf: 5\u003c/code\u003e combined with \u003ccode\u003emultipleOf: 10\u003c/code\u003e now generates \u003ccode\u003emultiple_of=10\u003c/code\u003e instead of incorrectly keeping the first value. Decimal multiples are handled similarly. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3172\"\u003e#3172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSchema metadata fields are now preserved automatically - \u003ccode\u003econtentEncoding\u003c/code\u003e, \u003ccode\u003econtentMediaType\u003c/code\u003e, \u003ccode\u003econtentSchema\u003c/code\u003e, \u003ccode\u003eexternalDocs\u003c/code\u003e, and \u003ccode\u003exml\u003c/code\u003e are included in generated \u003ccode\u003ejson_schema_extra\u003c/code\u003e when present in the input schema, even without \u003ccode\u003e--model-extra-keys\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3175\"\u003e#3175\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--output-datetime-class\u003c/code\u003e now rejects incompatible TypedDict and Dataclass output combinations - Pydantic-specific datetime classes with \u003ccode\u003etyping.TypedDict\u003c/code\u003e, and incompatible dataclass API usage, now raise errors instead of silently producing fallback output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3155\"\u003e#3155\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3169\"\u003e#3169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBoolean \u003ccode\u003efalse\u003c/code\u003e inside \u003ccode\u003eallOf\u003c/code\u003e now raises \u003ccode\u003eSchemaParseError\u003c/code\u003e - Unsatisfiable \u003ccode\u003eallOf\u003c/code\u003e branches are reported instead of generating incorrect models. \u003ccode\u003efalse\u003c/code\u003e branches in \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e are filtered where appropriate. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3168\"\u003e#3168\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCreate changelog updates through PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3138\"\u003ekoxudaxi/datamodel-code-generator#3138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual changelog update trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3139\"\u003ekoxudaxi/datamodel-code-generator#3139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CHANGELOG for 0.57.0 by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3140\"\u003ekoxudaxi/datamodel-code-generator#3140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize changelog release body spacing by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3141\"\u003ekoxudaxi/datamodel-code-generator#3141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix duplicate changelog prepend by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3143\"\u003ekoxudaxi/datamodel-code-generator#3143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CHANGELOG for 0.57.0 by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3144\"\u003ekoxudaxi/datamodel-code-generator#3144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd serialization aliases by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3146\"\u003ekoxudaxi/datamodel-code-generator#3146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3148\"\u003ekoxudaxi/datamodel-code-generator#3148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd generation dependency index by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3154\"\u003ekoxudaxi/datamodel-code-generator#3154\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument boundary payload typing by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3162\"\u003ekoxudaxi/datamodel-code-generator#3162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3163\"\u003ekoxudaxi/datamodel-code-generator#3163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3164\"\u003ekoxudaxi/datamodel-code-generator#3164\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove code generation performance by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3166\"\u003ekoxudaxi/datamodel-code-generator#3166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMap OpenAPI Discriminator mapping's values to their real value in enums  by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3074\"\u003ekoxudaxi/datamodel-code-generator#3074\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix JSON Schema edge-case generation by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3167\"\u003ekoxudaxi/datamodel-code-generator#3167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(TypedDict): Issue with DateTime options not being used in the output, and duplicate TypedDict imports by \u003ca href=\"https://github.com/richinfante\"\u003e\u003ccode\u003e@​richinfante\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3155\"\u003ekoxudaxi/datamodel-code-generator#3155\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd schema-derived payload validation tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3168\"\u003ekoxudaxi/datamodel-code-generator#3168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix msgspec enum discriminator tag by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3170\"\u003ekoxudaxi/datamodel-code-generator#3170\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix top-level allOf oneOf schema by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3171\"\u003ekoxudaxi/datamodel-code-generator#3171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix primitive allOf payload types by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3169\"\u003ekoxudaxi/datamodel-code-generator#3169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix allOf multipleOf intersection by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3172\"\u003ekoxudaxi/datamodel-code-generator#3172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlign schema feature support status by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3174\"\u003ekoxudaxi/datamodel-code-generator#3174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport additional JSON Schema string formats by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3173\"\u003ekoxudaxi/datamodel-code-generator#3173\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI info version constant by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3176\"\u003ekoxudaxi/datamodel-code-generator#3176\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve schema metadata extras by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3175\"\u003ekoxudaxi/datamodel-code-generator#3175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3180\"\u003ekoxudaxi/datamodel-code-generator#3180\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.58.0\"\u003e0.58.0\u003c/a\u003e - 2026-05-25\u003c/h2\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e--serialization-aliases\u003c/code\u003e for Pydantic v2 serialization alias mapping. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e--openapi-include-info-version\u003c/code\u003e to emit \u003ccode\u003eOPENAPI_INFO_VERSION\u003c/code\u003e from OpenAPI \u003ccode\u003einfo.version\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3176\"\u003e#3176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e--use-object-type\u003c/code\u003e to generate \u003ccode\u003eobject\u003c/code\u003e instead of \u003ccode\u003eAny\u003c/code\u003e for unspecified JSON Schema object and array values. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3177\"\u003e#3177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicate validation aliases are now deduplicated in generated Pydantic v2 \u003ccode\u003eAliasChoices\u003c/code\u003e - Fields that previously generated duplicate entries such as \u003ccode\u003eAliasChoices('endDate', 'end_date', 'endDate')\u003c/code\u003e now generate each alias once. Runtime behavior is equivalent, but exact generated output changes. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJSON Schema edge-case fixes change generated output for affected schemas - Schema-valued \u003ccode\u003eadditionalProperties\u003c/code\u003e/\u003ccode\u003eunevaluatedProperties\u003c/code\u003e, \u003ccode\u003econst: null\u003c/code\u003e, complex enum values, all-false \u003ccode\u003epatternProperties\u003c/code\u003e, non-string \u003ccode\u003epropertyNames\u003c/code\u003e, boolean array item schemas, \u003ccode\u003econtains\u003c/code\u003e, \u003ccode\u003eminProperties\u003c/code\u003e/\u003ccode\u003emaxProperties\u003c/code\u003e, and enum references through \u003ccode\u003eallOf\u003c/code\u003e now generate more accurate annotations or constraints. Users with snapshots or exact-output checks may see diffs. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDuplicate TypedDict import fix changes generated output - Mixed closed/open TypedDict generation no longer imports \u003ccode\u003eTypedDict\u003c/code\u003e from both \u003ccode\u003etyping\u003c/code\u003e and \u003ccode\u003etyping_extensions\u003c/code\u003e; \u003ccode\u003eTypedDict\u003c/code\u003e is kept only where required. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3155\"\u003e#3155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSchema-derived payload fixes change generated output for affected schemas - Forward-referenced dict key unions, indirect \u003ccode\u003e$ref\u003c/code\u003e types in \u003ccode\u003eallOf\u003c/code\u003e, \u003ccode\u003eadditionalProperties\u003c/code\u003e with \u003ccode\u003e$ref\u003c/code\u003e, heterogeneous root constraints, and unresolved discriminator fields now generate more valid types/fields. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3168\"\u003e#3168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrimitive \u003ccode\u003eallOf\u003c/code\u003e schemas now generate root-style payload types - Primitive-only \u003ccode\u003eallOf\u003c/code\u003e and top-level \u003ccode\u003eallOf\u003c/code\u003e combined with \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e now generate \u003ccode\u003eRootModel\u003c/code\u003e/root payload types instead of empty or object-like models. Code instantiating the previous generated classes may need updates. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3169\"\u003e#3169\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3171\"\u003e#3171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDiscriminator literal generation changed for some enum mappings - Discriminator mappings now use the resolved literal values for enum-backed mappings, including non-string values where applicable. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3074\"\u003e#3074\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3170\"\u003e#3170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultipleOf\u003c/code\u003e intersections in \u003ccode\u003eallOf\u003c/code\u003e now use the least common multiple - For example, \u003ccode\u003emultipleOf: 5\u003c/code\u003e combined with \u003ccode\u003emultipleOf: 10\u003c/code\u003e now generates \u003ccode\u003emultiple_of=10\u003c/code\u003e instead of incorrectly keeping the first value. Decimal multiples are handled similarly. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3172\"\u003e#3172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSchema metadata fields are now preserved automatically - \u003ccode\u003econtentEncoding\u003c/code\u003e, \u003ccode\u003econtentMediaType\u003c/code\u003e, \u003ccode\u003econtentSchema\u003c/code\u003e, \u003ccode\u003eexternalDocs\u003c/code\u003e, and \u003ccode\u003exml\u003c/code\u003e are included in generated \u003ccode\u003ejson_schema_extra\u003c/code\u003e when present in the input schema, even without \u003ccode\u003e--model-extra-keys\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3175\"\u003e#3175\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--output-datetime-class\u003c/code\u003e now rejects incompatible TypedDict and Dataclass output combinations - Pydantic-specific datetime classes with \u003ccode\u003etyping.TypedDict\u003c/code\u003e, and incompatible dataclass API usage, now raise errors instead of silently producing fallback output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3155\"\u003e#3155\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3169\"\u003e#3169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBoolean \u003ccode\u003efalse\u003c/code\u003e inside \u003ccode\u003eallOf\u003c/code\u003e now raises \u003ccode\u003eSchemaParseError\u003c/code\u003e - Unsatisfiable \u003ccode\u003eallOf\u003c/code\u003e branches are reported instead of generating incorrect models. \u003ccode\u003efalse\u003c/code\u003e branches in \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e are filtered where appropriate. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3168\"\u003e#3168\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCreate changelog updates through PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3138\"\u003ekoxudaxi/datamodel-code-generator#3138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual changelog update trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3139\"\u003ekoxudaxi/datamodel-code-generator#3139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CHANGELOG for 0.57.0 by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3140\"\u003ekoxudaxi/datamodel-code-generator#3140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize changelog release body spacing by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3141\"\u003ekoxudaxi/datamodel-code-generator#3141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix duplicate changelog prepend by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3143\"\u003ekoxudaxi/datamodel-code-generator#3143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CHANGELOG for 0.57.0 by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3144\"\u003ekoxudaxi/datamodel-code-generator#3144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd serialization aliases by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3146\"\u003ekoxudaxi/datamodel-code-generator#3146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3148\"\u003ekoxudaxi/datamodel-code-generator#3148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd generation dependency index by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3154\"\u003ekoxudaxi/datamodel-code-generator#3154\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument boundary payload typing by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3162\"\u003ekoxudaxi/datamodel-code-generator#3162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3163\"\u003ekoxudaxi/datamodel-code-generator#3163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3164\"\u003ekoxudaxi/datamodel-code-generator#3164\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove code generation performance by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3166\"\u003ekoxudaxi/datamodel-code-generator#3166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMap OpenAPI Discriminator mapping's values to their real value in enums  by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3074\"\u003ekoxudaxi/datamodel-code-generator#3074\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix JSON Schema edge-case generation by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3167\"\u003ekoxudaxi/datamodel-code-generator#3167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(TypedDict): Issue with DateTime options not being used in the output, and duplicate TypedDict imports by \u003ca href=\"https://github.com/richinfante\"\u003e\u003ccode\u003e@​richinfante\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3155\"\u003ekoxudaxi/datamodel-code-generator#3155\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd schema-derived payload validation tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3168\"\u003ekoxudaxi/datamodel-code-generator#3168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix msgspec enum discriminator tag by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3170\"\u003ekoxudaxi/datamodel-code-generator#3170\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix top-level allOf oneOf schema by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3171\"\u003ekoxudaxi/datamodel-code-generator#3171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix primitive allOf payload types by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3169\"\u003ekoxudaxi/datamodel-code-generator#3169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix allOf multipleOf intersection by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3172\"\u003ekoxudaxi/datamodel-code-generator#3172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlign schema feature support status by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3174\"\u003ekoxudaxi/datamodel-code-generator#3174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport additional JSON Schema string formats by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3173\"\u003ekoxudaxi/datamodel-code-generator#3173\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI info version constant by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3176\"\u003ekoxudaxi/datamodel-code-generator#3176\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve schema metadata extras by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3175\"\u003ekoxudaxi/datamodel-code-generator#3175\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/e48b29c38127dfd83ec55c66bf2cdb312fbb351d\"\u003e\u003ccode\u003ee48b29c\u003c/code\u003e\u003c/a\u003e Guard release draft analysis diff (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3184\"\u003e#3184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/011f391a2bb45d14620ebad82a8ad45f0dd3018c\"\u003e\u003ccode\u003e011f391\u003c/code\u003e\u003c/a\u003e docs: sync generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3181\"\u003e#3181\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b7f411486125894cc54e33509123f1b91a31795c\"\u003e\u003ccode\u003eb7f4114\u003c/code\u003e\u003c/a\u003e Add object type option (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3177\"\u003e#3177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/0635a8095ff71ca2fe11fbb085f58c02d4a50891\"\u003e\u003ccode\u003e0635a80\u003c/code\u003e\u003c/a\u003e docs: sync generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3180\"\u003e#3180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f75db82e1fa290a7af57a0703dcea44cab29622e\"\u003e\u003ccode\u003ef75db82\u003c/code\u003e\u003c/a\u003e Preserve schema metadata extras (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3175\"\u003e#3175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/4316b7e17317a2c4013238106426463d70618b1b\"\u003e\u003ccode\u003e4316b7e\u003c/code\u003e\u003c/a\u003e Add OpenAPI info version constant (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3176\"\u003e#3176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/1f94ca98fad084d4628093e612dc2b29759a1e6f\"\u003e\u003ccode\u003e1f94ca9\u003c/code\u003e\u003c/a\u003e Support additional JSON Schema string formats (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3173\"\u003e#3173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/1588bb734cd7c0b70cbf3e268e6443d9961b08fa\"\u003e\u003ccode\u003e1588bb7\u003c/code\u003e\u003c/a\u003e Align schema feature support status (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3174\"\u003e#3174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/c8640903abffcd1679a42d4b03f7de2b8660277c\"\u003e\u003ccode\u003ec864090\u003c/code\u003e\u003c/a\u003e Fix allOf multipleOf intersection (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3172\"\u003e#3172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/ed08cfcb035cf2bbb822d0dc7748107a142f16a5\"\u003e\u003ccode\u003eed08cfc\u003c/code\u003e\u003c/a\u003e Fix primitive allOf payload types (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3169\"\u003e#3169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.58.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=datamodel-code-generator\u0026package-manager=uv\u0026previous-version=0.56.1\u0026new-version=0.58.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/yu-iskw/dbt-artifacts-parser/pull/251","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/yu-iskw%2Fdbt-artifacts-parser/issues/251","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/251/packages"},{"uuid":"4476682648","node_id":"PR_kwDOR0tLLM7dB9Hg","number":59,"state":"open","title":"chore(deps): bump the python-non-major group across 1 directory with 28 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-19T10:45:11.000Z","updated_at":"2026-05-19T10:51:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-non-major","update_count":28,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"requests","old_version":"2.32.5","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"lxml","old_version":"6.0.4","new_version":"6.1.1","repository_url":"https://github.com/lxml/lxml"},{"name":"ruff","old_version":"0.14.8","new_version":"0.15.13","repository_url":"https://github.com/astral-sh/ruff"},{"name":"datamodel-code-generator","old_version":"0.45.0","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"presidio-analyzer","old_version":"2.2.361","new_version":"2.2.362","repository_url":"https://github.com/Microsoft/presidio"},{"name":"spacy","old_version":"3.8.11","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"},{"name":"torch","old_version":"2.10.0","new_version":"2.12.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"onnxruntime","old_version":"1.24.2","new_version":"1.26.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"pillow","old_version":"12.1.1","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"datasketch","old_version":"1.9.0","new_version":"1.10.0","repository_url":"https://github.com/ekzhu/datasketch"},{"name":"sentence-transformers","old_version":"5.2.3","new_version":"5.5.0","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"datasets","old_version":"4.6.0","new_version":"4.8.5","repository_url":"https://github.com/huggingface/datasets"},{"name":"gliner2","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/fastino-ai/GLiNER2"},{"name":"chardet","old_version":"7.4.2","new_version":"7.4.3","repository_url":"https://github.com/chardet/chardet"},{"name":"docling","old_version":"2.93.0","new_version":"2.94.0","repository_url":"https://github.com/docling-project/docling"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pymysql","old_version":"1.1.2","new_version":"1.2.0","repository_url":"https://github.com/PyMySQL/PyMySQL"},{"name":"databricks-sql-connector","old_version":"4.2.5","new_version":"4.2.6","repository_url":"https://github.com/databricks/databricks-sql-python"},{"name":"snowflake-connector-python","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/snowflakedb/snowflake-connector-python"},{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"boto3","old_version":"1.42.56","new_version":"1.43.10","repository_url":"https://github.com/boto/boto3"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.29.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"google-cloud-storage","old_version":"3.9.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"opentelemetry-sdk","old_version":"1.41.0","new_version":"1.42.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-non-major group with 27 updates in the /apps/cli directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.4` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.34.2` |\n| [lxml](https://github.com/lxml/lxml) | `6.0.4` | `6.1.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.15.13` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.45.0` | `0.57.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [presidio-analyzer](https://github.com/Microsoft/presidio) | `2.2.361` | `2.2.362` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.11` | `3.8.14` |\n| [torch](https://github.com/pytorch/pytorch) | `2.10.0` | `2.12.0` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.24.2` | `1.26.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.1.1` | `12.2.0` |\n| [datasketch](https://github.com/ekzhu/datasketch) | `1.9.0` | `1.10.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.3` | `5.5.0` |\n| [datasets](https://github.com/huggingface/datasets) | `4.6.0` | `4.8.5` |\n| [gliner2](https://github.com/fastino-ai/GLiNER2) | `1.3.0` | `1.3.1` |\n| [chardet](https://github.com/chardet/chardet) | `7.4.2` | `7.4.3` |\n| [docling](https://github.com/docling-project/docling) | `2.93.0` | `2.94.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [pymysql](https://github.com/PyMySQL/PyMySQL) | `1.1.2` | `1.2.0` |\n| [databricks-sql-connector](https://github.com/databricks/databricks-sql-python) | `4.2.5` | `4.2.6` |\n| [snowflake-connector-python](https://github.com/snowflakedb/snowflake-connector-python) | `4.3.0` | `4.5.0` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.16.0` | `4.17.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.56` | `1.43.10` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.29.0` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.9.0` | `3.10.1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.41.0` | `1.42.0` |\n\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 `requests` from 2.32.5 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml` from 6.0.4 to 6.1.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lxml/lxml/blob/master/CHANGES.txt\"\u003elxml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e6.1.1 (2026-05-18)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe known link attributes in \u003ccode\u003elxml.html.defs.link_attrs\u003c/code\u003e were missing \u003ccode\u003exlink:href\u003c/code\u003e,\nwhich can be used for URL bypass attacks in embedded SVG/MathML/etc. content.\n\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/security/advisories/GHSA-4jhm-jv67-739f\"\u003ehttps://github.com/fedora-python/lxml_html_clean/security/advisories/GHSA-4jhm-jv67-739f\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe Linux wheels use a patched libxslt 1.1.43, fixing CVE-2025-7424 and CVE-2025-11731.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe Windows wheels use libxslt 1.1.45, fixing CVE-2025-7424 and CVE-2025-11731.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e6.1.0 (2026-04-17)\u003c/h1\u003e\n\u003cp\u003eThis release fixes a possible external entity injection (XXE) vulnerability in\n\u003ccode\u003eiterparse()\u003c/code\u003e and the \u003ccode\u003eETCompatXMLParser\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eGH#486: The HTML ARIA accessibility attributes were added to the set of safe attributes\nin \u003ccode\u003elxml.html.defs\u003c/code\u003e.  This allows \u003ccode\u003elxml_html_clean\u003c/code\u003e to pass them through.\nPatch by oomsveta.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default chunk size for reading from file-likes in \u003ccode\u003eiterparse()\u003c/code\u003e is now configurable\nwith a new \u003ccode\u003echunk_size\u003c/code\u003e argument.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLP#2146291: The \u003ccode\u003eresolve_entities\u003c/code\u003e option was still set to \u003ccode\u003eTrue\u003c/code\u003e for\n\u003ccode\u003eiterparse\u003c/code\u003e and \u003ccode\u003eETCompatXMLParser\u003c/code\u003e, allowing for external entity injection (XXE)\nwhen using these parsers without setting this option explicitly.\nThe default was now changed to \u003ccode\u003e'internal'\u003c/code\u003e only (as for the normal XML and HTML parsers\nsince lxml 5.0).\nIssue found by Sihao Qiu as CVE-2026-41066.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/b4a4c595fb875d6f50ae113449834209a364643a\"\u003e\u003ccode\u003eb4a4c59\u003c/code\u003e\u003c/a\u003e Build: Fix build in Py3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/a116dcbe671a792dd65bc73f53a8209e7d7c25ff\"\u003e\u003ccode\u003ea116dcb\u003c/code\u003e\u003c/a\u003e Fix typo: type annotions -\u0026gt; type annotations in PEP 560 comments (\u003ca href=\"https://redirect.github.com/lxml/lxml/issues/504\"\u003eGH-504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/7287a75eedc4cdc247a7937d09013e936c34ace6\"\u003e\u003ccode\u003e7287a75\u003c/code\u003e\u003c/a\u003e Prepare release of 6.1.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/5927a6d5e851845140975d99b65461e255caaab0\"\u003e\u003ccode\u003e5927a6d\u003c/code\u003e\u003c/a\u003e Add missing \u0026quot;xlink:href\u0026quot; to the known HTML link attributes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/23efeb4910e43e9545b754ce1f138d91ed5cc25c\"\u003e\u003ccode\u003e23efeb4\u003c/code\u003e\u003c/a\u003e Build: Fix build in Py3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/2c0563b3e8c272e62667c7850612347f65d2952e\"\u003e\u003ccode\u003e2c0563b\u003c/code\u003e\u003c/a\u003e Build: Add bug patch for libxslt 1.1.43 and apply it during the static librar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/8a35fcc3ed53975c762867c3ac8ae318c7960be7\"\u003e\u003ccode\u003e8a35fcc\u003c/code\u003e\u003c/a\u003e Fix doctest in PyPy3.9.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/43722f4402afa48b7890a96ce012eb0b9b1af5be\"\u003e\u003ccode\u003e43722f4\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/87470409b17188a5a7dbefcfa124af9cd792ffaa\"\u003e\u003ccode\u003e8747040\u003c/code\u003e\u003c/a\u003e Name version of option change in docstring.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/6c36e6cef77db5087a1fff1a0d1ca8fed963afe7\"\u003e\u003ccode\u003e6c36e6c\u003c/code\u003e\u003c/a\u003e Fix pypistats URL in download statistics script.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lxml/lxml/compare/lxml-6.0.4...lxml-6.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.8 to 0.15.13\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.13\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a rule to flag lazy imports that are eagerly evaluated (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25016\"\u003e#25016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Standardize diagnostic message (\u003ccode\u003ePLR0914\u003c/code\u003e, \u003ccode\u003ePLR0917\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24996\"\u003e#24996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eF811\u003c/code\u003e false positive for class methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24933\"\u003e#24933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix setting selection for multi-folder workspace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24819\"\u003e#24819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix false positive for lines with leading whitespace (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25122\"\u003e#25122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix false positive for f-string debug specifier (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24098\"\u003e#24098\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways include panic payload in panic diagnostic message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24873\"\u003e#24873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict \u003ccode\u003ePYI034\u003c/code\u003e for in-place operations to enclosing class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24511\"\u003e#24511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for parameters that are declared \u003ccode\u003eglobal\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24902\"\u003e#24902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known stdlib (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25103\"\u003e#25103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd TOML examples to \u003ccode\u003e--config\u003c/code\u003e help text (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25013\"\u003e#25013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eColorize ruff check 'All checks passed' (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25085\"\u003e#25085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease max allowed value of \u003ccode\u003eline-length\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24962\"\u003e#24962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eD203\u003c/code\u003e to rules that conflict with the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25044\"\u003e#25044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eCOM819\u003c/code\u003e and formatter interaction (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25045\"\u003e#25045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify that \u003ccode\u003eNotImplemented\u003c/code\u003e is a value, not an exception (\u003ccode\u003eF901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25054\"\u003e#25054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate number of lint rules supported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24942\"\u003e#24942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify the playground's markdown template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24924\"\u003e#24924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\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/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.13\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a rule to flag lazy imports that are eagerly evaluated (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25016\"\u003e#25016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Standardize diagnostic message (\u003ccode\u003ePLR0914\u003c/code\u003e, \u003ccode\u003ePLR0917\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24996\"\u003e#24996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eF811\u003c/code\u003e false positive for class methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24933\"\u003e#24933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix setting selection for multi-folder workspace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24819\"\u003e#24819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix false positive for lines with leading whitespace (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25122\"\u003e#25122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix false positive for f-string debug specifier (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24098\"\u003e#24098\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways include panic payload in panic diagnostic message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24873\"\u003e#24873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict \u003ccode\u003ePYI034\u003c/code\u003e for in-place operations to enclosing class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24511\"\u003e#24511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for parameters that are declared \u003ccode\u003eglobal\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24902\"\u003e#24902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known stdlib (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25103\"\u003e#25103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd TOML examples to \u003ccode\u003e--config\u003c/code\u003e help text (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25013\"\u003e#25013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eColorize ruff check 'All checks passed' (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25085\"\u003e#25085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease max allowed value of \u003ccode\u003eline-length\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24962\"\u003e#24962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eD203\u003c/code\u003e to rules that conflict with the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25044\"\u003e#25044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eCOM819\u003c/code\u003e and formatter interaction (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25045\"\u003e#25045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify that \u003ccode\u003eNotImplemented\u003c/code\u003e is a value, not an exception (\u003ccode\u003eF901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25054\"\u003e#25054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate number of lint rules supported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24942\"\u003e#24942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify the playground's markdown template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24924\"\u003e#24924\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/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2afb467ce397e4a89c13a0a814c62cfecb0e9e49\"\u003e\u003ccode\u003e2afb467\u003c/code\u003e\u003c/a\u003e Bump 0.15.13 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25157\"\u003e#25157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/300879600fa3af7cde1e675c63de6ad9d0797d1b\"\u003e\u003ccode\u003e3008796\u003c/code\u003e\u003c/a\u003e [ty] classify TypeVar semantic tokens as type parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24891\"\u003e#24891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/79470e31877acb6074f3bbff2a49e508822ae4e8\"\u003e\u003ccode\u003e79470e3\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2522549901d50f18775999f0fb802b19229417f0\"\u003e\u003ccode\u003e2522549\u003c/code\u003e\u003c/a\u003e Remove shellcheck from prek (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25154\"\u003e#25154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7db7170020f539d6d2bc01dbd0b0c09fab91dc06\"\u003e\u003ccode\u003e7db7170\u003c/code\u003e\u003c/a\u003e [ty] Support TypedDict key completions in incomplete, anonymous contexts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25\"\u003e#25\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb3dd535f1c5a83e2e56ac93a771fadbeeceebd0\"\u003e\u003ccode\u003ebb3dd53\u003c/code\u003e\u003c/a\u003e [ty] Run full iteration analysis on narrowed typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25143\"\u003e#25143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/828cdb7732efcb16a53f4ee5f011cf653b834d1a\"\u003e\u003ccode\u003e828cdb7\u003c/code\u003e\u003c/a\u003e [ty] Isolate file-watching test environment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25151\"\u003e#25151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/89e1d8670ea4d3af60c8143ee552dc750200718d\"\u003e\u003ccode\u003e89e1d86\u003c/code\u003e\u003c/a\u003e [ty] Preserve TypedDict keys through dict unpacking (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24523\"\u003e#24523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/86f3064d6fffa5697d174f26b840bd6857b381da\"\u003e\u003ccode\u003e86f3064\u003c/code\u003e\u003c/a\u003e [ty] Avoid accessing \u003ccode\u003eargs[0]\u003c/code\u003e for \u003ccode\u003estatic_assert\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25149\"\u003e#25149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed819f947dc27e36eac8bb3134153c4668d76a3a\"\u003e\u003ccode\u003eed819f9\u003c/code\u003e\u003c/a\u003e [ty] Treat custom enum \u003ccode\u003e__new__\u003c/code\u003e values as dynamic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25136\"\u003e#25136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.8...0.15.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.45.0 to 0.57.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.57.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.57.0\"\u003e0.57.0\u003c/a\u003e - 2026-05-07\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow generated prompt snapshot updates by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3134\"\u003ekoxudaxi/datamodel-code-generator#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite generated prompt snapshots directly by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3135\"\u003ekoxudaxi/datamodel-code-generator#3135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve tox python preference for generated docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3136\"\u003ekoxudaxi/datamodel-code-generator#3136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d0aa6ab9912603a5e8b7c78ff62a1893078542d4\"\u003e\u003ccode\u003ed0aa6ab\u003c/code\u003e\u003c/a\u003e docs: sync generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7bd643f3dacdd9f09093bc06a61b0eef49319451\"\u003e\u003ccode\u003e7bd643f\u003c/code\u003e\u003c/a\u003e Preserve tox python preference for generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/64f218a5711dfde954e50eb6b50c47b254fd35b4\"\u003e\u003ccode\u003e64f218a\u003c/code\u003e\u003c/a\u003e Write generated prompt snapshots directly (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3135\"\u003e#3135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/a7d1e9c47a8603ffd7668264a4e8fe02553d0f90\"\u003e\u003ccode\u003ea7d1e9c\u003c/code\u003e\u003c/a\u003e Allow generated prompt snapshot updates (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/9210c193922c52949e288e8f68e195d56acd34b4\"\u003e\u003ccode\u003e9210c19\u003c/code\u003e\u003c/a\u003e Propagate enum member descriptions for anyOf const pattern (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3133\"\u003e#3133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/928ba552f4190f0b4c2390d135dcbbb6048ddfc3\"\u003e\u003ccode\u003e928ba55\u003c/code\u003e\u003c/a\u003e Use source tree for generated prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3132\"\u003e#3132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b59971413184e9151882cb0b5906acbf3b3f4df8\"\u003e\u003ccode\u003eb599714\u003c/code\u003e\u003c/a\u003e Add manual generated docs sync trigger (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/93f2bce292f82fde15fe7ad8d4e0eeb2c7fdbb12\"\u003e\u003ccode\u003e93f2bce\u003c/code\u003e\u003c/a\u003e Fix generated docs sync prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/919f191f896af8bf62d7aafe9e19a98cf9a05efc\"\u003e\u003ccode\u003e919f191\u003c/code\u003e\u003c/a\u003e Fix serialization alias choices (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3126\"\u003e#3126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/90b0729b303be4246e4ce9babf825d0e4170b9f7\"\u003e\u003ccode\u003e90b0729\u003c/code\u003e\u003c/a\u003e Fix snake case array discriminator (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3125\"\u003e#3125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.45.0...0.57.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\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\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `presidio-analyzer` from 2.2.361 to 2.2.362\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Microsoft/presidio/releases\"\u003epresidio-analyzer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2.2.362\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - GPU Device Control via Environment Variable by \u003ca href=\"https://github.com/RonShakutai\"\u003e\u003ccode\u003e@​RonShakutai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1844\"\u003emicrosoft/presidio#1844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add HuggingFaceNerRecognizer for direct NER model inference by \u003ca href=\"https://github.com/ultramancode\"\u003e\u003ccode\u003e@​ultramancode\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1834\"\u003emicrosoft/presidio#1834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Broken Links by \u003ca href=\"https://github.com/andyjessen\"\u003e\u003ccode\u003e@​andyjessen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1856\"\u003emicrosoft/presidio#1856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin dependencies to mitigate supply chain attacks by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1861\"\u003emicrosoft/presidio#1861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2024-47874 and CVE-2025-54121 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1860\"\u003emicrosoft/presidio#1860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2025-2953 and CVE-2025-3730 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1859\"\u003emicrosoft/presidio#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fixed context enhancement substring matching bug  by \u003ca href=\"https://github.com/ravi-jindal\"\u003e\u003ccode\u003e@​ravi-jindal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1827\"\u003emicrosoft/presidio#1827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix _process_names unconditionally treating all metadata as PHI by \u003ca href=\"https://github.com/Mr-Neutr0n\"\u003e\u003ccode\u003e@​Mr-Neutr0n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1855\"\u003emicrosoft/presidio#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add UK Postcode (UK_POSTCODE) recognizer by \u003ca href=\"https://github.com/tee-jagz\"\u003e\u003ccode\u003e@​tee-jagz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1858\"\u003emicrosoft/presidio#1858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin ruff and build pip installs by hash for OSSF scorecard compliance by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1864\"\u003emicrosoft/presidio#1864\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd US NPI (National Provider Identifier) recognizer by \u003ca href=\"https://github.com/stevenelliottjr\"\u003e\u003ccode\u003e@​stevenelliottjr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1847\"\u003emicrosoft/presidio#1847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd transformer-based MedicalNERRecognizer for clinical entity detection by \u003ca href=\"https://github.com/stevenelliottjr\"\u003e\u003ccode\u003e@​stevenelliottjr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1853\"\u003emicrosoft/presidio#1853\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add Nigeria recognizers (National Identity Number and Vehicle Registration) by \u003ca href=\"https://github.com/tee-jagz\"\u003e\u003ccode\u003e@​tee-jagz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1863\"\u003emicrosoft/presidio#1863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix validation_result type in api docs and type hint by \u003ca href=\"https://github.com/akios-ai\"\u003e\u003ccode\u003e@​akios-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1869\"\u003emicrosoft/presidio#1869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 6.0.0 to 6.2.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/microsoft/presidio/pull/1879\"\u003emicrosoft/presidio#1879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3.32.3 to 4.32.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1878\"\u003emicrosoft/presidio#1878\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/dependency-review-action from 3.1.5 to 4.8.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1877\"\u003emicrosoft/presidio#1877\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump microsoft/security-devops-action from 1.11.0 to 1.12.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/microsoft/presidio/pull/1876\"\u003emicrosoft/presidio#1876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/github-script from 7.0.1 to 8.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/microsoft/presidio/pull/1875\"\u003emicrosoft/presidio#1875\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump azure/login from 2.1.1 to 2.3.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1874\"\u003emicrosoft/presidio#1874\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump docker/setup-buildx-action from 3.7.1 to 3.12.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/microsoft/presidio/pull/1873\"\u003emicrosoft/presidio#1873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/cache from 4.2.0 to 5.0.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1872\"\u003emicrosoft...\n\n_Description has been truncated_","html_url":"https://github.com/classifyre-com/classifyre/pull/59","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/classifyre-com%2Fclassifyre/issues/59","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/59/packages"},{"uuid":"4452313204","node_id":"PR_kwDOI7xefs7b1Vf9","number":42717,"state":"open","title":"Bump the minor-update group across 1 directory with 143 updates","user":"dependabot[bot]","labels":["rocm","ci/build","nvidia","dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-15T08:01:08.000Z","updated_at":"2026-05-20T05:01:30.742Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":143,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.5.9","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"transformers","old_version":"5.5.3","new_version":"5.8.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"filelock","old_version":"3.16.1","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"alembic","old_version":"1.16.4","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.29.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.2.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.9","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.10","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.10","repository_url":"https://github.com/boto/botocore"},{"name":"click","old_version":"8.1.7","new_version":"8.4.0","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.10.6","new_version":"7.14.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.2.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.5.4","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.2.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.1","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.53.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.9.0","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.80.0"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"harfile","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.15.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.152.8","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.12.0","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.15","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librosa","old_version":"0.10.2.post1","new_version":"0.11.0","repository_url":"https://github.com/librosa/librosa"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.12.30","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.4.1.1"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.2.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.2.75"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.22.0.52"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.2.0.46"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.17.1.22"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.0.1"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.7.10.1"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.30.4"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.2.75"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.19.1","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.40.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.46.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.0","repository_url":"https://github.com/getsentry/responses"},{"name":"rpds-py","old_version":"0.20.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.17.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"safetensors","old_version":"0.4.5","new_version":"0.7.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.5.0","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smart-open","old_version":"7.1.0","new_version":"7.6.1","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"structlog","old_version":"25.4.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.7.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.68.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.25.1","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.47.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.29.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xxhash","old_version":"3.5.0","new_version":"3.7.0","repository_url":"https://github.com/ifduyue/python-xxhash"},{"name":"yarl","old_version":"1.17.1","new_version":"1.23.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 143 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.5.9` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.8.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.136.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.25.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.13.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.29.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.4.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.18.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.13.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.6.3` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.29.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.2.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.9` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.10` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.10` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.4.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.14.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.2.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.5.4` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.2.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.57.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.1` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.30.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.2` | `2.53.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.6.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.10.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.9.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.80.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.4.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.5.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.15.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.15.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.152.8` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.15` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [librosa](https://github.com/librosa/librosa) | `0.10.2.post1` | `0.11.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.36.0` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.12.30` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.4.1.1` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.2.75` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.22.0.52` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.2.0.46` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.17.1.22` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.0.1` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.7.10.1` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.30.4` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.19.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.9.6` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.40.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.0` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.46.4` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.20.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.1` | `0.30.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.17.0` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.4.5` | `0.7.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.5.0` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.1.0` | `7.6.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.13.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.4.0` | `25.5.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.7.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.68.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.25.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.47.0` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.29.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.7.0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.5.0` | `3.7.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.23.0` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.5.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.5.9\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReverse matching with full unicode casefolding could lead to out-of-range string indexes.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eA fix for older Python versions before free-threading was  supported.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReplaced atomic operations with mutex on pattern object for free-threaded Python.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.26\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#598](https://github.com/mrabarnett/mrab-regex/issues/598): Fix race condition in storage caching with atomic operations.\n\u003cp\u003eReplaced use of PyUnicode_GET_LENGTH with PyUnicode_GetLength.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.2.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdded \\z as alias of \\Z, like in re module.\n\u003cp\u003eAdded prefixmatch as alias of match, like in re module.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.1.15\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/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.5.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePatch release v5.8.1\u003c/h1\u003e\n\u003cp\u003eThis release is mainly to fix the Deepseek V4 integration!!!\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[fix] Add fatal_error to ContinuousBatchingManager so the serving... by \u003ca href=\"https://github.com/qgallouedec\"\u003e\u003ccode\u003e@​qgallouedec\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/remi-or\"\u003e\u003ccode\u003e@​remi-or\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix WeightConverter regex incorrectly matching shared_experts as experts by \u003ca href=\"https://github.com/silencelamb\"\u003e\u003ccode\u003e@​silencelamb\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deepseek v4 by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45892\"\u003e#45892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeepseek v4 csa mask collapse by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Sawyer117\"\u003e\u003ccode\u003e@​Sawyer117\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45928\"\u003e#45928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.8.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.8.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eDeepSeek-V4\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eDeepSeek-V4 is the next-generation MoE (Mixture of Experts) language model from DeepSeek that introduces several architectural innovations over DeepSeek-V3. The architecture replaces Multi-head Latent Attention (MLA) with a hybrid local + long-range attention design, swaps residual connections for Manifold-Constrained Hyper-Connections (mHC), and bootstraps the first few MoE layers with a static token-id → expert-id hash table. This implementation covers DeepSeek-V4-Flash, DeepSeek-V4-Pro, and their -Base pretrained variants, which share the same architecture but differ in width, depth, expert count and weights.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/deepseek_v4\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash/blob/main/DeepSeek_V4.pdf\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd DeepSeek V4 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45643\"\u003e#45643\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45643\"\u003e#45643\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGemma 4 Assistant\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eGemma 4 Assistant is a small, text-only model that enables speculative decoding for Gemma 4 models using the Multi-Token Prediction (MTP) method and associated candidate generator. The model shares the same Gemma4TextModel backbone as other Gemma 4 models but uses KV sharing throughout the entire model, allowing it to reuse the KV cache populated by the target model and skip the pre-fill phase entirely. This architecture includes cross-attention to make the most of the target model's context, allowing the assistant to accurately predict more drafted tokens per drafting round.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/gemma4_assistant\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFirst model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45788\"\u003e#45788\u003c/a\u003e) by \u003ca href=\"https://github.com/SindhuRaghuram97\"\u003e\u003ccode\u003e@​SindhuRaghuram97\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45788\"\u003e#45788\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeechPlus\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eGranite Speech Plus is a variant of Granite Speech that enhances the projector by consuming the concatenation of the encoder's final hidden states with an arbitrary subset of its intermediate hidden states along the feature dimension. It is a multimodal speech-to-text model that can transcribe audio, provide speaker annotation and word level timestamps by responding to text prompts. The model inherits the same architecture components as Granite Speech including the speech encoder, query transformer projector, language model, and optional LoRA adapter.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granite_speech_plus\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for a new Granite-Speech-Plus model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45695\"\u003e#45695\u003c/a\u003e) by \u003ca href=\"https://github.com/zvik\"\u003e\u003ccode\u003e@​zvik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45695\"\u003e#45695\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGranite4Vision\u003c/h3\u003e\n\u003cp\u003eGranite Vision 4.1 is a vision-language model from IBM Research designed for enterprise-grade document data extraction. It specializes in chart extraction (Chart2CSV, Chart2Summary, Chart2Code), table extraction (JSON, HTML, OTSL), and semantic key-value pair extraction. The model builds on LLaVA-NeXT with architectural innovations including SigLIP2 Vision Encoder, Window Q-Former Projectors, and DeepStack Feature Injection with 8 vision-to-LLM injection points.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granite4_vision\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Granite 4.1 Vision (granite4_vision) (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45597\"\u003e#45597\u003c/a\u003e) by \u003ca href=\"https://github.com/artem-spector\"\u003e\u003ccode\u003e@​artem-spector\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45597\"\u003e#45597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cc832f9055ba11c8c55f918ab4bda9472b910d48\"\u003e\u003ccode\u003ecc832f9\u003c/code\u003e\u003c/a\u003e up\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f966d7b36278c7ca15967af062c4556f8bf4eea4\"\u003e\u003ccode\u003ef966d7b\u003c/code\u003e\u003c/a\u003e Deepseek v4 csa mask collapse (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45928\"\u003e#45928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/283f3f08614c0ee09e0bdc60d57dbc4d8d37af39\"\u003e\u003ccode\u003e283f3f0\u003c/code\u003e\u003c/a\u003e Fix deepseek v4 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45892\"\u003e#45892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4e0be9c4c5f2edb62f2e28c28c4149d3b84a3ae0\"\u003e\u003ccode\u003e4e0be9c\u003c/code\u003e\u003c/a\u003e Fix WeightConverter regex incorrectly matching shared_experts as experts in D...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/ec852625706cbe9a1264949659dad82b43fafa57\"\u003e\u003ccode\u003eec85262\u003c/code\u003e\u003c/a\u003e [fix] Add \u003ccode\u003efatal_error\u003c/code\u003e to \u003ccode\u003eContinuousBatchingManager\u003c/code\u003e so the serving layer c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/049d2bf1220747b6d39e2a978b9f5fe0defa1dca\"\u003e\u003ccode\u003e049d2bf\u003c/code\u003e\u003c/a\u003e v5.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/2871cafffb3b221b5f1df7e59033a15a7830309f\"\u003e\u003ccode\u003e2871caf\u003c/code\u003e\u003c/a\u003e Add Granite 4.1 Vision (granite4_vision) (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45597\"\u003e#45597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/aaec1092d413d0ea7249101ea43f74b5d6d60936\"\u003e\u003ccode\u003eaaec109\u003c/code\u003e\u003c/a\u003e fix: correct spelling in continuous_api docstring (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45749\"\u003e#45749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/7050d0e0bf5a97c7c0149c319681601373621eae\"\u003e\u003ccode\u003e7050d0e\u003c/code\u003e\u003c/a\u003e Fix link to modular transformers documentation (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45746\"\u003e#45746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/df2f2b539902c78db6a0f71fb2c175880e390576\"\u003e\u003ccode\u003edf2f2b5\u003c/code\u003e\u003c/a\u003e Gemma4: fix failed test cases (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45568\"\u003e#45568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.128.0 to 0.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.128.0...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.12.0 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.0...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Django] Pass correct registry to MultiProcessCollector by \u003ca href=\"https://github.com/jelly\"\u003e\u003ccode\u003e@​jelly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1152\"\u003eprometheus/client_python#1152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an AIOHTTP exporter by \u003ca href=\"https://github.com/Lexicality\"\u003e\u003ccode\u003e@​Lexicality\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1139\"\u003eprometheus/client_python#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd remove_matching() method for metric label deletion by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1121\"\u003eprometheus/client_python#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(multiprocess): avoid double-building child metric names (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1035\"\u003e#1035\u003c/a\u003e) by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1146\"\u003eprometheus/client_python#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't interleave histogram metrics in multi-process collector by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1148\"\u003eprometheus/client_python#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax registry type annotations for exposition by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1149\"\u003eprometheus/client_python#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded compression support in pushgateway by \u003ca href=\"https://github.com/ritesh-avesha\"\u003e\u003ccode\u003e@​ritesh-avesha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1144\"\u003eprometheus/client_python#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) by \u003ca href=\"https://github.com/Chadys\"\u003e\u003ccode\u003e@​Chadys\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1143\"\u003eprometheus/client_python#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1134\"\u003eprometheus/client_python#1134\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003c...\n\n_Description has been truncated_","html_url":"https://github.com/vllm-project/vllm/pull/42717","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vllm-project%2Fvllm/issues/42717","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/42717/packages"},{"uuid":"4444547034","node_id":"PR_kwDOAgUK287bcm4T","number":66922,"state":"closed","title":"Bump the pip-dependency-updates group across 3 directories with 2 updates","user":"dependabot[bot]","labels":["python","area:task-sdk","dependencies","area:airflow-ctl","backport-to-airflow-ctl/v0-1-test"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-26T23:02:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-14T08:51:16.000Z","updated_at":"2026-05-26T23:02:52.000Z","time_to_close":1087894,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-dependency-updates","update_count":2,"packages":[{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [aiosqlite](https://github.com/omnilib/aiosqlite) and [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) to permit the latest version.\nUpdates `aiosqlite` to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.1\u003c/h2\u003e\n\u003cp\u003eBug fix release\u003c/p\u003e\n\u003cp\u003eNOTE: Starting with \u003ccode\u003ev0.22.0\u003c/code\u003e, the \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e object no longer\ninherits from \u003ccode\u003ethreading.Thread\u003c/code\u003e. If not using aiosqlite as a context manager,\nclients must \u003ccode\u003eawait connection.close()\u003c/code\u003e or call \u003ccode\u003econnection.stop()\u003c/code\u003e to ensure\nthe helper thread is completed and terminated correctly. A \u003ccode\u003eResourceWarning\u003c/code\u003e\nwill be emitted for any connection that is garbage collected without being\nclosed or stopped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded synchronous \u003ccode\u003estop()\u003c/code\u003e method to \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e to enable safe\ncleanup and termination of the background thread without dependence\non having an active event loop (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.22.0...v0.22.1\n     2\tAmethyst Reese\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cp\u003eFeature release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eset_authorizer\u003c/code\u003e query access controls (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWait for transaction queue to complete when closing connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit warning when connection goes out of scope without being closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on \u003ccode\u003etyping_extensions\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.21.0...v0.22.0\n     1\tAlec Berryman\n     1\tAmethyst Reese\n     1\tDavid Andreoletti\n     1\tMarkus Heidelberg\n     1\tbeerpsi\n    19\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.21.0\u003c/h2\u003e\n\u003cp\u003eMaintenance release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix: close connection correctly when BaseException raised in connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMetadata improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/9b127cecc7de843bf4f343b6da63b641866533fb\"\u003e\u003ccode\u003e9b127ce\u003c/code\u003e\u003c/a\u003e Version bump v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/5c3f61c1ea49401f2716d8f58d494e76ca766921\"\u003e\u003ccode\u003e5c3f61c\u003c/code\u003e\u003c/a\u003e Improve stop semantics for connections (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/a869d73678adbc14472e4ac2c31f4e706efe8ef3\"\u003e\u003ccode\u003ea869d73\u003c/code\u003e\u003c/a\u003e Version bump v0.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/1cd60adcab12347577150a6fa6c7d92b7b86d989\"\u003e\u003ccode\u003e1cd60ad\u003c/code\u003e\u003c/a\u003e Emit warning if connection is deleted before it is closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/611d7b4f29fc3d7df6c173b2e79b0892e9d249aa\"\u003e\u003ccode\u003e611d7b4\u003c/code\u003e\u003c/a\u003e Add set_authorizer support for fine-grained access control (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/81d00c8f1676851c8634ca98f99e0973083ea75f\"\u003e\u003ccode\u003e81d00c8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/7a26722f7e6da6a1ae0febf515b4624794173fcc\"\u003e\u003ccode\u003e7a26722\u003c/code\u003e\u003c/a\u003e Bump coverage[toml] from 7.8.0 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/445754087ec452f888cc152debf79590d8a25d86\"\u003e\u003ccode\u003e4457540\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.2.0 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/b650dad318ad72e582b7ba1143cc05f270f8ab6b\"\u003e\u003ccode\u003eb650dad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/065ffdd1291693c5e69d2f3efff17e351d9a0163\"\u003e\u003ccode\u003e065ffdd\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.15.0 to 1.19.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.20.0...v0.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.57.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.57.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.57.0\"\u003e0.57.0\u003c/a\u003e - 2026-05-07\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow generated prompt snapshot updates by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3134\"\u003ekoxudaxi/datamodel-code-generator#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite generated prompt snapshots directly by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3135\"\u003ekoxudaxi/datamodel-code-generator#3135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve tox python preference for generated docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3136\"\u003ekoxudaxi/datamodel-code-generator#3136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d0aa6ab9912603a5e8b7c78ff62a1893078542d4\"\u003e\u003ccode\u003ed0aa6ab\u003c/code\u003e\u003c/a\u003e docs: sync generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7bd643f3dacdd9f09093bc06a61b0eef49319451\"\u003e\u003ccode\u003e7bd643f\u003c/code\u003e\u003c/a\u003e Preserve tox python preference for generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/64f218a5711dfde954e50eb6b50c47b254fd35b4\"\u003e\u003ccode\u003e64f218a\u003c/code\u003e\u003c/a\u003e Write generated prompt snapshots directly (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3135\"\u003e#3135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/a7d1e9c47a8603ffd7668264a4e8fe02553d0f90\"\u003e\u003ccode\u003ea7d1e9c\u003c/code\u003e\u003c/a\u003e Allow generated prompt snapshot updates (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/9210c193922c52949e288e8f68e195d56acd34b4\"\u003e\u003ccode\u003e9210c19\u003c/code\u003e\u003c/a\u003e Propagate enum member descriptions for anyOf const pattern (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3133\"\u003e#3133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/928ba552f4190f0b4c2390d135dcbbb6048ddfc3\"\u003e\u003ccode\u003e928ba55\u003c/code\u003e\u003c/a\u003e Use source tree for generated prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3132\"\u003e#3132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b59971413184e9151882cb0b5906acbf3b3f4df8\"\u003e\u003ccode\u003eb599714\u003c/code\u003e\u003c/a\u003e Add manual generated docs sync trigger (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/93f2bce292f82fde15fe7ad8d4e0eeb2c7fdbb12\"\u003e\u003ccode\u003e93f2bce\u003c/code\u003e\u003c/a\u003e Fix generated docs sync prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/919f191f896af8bf62d7aafe9e19a98cf9a05efc\"\u003e\u003ccode\u003e919f191\u003c/code\u003e\u003c/a\u003e Fix serialization alias choices (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3126\"\u003e#3126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/90b0729b303be4246e4ce9babf825d0e4170b9f7\"\u003e\u003ccode\u003e90b0729\u003c/code\u003e\u003c/a\u003e Fix snake case array discriminator (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3125\"\u003e#3125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.33.0...0.57.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.57.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.57.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.57.0\"\u003e0.57.0\u003c/a\u003e - 2026-05-07\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow generated prompt snapshot updates by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3134\"\u003ekoxudaxi/datamodel-code-generator#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite generated prompt snapshots directly by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3135\"\u003ekoxudaxi/datamodel-code-generator#3135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve tox python preference for generated docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3136\"\u003ekoxudaxi/datamodel-code-generator#3136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d0aa6ab9912603a5e8b7c78ff62a1893078542d4\"\u003e\u003ccode\u003ed0aa6ab\u003c/code\u003e\u003c/a\u003e docs: sync generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7bd643f3dacdd9f09093bc06a61b0eef49319451\"\u003e\u003ccode\u003e7bd643f\u003c/code\u003e\u003c/a\u003e Preserve tox python preference for generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/64f218a5711dfde954e50eb6b50c47b254fd35b4\"\u003e\u003ccode\u003e64f218a\u003c/code\u003e\u003c/a\u003e Write generated prompt snapshots directly (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3135\"\u003e#3135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/a7d1e9c47a8603ffd7668264a4e8fe02553d0f90\"\u003e\u003ccode\u003ea7d1e9c\u003c/code\u003e\u003c/a\u003e Allow generated prompt snapshot updates (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/9210c193922c52949e288e8f68e195d56acd34b4\"\u003e\u003ccode\u003e9210c19\u003c/code\u003e\u003c/a\u003e Propagate enum member descriptions for anyOf const pattern (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3133\"\u003e#3133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/928ba552f4190f0b4c2390d135dcbbb6048ddfc3\"\u003e\u003ccode\u003e928ba55\u003c/code\u003e\u003c/a\u003e Use source tree for generated prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3132\"\u003e#3132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b59971413184e9151882cb0b5906acbf3b3f4df8\"\u003e\u003ccode\u003eb599714\u003c/code\u003e\u003c/a\u003e Add manual generated docs sync trigger (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/93f2bce292f82fde15fe7ad8d4e0eeb2c7fdbb12\"\u003e\u003ccode\u003e93f2bce\u003c/code\u003e\u003c/a\u003e Fix generated docs sync prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/919f191f896af8bf62d7aafe9e19a98cf9a05efc\"\u003e\u003ccode\u003e919f191\u003c/code\u003e\u003c/a\u003e Fix serialization alias choices (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3126\"\u003e#3126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/90b0729b303be4246e4ce9babf825d0e4170b9f7\"\u003e\u003ccode\u003e90b0729\u003c/code\u003e\u003c/a\u003e Fix snake case array discriminator (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3125\"\u003e#3125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.33.0...0.57.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.57.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.57.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.57.0\"\u003e0.57.0\u003c/a\u003e - 2026-05-07\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow generated prompt snapshot updates by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3134\"\u003ekoxudaxi/datamodel-code-generator#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite generated prompt snapshots directly by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3135\"\u003ekoxudaxi/datamodel-code-generator#3135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve tox python preference for generated docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3136\"\u003ekoxudaxi/datamodel-code-generator#3136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d0aa6ab9912603a5e8b7c78ff62a1893078542d4\"\u003e\u003ccode\u003ed0aa6ab\u003c/code\u003e\u003c/a\u003e docs: sync generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7bd643f3dacdd9f09093bc06a61b0eef49319451\"\u003e\u003ccode\u003e7bd643f\u003c/code\u003e\u003c/a\u003e Preserve tox python preference for generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/64f218a5711dfde954e50eb6b50c47b254fd35b4\"\u003e\u003ccode\u003e64f218a\u003c/code\u003e\u003c/a\u003e Write generated prompt snapshots directly (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3135\"\u003e#3135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/a7d1e9c47a8603ffd7668264a4e8fe02553d0f90\"\u003e\u003ccode\u003ea7d1e9c\u003c/code\u003e\u003c/a\u003e Allow generated prompt snapshot updates (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/9210c193922c52949e288e8f68e195d56acd34b4\"\u003e\u003ccode\u003e9210c19\u003c/code\u003e\u003c/a\u003e Propagate enum member descriptions for anyOf const pattern (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3133\"\u003e#3133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/928ba552f4190f0b4c2390d135dcbbb6048ddfc3\"\u003e\u003ccode\u003e928ba55\u003c/code\u003e\u003c/a\u003e Use source tree for generated prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3132\"\u003e#3132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b59971413184e9151882cb0b5906acbf3b3f4df8\"\u003e\u003ccode\u003eb599714\u003c/code\u003e\u003c/a\u003e Add manual generated docs sync trigger (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commi...\n\n_Description has been truncated_","html_url":"https://github.com/apache/airflow/pull/66922","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/issues/66922","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/66922/packages"},{"uuid":"4425290391","node_id":"PR_kwDOAgUK287aedlv","number":66745,"state":"open","title":"Bump the pip-dependency-updates group across 3 directories with 3 updates","user":"dependabot[bot]","labels":["python","dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-12T00:36:28.000Z","updated_at":"2026-05-12T01:43:32.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-dependency-updates","update_count":3,"packages":[{"name":"trove-classifiers","old_version":"2026.4.28.13","new_version":"2026.5.7.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"trove-classifiers","old_version":"2026.4.28.13","new_version":"2026.5.7.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"trove-classifiers","old_version":"2026.4.28.13","new_version":"2026.5.7.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"trove-classifiers","old_version":"2026.4.28.13","new_version":"2026.5.7.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"trove-classifiers","old_version":"2026.4.28.13","new_version":"2026.5.7.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"trove-classifiers","old_version":"2026.4.28.13","new_version":"2026.5.7.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"trove-classifiers","old_version":"2026.4.28.13","new_version":"2026.5.7.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"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\nUpdates the requirements on [aiosqlite](https://github.com/omnilib/aiosqlite), [trove-classifiers](https://github.com/pypa/trove-classifiers) and [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) to permit the latest version.\nUpdates `aiosqlite` to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.1\u003c/h2\u003e\n\u003cp\u003eBug fix release\u003c/p\u003e\n\u003cp\u003eNOTE: Starting with \u003ccode\u003ev0.22.0\u003c/code\u003e, the \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e object no longer\ninherits from \u003ccode\u003ethreading.Thread\u003c/code\u003e. If not using aiosqlite as a context manager,\nclients must \u003ccode\u003eawait connection.close()\u003c/code\u003e or call \u003ccode\u003econnection.stop()\u003c/code\u003e to ensure\nthe helper thread is completed and terminated correctly. A \u003ccode\u003eResourceWarning\u003c/code\u003e\nwill be emitted for any connection that is garbage collected without being\nclosed or stopped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded synchronous \u003ccode\u003estop()\u003c/code\u003e method to \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e to enable safe\ncleanup and termination of the background thread without dependence\non having an active event loop (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.22.0...v0.22.1\n     2\tAmethyst Reese\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cp\u003eFeature release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eset_authorizer\u003c/code\u003e query access controls (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWait for transaction queue to complete when closing connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit warning when connection goes out of scope without being closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on \u003ccode\u003etyping_extensions\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.21.0...v0.22.0\n     1\tAlec Berryman\n     1\tAmethyst Reese\n     1\tDavid Andreoletti\n     1\tMarkus Heidelberg\n     1\tbeerpsi\n    19\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.21.0\u003c/h2\u003e\n\u003cp\u003eMaintenance release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix: close connection correctly when BaseException raised in connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMetadata improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/9b127cecc7de843bf4f343b6da63b641866533fb\"\u003e\u003ccode\u003e9b127ce\u003c/code\u003e\u003c/a\u003e Version bump v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/5c3f61c1ea49401f2716d8f58d494e76ca766921\"\u003e\u003ccode\u003e5c3f61c\u003c/code\u003e\u003c/a\u003e Improve stop semantics for connections (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/a869d73678adbc14472e4ac2c31f4e706efe8ef3\"\u003e\u003ccode\u003ea869d73\u003c/code\u003e\u003c/a\u003e Version bump v0.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/1cd60adcab12347577150a6fa6c7d92b7b86d989\"\u003e\u003ccode\u003e1cd60ad\u003c/code\u003e\u003c/a\u003e Emit warning if connection is deleted before it is closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/611d7b4f29fc3d7df6c173b2e79b0892e9d249aa\"\u003e\u003ccode\u003e611d7b4\u003c/code\u003e\u003c/a\u003e Add set_authorizer support for fine-grained access control (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/81d00c8f1676851c8634ca98f99e0973083ea75f\"\u003e\u003ccode\u003e81d00c8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/7a26722f7e6da6a1ae0febf515b4624794173fcc\"\u003e\u003ccode\u003e7a26722\u003c/code\u003e\u003c/a\u003e Bump coverage[toml] from 7.8.0 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/445754087ec452f888cc152debf79590d8a25d86\"\u003e\u003ccode\u003e4457540\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.2.0 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/b650dad318ad72e582b7ba1143cc05f270f8ab6b\"\u003e\u003ccode\u003eb650dad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/065ffdd1291693c5e69d2f3efff17e351d9a0163\"\u003e\u003ccode\u003e065ffdd\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.15.0 to 1.19.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.20.0...v0.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `trove-classifiers` from 2026.4.28.13 to 2026.5.7.17\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/a1105aa00670c8fc241e0bc2149a236b8be43b7a\"\u003e\u003ccode\u003ea1105aa\u003c/code\u003e\u003c/a\u003e Add Trove classifier for Python 3.16 (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/243\"\u003e#243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pypa/trove-classifiers/compare/2026.4.28.13...2026.5.7.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `trove-classifiers` from 2026.4.28.13 to 2026.5.7.17\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/a1105aa00670c8fc241e0bc2149a236b8be43b7a\"\u003e\u003ccode\u003ea1105aa\u003c/code\u003e\u003c/a\u003e Add Trove classifier for Python 3.16 (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/243\"\u003e#243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pypa/trove-classifiers/compare/2026.4.28.13...2026.5.7.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `trove-classifiers` from 2026.4.28.13 to 2026.5.7.17\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/a1105aa00670c8fc241e0bc2149a236b8be43b7a\"\u003e\u003ccode\u003ea1105aa\u003c/code\u003e\u003c/a\u003e Add Trove classifier for Python 3.16 (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/243\"\u003e#243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pypa/trove-classifiers/compare/2026.4.28.13...2026.5.7.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `trove-classifiers` from 2026.4.28.13 to 2026.5.7.17\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/a1105aa00670c8fc241e0bc2149a236b8be43b7a\"\u003e\u003ccode\u003ea1105aa\u003c/code\u003e\u003c/a\u003e Add Trove classifier for Python 3.16 (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/243\"\u003e#243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pypa/trove-classifiers/compare/2026.4.28.13...2026.5.7.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.57.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.57.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.57.0\"\u003e0.57.0\u003c/a\u003e - 2026-05-07\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow generated prompt snapshot updates by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3134\"\u003ekoxudaxi/datamodel-code-generator#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite generated prompt snapshots directly by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3135\"\u003ekoxudaxi/datamodel-code-generator#3135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve tox python preference for generated docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3136\"\u003ekoxudaxi/datamodel-code-generator#3136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d0aa6ab9912603a5e8b7c78ff62a1893078542d4\"\u003e\u003ccode\u003ed0aa6ab\u003c/code\u003e\u003c/a\u003e docs: sync generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7bd643f3dacdd9f09093bc06a61b0eef49319451\"\u003e\u003ccode\u003e7bd643f\u003c/code\u003e\u003c/a\u003e Preserve tox python preference for generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/64f218a5711dfde954e50eb6b50c47b254fd35b4\"\u003e\u003ccode\u003e64f218a\u003c/code\u003e\u003c/a\u003e Write generated prompt snapshots directly (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3135\"\u003e#3135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/a7d1e9c47a8603ffd7668264a4e8fe02553d0f90\"\u003e\u003ccode\u003ea7d1e9c\u003c/code\u003e\u003c/a\u003e Allow generated prompt snapshot updates (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/9210c193922c52949e288e8f68e195d56acd34b4\"\u003e\u003ccode\u003e9210c19\u003c/code\u003e\u003c/a\u003e Propagate enum member descriptions for anyOf const pattern (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3133\"\u003e#3133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/928ba552f4190f0b4c2390d135dcbbb6048ddfc3\"\u003e\u003ccode\u003e928ba55\u003c/code\u003e\u003c/a\u003e Use source tree for generated prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3132\"\u003e#3132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b59971413184e9151882cb0b5906acbf3b3f4df8\"\u003e\u003ccode\u003eb599714\u003c/code\u003e\u003c/a\u003e Add manual generated docs sync trigger (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/93f2bce292f82fde15fe7ad8d4e0eeb2c7fdbb12\"\u003e\u003ccode\u003e93f2bce\u003c/code\u003e\u003c/a\u003e Fix generated docs sync prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/919f191f896af8bf62d7aafe9e19a98cf9a05efc\"\u003e\u003ccode\u003e919f191\u003c/code\u003e\u003c/a\u003e Fix serialization alias choices (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3126\"\u003e#3126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/90b0729b303be4246e4ce9babf825d0e4170b9f7\"\u003e\u003ccode\u003e90b0729\u003c/code\u003e\u003c/a\u003e Fix snake case array discriminator (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3125\"\u003e#3125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.33.0...0.57.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `trove-classifiers` from 2026.4.28.13 to 2026.5.7.17\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/a1105aa00670c8fc241e0bc2149a236b8be43b7a\"\u003e\u003ccode\u003ea1105aa\u003c/code\u003e\u003c/a\u003e Add Trove classifier for Python 3.16 (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/243\"\u003e#243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pypa/trove-classifiers/compare/2026.4.28.13...2026.5.7.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.57.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.57.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.57.0\"\u003e0.57.0\u003c/a\u003e - 2026-05-07\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow generated prompt snapshot updates by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3134\"\u003ekoxudaxi/datamodel-code-generator#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite generated prompt snapshots directly by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3135\"\u003ekoxudaxi/datamodel-code-generator#3135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve tox python preference for generated docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3136\"\u003ekoxudaxi/datamodel-code-generator#3136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d0aa6ab9912603a5e8b7c78ff62a1893078542d4\"\u003e\u003ccode\u003ed0aa6ab\u003c/code\u003e\u003c/a\u003e docs: sync generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7bd643f3dacdd9f09093bc06a61b0eef49319451\"\u003e\u003ccode\u003e7bd643f\u003c/code\u003e\u003c/a\u003e Preserve tox python preference for generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/64f218a5711dfde954e50eb6b50c47b254fd35b4\"\u003e\u003ccode\u003e64f218a\u003c/code\u003e\u003c/a\u003e Write generated prompt snapshots directly (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3135\"\u003e#3135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/a7d1e9c47a8603ffd7668264a4e8fe02553d0f90\"\u003e\u003ccode\u003ea7d1e9c\u003c/code\u003e\u003c/a\u003e Allow generated prompt snapshot updates (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/9210c193922c52949e288e8f68e195d56acd34b4\"\u003e\u003ccode\u003e9210c19\u003c/code\u003e\u003c/a\u003e Propagate enum member descriptions for anyOf const pattern (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3133\"\u003e#3133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/928ba552f4190f0b4c2390d135dcbbb6048ddfc3\"\u003e\u003ccode\u003e928ba55\u003c/code\u003e\u003c/a\u003e Use source tree for generated prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3132\"\u003e#3132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b59971413184e9151882cb0b5906acbf3b3f4df8\"\u003e\u003ccode\u003eb599714\u003c/code\u003e\u003c/a\u003e Add manual generated docs sync trigger (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/93f2bce292f82fde15fe7ad8d4e0eeb2c7fdbb12\"\u003e\u003ccode\u003e93f2bce\u003c/code\u003e\u003c/a\u003e Fix generated docs sync prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/919f191f896af8bf62d7aafe9e19a98cf9a05efc\"\u003e\u003ccode\u003e919f191\u003c/code\u003e\u003c/a\u003e Fix serialization alias choices (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3126\"\u003e#3126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/90b0729b303be4246e4ce9babf825d0e4170b9f7\"\u003e\u003ccode\u003e90b0729\u003c/code\u003e\u003c/a\u003e Fix snake case array discriminator (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3125\"\u003e#3125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.33.0...0.57.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `trove-classifiers` from 2026.4.28.13 to 2026.5.7.17\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/a1105aa00670c8fc241e0bc2149a236b8be43b7a\"\u003e\u003ccode\u003ea1105aa\u003c/code\u003e\u003c/a\u003e Add Trove classifier for Python 3.16 (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/243\"\u003e#243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pypa/trove-classifiers/compare/2026.4.28.13...2026.5.7.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `trove-classifiers` from 2026.4.28.13 to 2026.5.7.17\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/a1105aa00670c8fc241e0bc2149a236b8be43b7a\"\u003e\u003ccode\u003ea1105aa\u003c/code\u003e\u003c/a\u003e Add Trove classifier for Python 3.16 (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/243\"\u003e#243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pypa/trove-classifiers/compare/2026.4.28.13...2026.5.7.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.57.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.57.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.57.0\"\u003e0.57.0\u003c/a\u003e - 2026-05-07\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow generated prompt snapshot updates by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3134\"\u003ekoxudaxi/datamodel-code-generator#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite generated prompt snapshots directly by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3135\"\u003ekoxudaxi/datamodel-code-generator#3135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve tox python preference for generated docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3136\"\u003ekoxudaxi/datamodel-code-generator#3136\u003c/a...\n\n_Description has been truncated_","html_url":"https://github.com/apache/airflow/pull/66745","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/issues/66745","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/66745/packages"},{"uuid":"4398598368","node_id":"PR_kwDOAgUK287ZIlGD","number":66541,"state":"open","title":"Bump the pip-dependency-updates group across 3 directories with 3 updates","user":"dependabot[bot]","labels":["python","area:task-sdk","dependencies","area:airflow-ctl"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-07T12:02:57.000Z","updated_at":"2026-05-10T22:56:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-dependency-updates","update_count":3,"packages":[{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [aiosqlite](https://github.com/omnilib/aiosqlite), [starlette](https://github.com/Kludex/starlette) and [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) to permit the latest version.\nUpdates `aiosqlite` to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.1\u003c/h2\u003e\n\u003cp\u003eBug fix release\u003c/p\u003e\n\u003cp\u003eNOTE: Starting with \u003ccode\u003ev0.22.0\u003c/code\u003e, the \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e object no longer\ninherits from \u003ccode\u003ethreading.Thread\u003c/code\u003e. If not using aiosqlite as a context manager,\nclients must \u003ccode\u003eawait connection.close()\u003c/code\u003e or call \u003ccode\u003econnection.stop()\u003c/code\u003e to ensure\nthe helper thread is completed and terminated correctly. A \u003ccode\u003eResourceWarning\u003c/code\u003e\nwill be emitted for any connection that is garbage collected without being\nclosed or stopped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded synchronous \u003ccode\u003estop()\u003c/code\u003e method to \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e to enable safe\ncleanup and termination of the background thread without dependence\non having an active event loop (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.22.0...v0.22.1\n     2\tAmethyst Reese\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cp\u003eFeature release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eset_authorizer\u003c/code\u003e query access controls (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWait for transaction queue to complete when closing connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit warning when connection goes out of scope without being closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on \u003ccode\u003etyping_extensions\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.21.0...v0.22.0\n     1\tAlec Berryman\n     1\tAmethyst Reese\n     1\tDavid Andreoletti\n     1\tMarkus Heidelberg\n     1\tbeerpsi\n    19\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.21.0\u003c/h2\u003e\n\u003cp\u003eMaintenance release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix: close connection correctly when BaseException raised in connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMetadata improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/9b127cecc7de843bf4f343b6da63b641866533fb\"\u003e\u003ccode\u003e9b127ce\u003c/code\u003e\u003c/a\u003e Version bump v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/5c3f61c1ea49401f2716d8f58d494e76ca766921\"\u003e\u003ccode\u003e5c3f61c\u003c/code\u003e\u003c/a\u003e Improve stop semantics for connections (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/a869d73678adbc14472e4ac2c31f4e706efe8ef3\"\u003e\u003ccode\u003ea869d73\u003c/code\u003e\u003c/a\u003e Version bump v0.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/1cd60adcab12347577150a6fa6c7d92b7b86d989\"\u003e\u003ccode\u003e1cd60ad\u003c/code\u003e\u003c/a\u003e Emit warning if connection is deleted before it is closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/611d7b4f29fc3d7df6c173b2e79b0892e9d249aa\"\u003e\u003ccode\u003e611d7b4\u003c/code\u003e\u003c/a\u003e Add set_authorizer support for fine-grained access control (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/81d00c8f1676851c8634ca98f99e0973083ea75f\"\u003e\u003ccode\u003e81d00c8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/7a26722f7e6da6a1ae0febf515b4624794173fcc\"\u003e\u003ccode\u003e7a26722\u003c/code\u003e\u003c/a\u003e Bump coverage[toml] from 7.8.0 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/445754087ec452f888cc152debf79590d8a25d86\"\u003e\u003ccode\u003e4457540\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.2.0 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/b650dad318ad72e582b7ba1143cc05f270f8ab6b\"\u003e\u003ccode\u003eb650dad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/065ffdd1291693c5e69d2f3efff17e351d9a0163\"\u003e\u003ccode\u003e065ffdd\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.15.0 to 1.19.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.20.0...v0.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` to 1.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.0.0\u003c/h2\u003e\n\u003cp\u003eStarlette 1.0 is here! 🎉\u003c/p\u003e\n\u003cp\u003eAfter nearly eight years since its creation, Starlette has reached its first stable release.\u003c/p\u003e\n\u003cp\u003eA special thank you to \u003ca href=\"https://github.com/lovelydinosaur\"\u003e\u003ccode\u003e@​lovelydinosaur\u003c/code\u003e\u003c/a\u003e, the creator of Starlette, Uvicorn, HTTPX and MkDocs, whose work helped to lay the foundation for the modern async Python ecosystem. 🙏\u003c/p\u003e\n\u003cp\u003eThank you to \u003ca href=\"https://github.com/adriangb\"\u003e\u003ccode\u003e@​adriangb\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/florimondmanca\"\u003e\u003ccode\u003e@​florimondmanca\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/aminalaee\"\u003e\u003ccode\u003e@​aminalaee\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/alex-oleshkevich\"\u003e\u003ccode\u003e@​alex-oleshkevich\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/abersheeran\"\u003e\u003ccode\u003e@​abersheeran\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/uSpike\"\u003e\u003ccode\u003e@​uSpike\u003c/code\u003e\u003c/a\u003e for helping make Starlette what it is today. And to all my sponsors - especially \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/huggingface\"\u003e\u003ccode\u003e@​huggingface\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/elevenlabs\"\u003e\u003ccode\u003e@​elevenlabs\u003c/code\u003e\u003c/a\u003e - thank you for your support!\u003c/p\u003e\n\u003cp\u003eThank you to all \u003ca href=\"https://github.com/encode/starlette/graphs/contributors\"\u003e290+ contributors\u003c/a\u003e who have shaped Starlette over the years! ❤️\u003c/p\u003e\n\u003cp\u003eRead more on the \u003ca href=\"https://marcelotryle.com/blog/2026/03/22/starlette-10-is-here/\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eCheck out the full release notes at \u003ca href=\"https://www.starlette.io/release-notes/#100-march-22-2026\"\u003ehttps://www.starlette.io/release-notes/#100-march-22-2026\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.0.0rc1...1.0.0\"\u003ehttps://github.com/encode/starlette/compare/1.0.0rc1...1.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.0 (March 22, 2026)\u003c/h2\u003e\n\u003cp\u003eStarlette 1.0 is here!\u003c/p\u003e\n\u003cp\u003eAfter nearly eight years since its creation, Starlette has reached its first stable release.\nThank you to everyone who tested the release candidate and reported issues.\u003c/p\u003e\n\u003cp\u003eYou can read more on the \u003ca href=\"https://marcelotryle.com/blog/2026/03/22/starlette-10-is-here/\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eTrack session access and modification in \u003ccode\u003eSessionMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3166\"\u003e#3166\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle websocket denial responses in \u003ccode\u003eStreamingResponse\u003c/code\u003e and \u003ccode\u003eFileResponse\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3189\"\u003e#3189\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for field accumulation in \u003ccode\u003eFormParser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3179\"\u003e#3179\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eMove \u003ccode\u003eparser.finalize()\u003c/code\u003e inside try/except in \u003ccode\u003eMultiPartParser.parse()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3153\"\u003e#3153\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0rc1 (February 23, 2026)\u003c/h2\u003e\n\u003cp\u003eWe're ready! I'm thrilled to announce the first release candidate for Starlette 1.0.\u003c/p\u003e\n\u003cp\u003eStarlette was created in June 2018 by Tom Christie, and has been on ZeroVer for years. Today, it's downloaded\nalmost \u003ca href=\"https://pypistats.org/packages/starlette\"\u003e10 million times a day\u003c/a\u003e, serves as the foundation for FastAPI,\nand has inspired many other frameworks. In the age of AI, Starlette continues to play an important role as a\ndependency of the Python MCP SDK.\u003c/p\u003e\n\u003cp\u003eThis release focuses on removing deprecated features that were marked for removal in 1.0.0, along with some\nlast minute bug fixes. It's a release candidate, so we can gather feedback from the community before the final\n1.0.0 release soon.\u003c/p\u003e\n\u003cp\u003eA huge thank you to all the contributors who have helped make Starlette what it is today.\nIn particular, I'd like to recognize:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lovelydinosaur\"\u003eKim Christie\u003c/a\u003e - The original creator of Starlette, Uvicorn, and MkDocs, and the\ncurrent maintainer of HTTPX. Kim's work helped lay the foundation for the modern async Python ecosystem.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adriangb\"\u003eAdrian Garcia Badaracco\u003c/a\u003e - One of the smartest people I know, whom I have the pleasure of working with at Pydantic.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graingert\"\u003eThomas Grainger\u003c/a\u003e - My async teacher, always ready to help with questions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm\"\u003eAlex Grönholm\u003c/a\u003e - Another async mentor, always prompt to help with questions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/florimondmanca\"\u003eFlorimond Manca\u003c/a\u003e - Always present in the early days of both Starlette and Uvicorn, and helped a lot in the ecosystem.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminalaee\"\u003eAmin Alaee\u003c/a\u003e - Contributed a lot with file-related PRs.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tiangolo\"\u003eSebastián Ramírez\u003c/a\u003e - Maintains FastAPI upstream, and always in contact to help with upstream issues.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alex-oleshkevich\"\u003eAlex Oleshkevich\u003c/a\u003e - Helped a lot on templates and many discussions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/abersheeran\"\u003eabersheeran\u003c/a\u003e - My go-to person when I need help on many subjects.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI'd also like to thank my sponsors for their support. A special thanks to\n\u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/huggingface\"\u003e\u003ccode\u003e@​huggingface\u003c/code\u003e\u003c/a\u003e,\nand \u003ca href=\"https://github.com/elevenlabs\"\u003e\u003ccode\u003e@​elevenlabs\u003c/code\u003e\u003c/a\u003e for their generous sponsorship, and to all my other sponsors:\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/Kludex/starlette/commit/0e88e92b592bfa11fd92e331869a8d49ba34b541\"\u003e\u003ccode\u003e0e88e92\u003c/code\u003e\u003c/a\u003e Version 1.0.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3178\"\u003e#3178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/9ee951980bae776103715b66305f807d9e8245da\"\u003e\u003ccode\u003e9ee9519\u003c/code\u003e\u003c/a\u003e Handle websocket denial responses in streaming and file responses (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3189\"\u003e#3189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a0bcc26612c9c344737cd59fb4ef847326adf37a\"\u003e\u003ccode\u003ea0bcc26\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump black from 26.1.0 to 26.3.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3183\"\u003e#3183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/79b3f26a9a38791af14d15c058c0e8c54cd9b11e\"\u003e\u003ccode\u003e79b3f26\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump the python-packages group with 7 updates (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3168\"\u003e#3168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/789b9269fd3f3d6ab28781624f151e44432463cd\"\u003e\u003ccode\u003e789b926\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003ebytearray\u003c/code\u003e for field accumulation in \u003ccode\u003eFormParser\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3179\"\u003e#3179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a1fd9d822dc49857e9f39ea5b0970aeed6c8f669\"\u003e\u003ccode\u003ea1fd9d8\u003c/code\u003e\u003c/a\u003e docs: fix typo in routing.md (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3176\"\u003e#3176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/c14d0f778010940ac40f97dbc23d8dbf99e87e23\"\u003e\u003ccode\u003ec14d0f7\u003c/code\u003e\u003c/a\u003e Document session cookie security flags (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3169\"\u003e#3169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/c2e28786d1e73da045fa84e622f65c314a7171c1\"\u003e\u003ccode\u003ec2e2878\u003c/code\u003e\u003c/a\u003e Move parser.finalize() inside try/except in MultiPartParser.parse() (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3153\"\u003e#3153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/89630a8658ab8aac7cca8a0d6ec4b78dcc2fcb46\"\u003e\u003ccode\u003e89630a8\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4647e532bbed7a5f60c9972ddba3f5fb4a79e1f9\"\u003e\u003ccode\u003e4647e53\u003c/code\u003e\u003c/a\u003e Track session access and modification in \u003ccode\u003eSessionMiddleware\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3166\"\u003e#3166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.45.0...1.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.56.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\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/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.0\"\u003e0.56.0\u003c/a\u003e - 2026-04-04\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/6274b70b58e6dab57a1797beb8006f9fcdbf7dbe\"\u003e\u003ccode\u003e6274b70\u003c/code\u003e\u003c/a\u003e Docs: describe --keep-model-order as deterministic dependency-aware ordering ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/3e87a9a4a712b2cb8ad6d9faaa85c86ac8838ffe\"\u003e\u003ccode\u003e3e87a9a\u003c/code\u003e\u003c/a\u003e Fix root model reuse collapse (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3089\"\u003e#3089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/51377952477da7ef39efcb2f3e256ae51ad7a1f8\"\u003e\u003ccode\u003e5137795\u003c/code\u003e\u003c/a\u003e tomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3088\"\u003e#3088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d7a1f7166624eadcd84e97b8d2ca09e8c6dde957\"\u003e\u003ccode\u003ed7a1f71\u003c/code\u003e\u003c/a\u003e Fix relative URL refs with path-only root ids (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f0960e9e2362f1dab2facb55853d2e56a3a923b4\"\u003e\u003ccode\u003ef0960e9\u003c/code\u003e\u003c/a\u003e Prefer CLI input over pyproject url (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/05901ff4ad110b750dcfd996aeaca410767240cd\"\u003e\u003ccode\u003e05901ff\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json sup...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5ba49a72dbfc69dc781a87c6adadb785d794f475\"\u003e\u003ccode\u003e5ba49a7\u003c/code\u003e\u003c/a\u003e docs: update CHANGELOG.md for 0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/52d9ef9dec52f3ad14130710eefb010f0e492160\"\u003e\u003ccode\u003e52d9ef9\u003c/code\u003e\u003c/a\u003e [codex] Refresh project usage list (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7d41fef7884579d728fe42a1e266d8b950ccd72d\"\u003e\u003ccode\u003e7d41fef\u003c/code\u003e\u003c/a\u003e Support JSON files for mapping options (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a8cd0da7a6d17bfd70c5c2623699ffc6aa818fd\"\u003e\u003ccode\u003e5a8cd0d\u003c/code\u003e\u003c/a\u003e Fix non-string OpenAPI discriminator literals (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.33.0...0.56.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.56.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\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/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.0\"\u003e0.56.0\u003c/a\u003e - 2026-04-04\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/6274b70b58e6dab57a1797beb8006f9fcdbf7dbe\"\u003e\u003ccode\u003e6274b70\u003c/code\u003e\u003c/a\u003e Docs: describe --keep-model-order as deterministic dependency-aware ordering ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/3e87a9a4a712b2cb8ad6d9faaa85c86ac8838ffe\"\u003e\u003ccode\u003e3e87a9a\u003c/code\u003e\u003c/a\u003e Fix root model reuse collapse (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3089\"\u003e#3089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/51377952477da7ef39efcb2f3e256ae51ad7a1f8\"\u003e\u003ccode\u003e5137795\u003c/code\u003e\u003c/a\u003e tomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3088\"\u003e#3088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d7a1f7166624eadcd84e97b8d2ca09e8c6dde957\"\u003e\u003ccode\u003ed7a1f71\u003c/code\u003e\u003c/a\u003e Fix relative URL refs with path-only root ids (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f0960e9e2362f1dab2facb55853d2e56a3a923b4\"\u003e\u003ccode\u003ef0960e9\u003c/code\u003e\u003c/a\u003e Prefer CLI input over pyproject url (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/05901ff4ad110b750dcfd996aeaca410767240cd\"\u003e\u003ccode\u003e05901ff\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json sup...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5ba49a72dbfc69dc781a87c6adadb785d794f475\"\u003e\u003ccode\u003e5ba49a7\u003c/code\u003e\u003c/a\u003e docs: update CHANGELOG.md for 0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/52d9ef9dec52f3ad14130710eefb010f0e492160\"\u003e\u003ccode\u003e52d9ef9\u003c/code\u003e\u003c/a\u003e [codex] Refresh project usage list (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7d41fef7884579d728fe42a1e266d8b950ccd72d\"\u003e\u003ccode\u003e7d41fef\u003c/code\u003e\u003c/a\u003e Support JSON files for mapping options (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a8cd0da7a6d17bfd70c5c2623699ffc6aa818fd\"\u003e\u003ccode\u003e5a8cd0d\u003c/code\u003e\u003c/a\u003e Fix non-string OpenAPI discriminator literals (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.33.0...0.56.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.56.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact...\n\n_Description has been truncated_","html_url":"https://github.com/apache/airflow/pull/66541","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/issues/66541","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/66541/packages"},{"uuid":"4375423107","node_id":"PR_kwDOR0tLLM7X8qvw","number":50,"state":"open","title":"chore(deps): bump the python-non-major group across 1 directory with 26 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-04T09:29:43.000Z","updated_at":"2026-05-04T09:33:30.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-non-major","update_count":26,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"ruff","old_version":"0.14.8","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.19.0","new_version":"1.20.2","repository_url":"https://github.com/python/mypy"},{"name":"datamodel-code-generator","old_version":"0.45.0","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"presidio-analyzer","old_version":"2.2.361","new_version":"2.2.362","repository_url":"https://github.com/Microsoft/presidio"},{"name":"spacy","old_version":"3.8.11","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.29","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"onnxruntime","old_version":"1.24.2","new_version":"1.25.1","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"torch","old_version":"2.10.0","new_version":"2.11.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"pillow","old_version":"12.1.1","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"datasketch","old_version":"1.9.0","new_version":"1.10.0","repository_url":"https://github.com/ekzhu/datasketch"},{"name":"sentence-transformers","old_version":"5.2.3","new_version":"5.4.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"datasets","old_version":"4.6.0","new_version":"4.8.5","repository_url":"https://github.com/huggingface/datasets"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pymysql","old_version":"1.1.2","new_version":"1.1.3","repository_url":"https://github.com/PyMySQL/PyMySQL"},{"name":"thrift","old_version":"0.20.0","new_version":"0.22.0","repository_url":"https://github.com/apache/thrift"},{"name":"snowflake-connector-python","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/snowflakedb/snowflake-connector-python"},{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"boto3","old_version":"1.42.56","new_version":"1.43.2","repository_url":"https://github.com/boto/boto3"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"google-cloud-storage","old_version":"3.9.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"opentelemetry-sdk","old_version":"1.41.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.41.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-non-major group with 25 updates in the /apps/cli directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.15.12` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.20.2` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.45.0` | `0.56.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [presidio-analyzer](https://github.com/Microsoft/presidio) | `2.2.361` | `2.2.362` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.11` | `3.8.14` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.25` | `9.0.29` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.24.2` | `1.25.1` |\n| [torch](https://github.com/pytorch/pytorch) | `2.10.0` | `2.11.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.1.1` | `12.2.0` |\n| [datasketch](https://github.com/ekzhu/datasketch) | `1.9.0` | `1.10.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.3` | `5.4.1` |\n| [datasets](https://github.com/huggingface/datasets) | `4.6.0` | `4.8.5` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [pymysql](https://github.com/PyMySQL/PyMySQL) | `1.1.2` | `1.1.3` |\n| [thrift](https://github.com/apache/thrift) | `0.20.0` | `0.22.0` |\n| [snowflake-connector-python](https://github.com/snowflakedb/snowflake-connector-python) | `4.3.0` | `4.4.0` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.16.0` | `4.17.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.56` | `1.43.2` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.9.0` | `3.10.1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.41.0` | `1.41.1` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.41.0` | `1.41.1` |\n\n\nUpdates `pydantic` from 2.12.5 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.12.5...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\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\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\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\u003eVarious typo fixes and doc 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/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.8 to 0.15.12\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.12\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.12\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.12/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/66f93cf7ed4d36325f35a452e4afa28268fbcd28\"\u003e\u003ccode\u003e66f93cf\u003c/code\u003e\u003c/a\u003e Bump 0.15.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24815\"\u003e#24815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/476a4d02e8e3b6c157ac39979d8b698a1b6baa91\"\u003e\u003ccode\u003e476a4d0\u003c/code\u003e\u003c/a\u003e [ty] Complete support for more detailed diagnostics on possibly unbound error...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed669eab30095d6c51fe6cdef6050fb01276bcb3\"\u003e\u003ccode\u003eed669ea\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e73d952e43feb51356ee740c5a973fce81396ff6\"\u003e\u003ccode\u003ee73d952\u003c/code\u003e\u003c/a\u003e [ty] Include inferred type in \u003ccode\u003einvalid-key\u003c/code\u003e concise diagnostic for union/inte...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/80feb29b31cd98c093316df2e0407b0c70c01b55\"\u003e\u003ccode\u003e80feb29\u003c/code\u003e\u003c/a\u003e [ty] report only dead annotation-only locals as unused (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24811\"\u003e#24811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0fbf2bc27336a3d17d39af52cf89b78dcda8c7c8\"\u003e\u003ccode\u003e0fbf2bc\u003c/code\u003e\u003c/a\u003e Drop deprecated license classifier (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24808\"\u003e#24808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/43b174cc7f2fcb0080bb1d4843cd4bf6b72bbe27\"\u003e\u003ccode\u003e43b174c\u003c/code\u003e\u003c/a\u003e [ty] Infer lambda parameter types with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24317\"\u003e#24317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4f449ae4a2377569330a5ab94799d389357b5a3f\"\u003e\u003ccode\u003e4f449ae\u003c/code\u003e\u003c/a\u003e [ty] Add error context for intersection types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24772\"\u003e#24772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5b4e753acb46e96ad408e4904c15308e33efe307\"\u003e\u003ccode\u003e5b4e753\u003c/code\u003e\u003c/a\u003e [ty] Add support for goto in literal enum member inlay hint (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24792\"\u003e#24792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e7cc76275a758ce1c636ea1c2d091fd576aac794\"\u003e\u003ccode\u003ee7cc762\u003c/code\u003e\u003c/a\u003e [ty] Add error context for TypedDict assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24790\"\u003e#24790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.8...0.15.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.0 to 1.20.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.20.2\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse WAL with SQLite cache and fix close (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21154\"\u003e21154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust SQLite journal mode (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21217\"\u003e21217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrectly aggregate narrowing information on parent expressions (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21206\"\u003e21206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression related to generic callables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21208\"\u003e21208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression by avoiding widening types in some contexts (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21242\"\u003e21242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix slicing in non-strict optional mode (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21282\"\u003e21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emypyc: Fix match statement semantics for \u0026quot;or\u0026quot; pattern (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21156\"\u003e21156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emypyc: Fix issue with module dunder attributes (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21275\"\u003e21275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInitial support for Python 3.15.0a8 (Marc Mueller, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21255\"\u003e21255\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003cli\u003eNeil Schemenauer\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/145a062651b5f9996b75ef32b7040bd2e885ed82\"\u003e\u003ccode\u003e145a062\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/81cd49215c288eacb987de066f02daff2553b7c7\"\u003e\u003ccode\u003e81cd492\u003c/code\u003e\u003c/a\u003e Fix slicing with nonstrict optional (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21282\"\u003e#21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/908d3441eecbaa2a6193165317177db834d7ca1a\"\u003e\u003ccode\u003e908d344\u003c/code\u003e\u003c/a\u003e [mypyc] Set dunder attrs when adding module to sys.modules (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21275\"\u003e#21275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/ba28610fac9d2b33be210ca8dcfe4bc47b7af424\"\u003e\u003ccode\u003eba28610\u003c/code\u003e\u003c/a\u003e Initial support for Python 3.15.0a8 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21255\"\u003e#21255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/7b0e09f48dbd3717ed008a273cd17e8e960c2037\"\u003e\u003ccode\u003e7b0e09f\u003c/code\u003e\u003c/a\u003e Fix match statement semantics for \u0026quot;or\u0026quot; pattern (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21156\"\u003e#21156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/92b74f226de62f7505f5ef5cb158e8ec9c58b8b7\"\u003e\u003ccode\u003e92b74f2\u003c/code\u003e\u003c/a\u003e Avoid widening types in conditional_types (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21242\"\u003e#21242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0dcbfaa40b0e360a16baea9cf851955375d91b54\"\u003e\u003ccode\u003e0dcbfaa\u003c/code\u003e\u003c/a\u003e Fix is_overlapping_types for generic callables (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21208\"\u003e#21208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/210f518dede35292033ef0d387847406a0ccef8f\"\u003e\u003ccode\u003e210f518\u003c/code\u003e\u003c/a\u003e Correctly aggregate narrowing information on parent expressions (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21206\"\u003e#21206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c34530e53a10e385d8b0f1af4baa88a596b5ceaa\"\u003e\u003ccode\u003ec34530e\u003c/code\u003e\u003c/a\u003e Only set journal mode in coordinator (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21217\"\u003e#21217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/79a3ec6d01b56a27c00e9b3320c2b1d4d73a77f9\"\u003e\u003ccode\u003e79a3ec6\u003c/code\u003e\u003c/a\u003e Use WAL with SQLite cache, fix close (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21154\"\u003e#21154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.0...v1.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.45.0 to 0.56.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\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/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.0\"\u003e0.56.0\u003c/a\u003e - 2026-04-04\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/6274b70b58e6dab57a1797beb8006f9fcdbf7dbe\"\u003e\u003ccode\u003e6274b70\u003c/code\u003e\u003c/a\u003e Docs: describe --keep-model-order as deterministic dependency-aware ordering ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/3e87a9a4a712b2cb8ad6d9faaa85c86ac8838ffe\"\u003e\u003ccode\u003e3e87a9a\u003c/code\u003e\u003c/a\u003e Fix root model reuse collapse (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3089\"\u003e#3089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/51377952477da7ef39efcb2f3e256ae51ad7a1f8\"\u003e\u003ccode\u003e5137795\u003c/code\u003e\u003c/a\u003e tomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3088\"\u003e#3088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d7a1f7166624eadcd84e97b8d2ca09e8c6dde957\"\u003e\u003ccode\u003ed7a1f71\u003c/code\u003e\u003c/a\u003e Fix relative URL refs with path-only root ids (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f0960e9e2362f1dab2facb55853d2e56a3a923b4\"\u003e\u003ccode\u003ef0960e9\u003c/code\u003e\u003c/a\u003e Prefer CLI input over pyproject url (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/05901ff4ad110b750dcfd996aeaca410767240cd\"\u003e\u003ccode\u003e05901ff\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json sup...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5ba49a72dbfc69dc781a87c6adadb785d794f475\"\u003e\u003ccode\u003e5ba49a7\u003c/code\u003e\u003c/a\u003e docs: update CHANGELOG.md for 0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/52d9ef9dec52f3ad14130710eefb010f0e492160\"\u003e\u003ccode\u003e52d9ef9\u003c/code\u003e\u003c/a\u003e [codex] Refresh project usage list (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7d41fef7884579d728fe42a1e266d8b950ccd72d\"\u003e\u003ccode\u003e7d41fef\u003c/code\u003e\u003c/a\u003e Support JSON files for mapping options (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a8cd0da7a6d17bfd70c5c2623699ffc6aa818fd\"\u003e\u003ccode\u003e5a8cd0d\u003c/code\u003e\u003c/a\u003e Fix non-string OpenAPI discriminator literals (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.45.0...0.56.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\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\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `presidio-analyzer` from 2.2.361 to 2.2.362\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Microsoft/presidio/releases\"\u003epresidio-analyzer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2.2.362\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - GPU Device Control via Environment Variable by \u003ca href=\"https://github.com/RonShakutai\"\u003e\u003ccode\u003e@​RonShakutai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1844\"\u003emicrosoft/presidio#1844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add HuggingFaceNerRecognizer for direct NER model inference by \u003ca href=\"https://github.com/ultramancode\"\u003e\u003ccode\u003e@​ultramancode\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1834\"\u003emicrosoft/presidio#1834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Broken Links by \u003ca href=\"https://github.com/andyjessen\"\u003e\u003ccode\u003e@​andyjessen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1856\"\u003emicrosoft/presidio#1856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin dependencies to mitigate supply chain attacks by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1861\"\u003emicrosoft/presidio#1861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2024-47874 and CVE-2025-54121 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1860\"\u003emicrosoft/presidio#1860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2025-2953 and CVE-2025-3730 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1859\"\u003emicrosoft/presidio#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fixed context enhancement substring matching bug  by \u003ca href=\"https://github.com/ravi-jindal\"\u003e\u003ccode\u003e@​ravi-jindal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1827\"\u003emicrosoft/presidio#1827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix _process_names unconditionally treating all metadata as PHI by \u003ca href=\"https://github.com/Mr-Neutr0n\"\u003e\u003ccode\u003e@​Mr-Neutr0n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1855\"\u003emicrosoft/presidio#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add UK Postcode (UK_POSTCODE) recognizer by \u003ca href=\"https://github.com/tee-jagz\"\u003e\u003ccode\u003e@​tee-jagz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1858\"\u003emicrosoft/presidio#1858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin ruff and build pip installs by hash for OSSF scorecard compliance by \u003ca hre...\n\n_Description has been truncated_","html_url":"https://github.com/classifyre-com/classifyre/pull/50","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/classifyre-com%2Fclassifyre/issues/50","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/50/packages"},{"uuid":"4374224451","node_id":"PR_kwDOI7xefs7X4umm","number":41606,"state":"closed","title":"Bump the minor-update group across 1 directory with 140 updates","user":"dependabot[bot]","labels":["rocm","ci/build","nvidia","dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-05T23:42:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-04T05:33:52.000Z","updated_at":"2026-05-05T23:42:43.000Z","time_to_close":151729,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":140,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.4.4","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"transformers","old_version":"5.5.3","new_version":"5.7.0","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"filelock","old_version":"3.16.1","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"alembic","old_version":"1.16.4","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.40.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.2.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.8","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.3","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.3","repository_url":"https://github.com/boto/botocore"},{"name":"click","old_version":"8.1.7","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.2.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.5.4","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.2.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.2.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.62.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.50.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.5.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.8.2","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.74.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.80.0"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"harfile","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.13.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.152.4","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.12.0","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.13","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librosa","old_version":"0.10.2.post1","new_version":"0.11.0","repository_url":"https://github.com/librosa/librosa"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.12.30","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.4.1.1"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.2.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.2.75"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.21.1.3"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.2.0.46"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.17.1.22"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.0.1"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.7.10.1"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.30.4"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.2.75"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.19.1","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.2.1","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.40.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.4.1","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.27.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.46.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.0","repository_url":"https://github.com/getsentry/responses"},{"name":"rpds-py","old_version":"0.20.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.17.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"safetensors","old_version":"0.4.5","new_version":"0.7.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.4.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smart-open","old_version":"7.1.0","new_version":"7.6.0","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"structlog","old_version":"25.4.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.68.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.25.1","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.28.2","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xxhash","old_version":"3.5.0","new_version":"3.7.0","repository_url":"https://github.com/ifduyue/python-xxhash"},{"name":"yarl","old_version":"1.17.1","new_version":"1.23.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 140 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.4.4` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.33.1` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.7.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.136.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.3` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.25.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.29.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.4.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.18.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.13.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.6.3` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.40.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.2.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.8` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.3` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.3` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.5` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.2.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.5.4` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.2.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.56.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.0` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.2.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.62.1` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.30.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.2` | `2.50.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.5.1` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.10.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.8.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.74.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.80.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.4.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.13.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.15.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.152.4` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.13` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [librosa](https://github.com/librosa/librosa) | `0.10.2.post1` | `0.11.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.36.0` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.12.30` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.4.1.1` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.2.75` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.21.1.3` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.2.0.46` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.17.1.22` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.0.1` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.7.10.1` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.30.4` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.19.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.2.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.9.6` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.40.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.4.1` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.27.2` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.46.3` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.20.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.1` | `0.30.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.17.0` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.4.5` | `0.7.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.4.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.1.0` | `7.6.0` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.13.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.4.0` | `25.5.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.68.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.25.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.46.0` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.28.2` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.7.0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.5.0` | `3.7.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.23.0` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.4.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\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\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\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\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.7.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eLaguna\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eLaguna is Poolside's mixture-of-experts language model family that extends standard SwiGLU MoE transformers with two key innovations. It features per-layer head counts allowing different decoder layers to have different query-head counts while sharing the same KV cache shape, and implements a sigmoid MoE router with auxiliary-loss-free load balancing that uses element-wise sigmoid of gate logits plus learned per-expert bias for router scoring.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/laguna\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLaguna XS.2 implementation (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45673\"\u003e#45673\u003c/a\u003e) by \u003ca href=\"https://github.com/joerowell\"\u003e\u003ccode\u003e@​joerowell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45673\"\u003e#45673\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDEIMv2\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eDEIMv2 (DETR with Improved Matching v2) is a real-time object detection model that extends DEIM with DINOv3 features and spans eight model sizes from X to Atto for diverse deployment scenarios. It uses a Spatial Tuning Adapter (STA) for larger variants to convert DINOv3's single-scale output into multi-scale features, while ultra-lightweight models employ pruned HGNetv2 backbones. The unified design achieves superior performance-cost trade-offs, with DEIMv2-X reaching 57.8 AP with only 50.3M parameters and DEIMv2-S being the first sub-10M model to exceed 50 AP on COCO.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/deimv2\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/papers/2509.20787\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003emodel: Add DEIMv2 to Transformers (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44339\"\u003e#44339\u003c/a\u003e) by \u003ca href=\"https://github.com/harshaljanjani\"\u003e\u003ccode\u003e@​harshaljanjani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/44339\"\u003e#44339\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAttention\u003c/h2\u003e\n\u003cp\u003eSeveral attention-related bugs were fixed across multiple models, including a cross-attention cache type error in T5Gemma2 for long inputs, incorrect cached forward behavior in Qwen3.5's gated-delta-net linear attention, and a crash in GraniteMoeHybrid when no Mamba layers are present. Attention function dispatch was also updated to align with the latest model implementations.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix cross-attention cache layer type for T5Gemma2 long inputs (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45540\"\u003e#45540\u003c/a\u003e) by \u003ca href=\"https://github.com/Beichen-Ma\"\u003e\u003ccode\u003e@​Beichen-Ma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45540\"\u003e#45540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Qwen3.5] Fix GDN linear attention multi-token cached forward (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45513\"\u003e#45513\u003c/a\u003e) by \u003ca href=\"https://github.com/kashif\"\u003e\u003ccode\u003e@​kashif\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45513\"\u003e#45513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GraniteMoeHybrid _update_mamba_mask crash on attention-only models (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45514\"\u003e#45514\u003c/a\u003e) by \u003ca href=\"https://github.com/tianhaocui\"\u003e\u003ccode\u003e@​tianhaocui\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45514\"\u003e#45514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlign latest model attention function dispatch (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45598\"\u003e#45598\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45598\"\u003e#45598\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTokenizers\u003c/h2\u003e\n\u003cp\u003eThere was a bug in AutoTokenizer that caused the wrong tokenizer class to be initialized. This caused regressions in models like DeepSeek R1.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003echange got reverted (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45680\"\u003e#45680\u003c/a\u003e) by \u003ca href=\"https://github.com/itazap\"\u003e\u003ccode\u003e@​itazap\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45680\"\u003e#45680\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGeneration\u003c/h2\u003e\n\u003cp\u003eContinuous batching generation received several fixes and improvements, including correcting KV deduplication and memory estimation for long sequences (16K+), and removing misleading warnings about \u003ccode\u003enum_return_sequences\u003c/code\u003e and other unsupported features that were incorrectly firing even when functionality worked correctly. Documentation for per-request sampling parameters was also added.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003egenerate: drop stale num_return_sequences warning on continuous batching path (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45582\"\u003e#45582\u003c/a\u003e) by \u003ca href=\"https://github.com/joaquinhuigomez\"\u003e\u003ccode\u003e@​joaquinhuigomez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45582\"\u003e#45582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/6ffbb07f93d9e44457450d1150136309b0dc966b\"\u003e\u003ccode\u003e6ffbb07\u003c/code\u003e\u003c/a\u003e v5.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/18e7fd752e6fa7dd4ff8b828ff8f3aec5b0882ae\"\u003e\u003ccode\u003e18e7fd7\u003c/code\u003e\u003c/a\u003e change got reverted (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45680\"\u003e#45680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/2dff8f76f48abd7dd31b8dc156046509887d3cf1\"\u003e\u003ccode\u003e2dff8f7\u003c/code\u003e\u003c/a\u003e v5.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93bed93e7518444cce442a89c78008fa0a21c963\"\u003e\u003ccode\u003e93bed93\u003c/code\u003e\u003c/a\u003e fixing more typos (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45689\"\u003e#45689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/a29e9675a864e2c7854a4d0f574589a8db1dac2e\"\u003e\u003ccode\u003ea29e967\u003c/code\u003e\u003c/a\u003e [docs] cb memory management (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45587\"\u003e#45587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/2d01799735d455f745b9c53d5a9d2eebdd7be569\"\u003e\u003ccode\u003e2d01799\u003c/code\u003e\u003c/a\u003e [docs] cpu offloading (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45660\"\u003e#45660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4aba7167e328965caadcdfc6834b982037889f86\"\u003e\u003ccode\u003e4aba716\u003c/code\u003e\u003c/a\u003e docs(README_zh-hans): clarify conditions for not using Transformers (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45688\"\u003e#45688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f4fc6d013864f5389b6518787438cf55359613d1\"\u003e\u003ccode\u003ef4fc6d0\u003c/code\u003e\u003c/a\u003e fix padding side issue for fast_vlm tests (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45592\"\u003e#45592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5d7ff4393ab99aa7cadf4cccd1f814dbb799f2bb\"\u003e\u003ccode\u003e5d7ff43\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ex_clip\u003c/code\u003e: 8 failed test cases (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45394\"\u003e#45394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/aadc005711da266af1f75c33185172af9d9f19bf\"\u003e\u003ccode\u003eaadc005\u003c/code\u003e\u003c/a\u003e zero_shot_object_detection ValueError fix for python 3.13 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45669\"\u003e#45669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.128.0 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.128.0...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.12.0 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.12.0...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Django] Pass correct registry to MultiProcessCollector by \u003ca href=\"https://github.com/jelly\"\u003e\u003ccode\u003e@​jelly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1152\"\u003eprometheus/client_python#1152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an AIOHTTP exporter by \u003ca href=\"https://github.com/Lexicality\"\u003e\u003ccode\u003e@​Lexicality\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1139\"\u003eprometheus/client_python#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd remove_matching() method for metric label deletion by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1121\"\u003eprometheus/client_python#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(multiprocess): avoid double-building child metric names (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1035\"\u003e#1035\u003c/a\u003e) by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1146\"\u003eprometheus/client_python#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't interleave histogram metrics in multi-process collector by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1148\"\u003eprometheus/client_python#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax registry type annotations for exposition by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1149\"\u003eprometheus/client_python#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded compression support in pushgateway by \u003ca href=\"https://github.com/ritesh-avesha\"\u003e\u003ccode\u003e@​ritesh-avesha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1144\"\u003eprometheus/client_python#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) by \u003ca href=\"https://github.com/Chadys\"\u003e\u003ccode\u003e@​Chadys\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1143\"\u003eprometheus/client_python#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1134\"\u003eprometheus/client_python#1134\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.22.1...v0.23.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.22.1...v0.23.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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/2cd1738fb880fd0e6aa9a02ec48585128388a6cd\"\u003e\u003ccode\u003e2cd1738\u003c/code\u003e\u003c/a\u003e Release 0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/daa1626eaf705318013b708954499b0a049088c8\"\u003e\u003ccode\u003edaa1626\u003c/code\u003e\u003c/a\u003e docs: add API reference for all metric types  (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1159\"\u003e#1159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/8673912276bdca7ddbca5d163eb11422b546bffb\"\u003e\u003ccode\u003e8673912\u003c/code\u003e\u003c/a\u003e Support MultiProcessCollector in RestrictedRegistry. (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1150\"\u003e#1150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/671f75c6f1f04838995fadd57cda21beee01838b\"\u003e\u003ccode\u003e671f75c\u003c/code\u003e\u003c/a\u003e Fix spaces in grouping key values for push_to_gateway (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/1cf53feae63b6ecb0bd76eee80582a0fba957e09\"\u003e\u003ccode\u003e1cf53fe\u003c/code\u003e\u003c/a\u003e Fix server shutdown documentation (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/a8541354519d04852d24688845f1d2d495eef59c\"\u003e\u003ccode\u003ea854135\u003c/code\u003e\u003c/a\u003e Migrate to Github Actions (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/f417f6ea8f058165a1934e368fed245e91aafc14\"\u003e\u003ccode\u003ef417f6e\u003c/code\u003e\u003c/a\u003e Release 0.24.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/6f0e967c1f7a408b75861d6833a8d303874be95d\"\u003e\u003ccode\u003e6f0e967\u003c/code\u003e\u003c/a\u003e Pass correct registry to MultiProcessCollector (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1152\"\u003e#1152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/c5024d310fbfcba45a5e9db62e337a3a7930ea16\"\u003e\u003ccode\u003ec5024d3\u003c/code\u003e\u003c/a\u003e Release 0.24.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/e1cdc203b1cf5f15c7b9a64d79fccc7907a62ca3\"\u003e\u003ccode\u003ee1cdc20\u003c/code\u003e\u003c/a\u003e Add Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1143\"\u003e#1143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"...\n\n_Description has been truncated_","html_url":"https://github.com/vllm-project/vllm/pull/41606","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vllm-project%2Fvllm/issues/41606","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/41606/packages"},{"uuid":"4313262857","node_id":"PR_kwDOR5C7Fc7U1l89","number":29,"state":"closed","title":"Bump the pip-dependency-updates group across 8 directories with 3 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-27T03:28:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-23T03:22:10.000Z","updated_at":"2026-04-27T03:28:51.000Z","time_to_close":346000,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-dependency-updates","update_count":3,"packages":[{"name":"packaging","old_version":"26.0","new_version":"26.1","repository_url":"https://github.com/pypa/packaging"},{"name":"packaging","old_version":"26.0","new_version":"26.1","repository_url":"https://github.com/pypa/packaging"},{"name":"packaging","old_version":"26.0","new_version":"26.1","repository_url":"https://github.com/pypa/packaging"},{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [packaging](https://github.com/pypa/packaging), [aiosqlite](https://github.com/omnilib/aiosqlite) and [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) to permit the latest version.\nUpdates `packaging` from 26.0 to 26.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cdel\u003ePEP 783: add handling for Emscripten wheel tags by \u003ca href=\"https://github.com/hoodmane\"\u003e\u003ccode\u003e@​hoodmane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/804\"\u003epypa/packaging#804\u003c/a\u003e\u003c/del\u003e (old name used in implementation, will be fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1099\"\u003epypa/packaging#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1065\"\u003epypa/packaging#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/944\"\u003epypa/packaging#944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1071\"\u003epypa/packaging#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1119\"\u003epypa/packaging#1119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1110\"\u003epypa/packaging#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1068\"\u003epypa/packaging#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1146\"\u003epypa/packaging#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1078\"\u003epypa/packaging#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1150\"\u003epypa/packaging#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1140\"\u003epypa/packaging#1140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026gt;V\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1141\"\u003epypa/packaging#1141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1125\"\u003epypa/packaging#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1102\"\u003epypa/packaging#1102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1092\"\u003epypa/packaging#1092\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1153\"\u003epypa/packaging#1153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1095\"\u003epypa/packaging#1095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGive preference to path over url by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1128\"\u003epypa/packaging#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1114\"\u003epypa/packaging#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026gt;\u003c/code\u003e comparison for versions with dev+local segments by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1097\"\u003epypa/packaging#1097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1093\"\u003epypa/packaging#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1109\"\u003epypa/packaging#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1121\"\u003epypa/packaging#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1096\"\u003epypa/packaging#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1090\"\u003epypa/packaging#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1124\"\u003epypa/packaging#1124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1155\"\u003epypa/packaging#1155\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1082\"\u003epypa/packaging#1082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1083\"\u003epypa/packaging#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1118\"\u003epypa/packaging#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1116\"\u003epypa/packaging#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1081\"\u003epypa/packaging#1081\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifierSet\u003c/code\u003e use \u003ccode\u003etuple\u003c/code\u003e instead of \u003ccode\u003efrozenset\u003c/code\u003e for \u003ccode\u003e_specs\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1108\"\u003epypa/packaging#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up complex \u003ccode\u003eSpecifierSet\u003c/code\u003e filtering by implementing cost-based ordering by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1105\"\u003epypa/packaging#1105\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.1 - 2026-04-14\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 783: add handling for Emscripten wheel tags in (:pull:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag in (:pull:\u003ccode\u003e1099\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package in (:pull:\u003ccode\u003e1065\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module in (:pull:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module in (:pull:\u003ccode\u003e1071\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) in (:pull:\u003ccode\u003e1119\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags in (:pull:\u003ccode\u003e1110\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e in (:pull:\u003ccode\u003e1068\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's in (:pull:\u003ccode\u003e1146\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e in (:pull:\u003ccode\u003e1078\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e in (:pull:\u003ccode\u003e1150\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026amp;lt;V.postN\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1140\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026amp;gt;V\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1141\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private in (:pull:\u003ccode\u003e1125\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII in (:pull:\u003ccode\u003e1102\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function in (:pull:\u003ccode\u003e1092\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e in (:pull:\u003ccode\u003e1153\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation in (:pull:\u003ccode\u003e1095\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eGive preference to path over url in (:pull:\u003ccode\u003e1128\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names in (:pull:\u003ccode\u003e1114\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026amp;gt;\u003c/code\u003e comparison for versions with dev+local segments in (:pull:\u003ccode\u003e1097\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e in (:pull:\u003ccode\u003e1093\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e in (:pull:\u003ccode\u003e1109\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting in (:pull:\u003ccode\u003e1121\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e in (:pull:\u003ccode\u003e1096\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output in (:pull:\u003ccode\u003e1090\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available in (:pull:\u003ccode\u003e1124\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e in (:pull:\u003ccode\u003e1155\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) in (:pull:\u003ccode\u003e1082\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property in (:pull:\u003ccode\u003e1083\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot in (:pull:\u003ccode\u003e1118\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects in (:pull:\u003ccode\u003e1116\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed in (:pull:\u003ccode\u003e1081\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/c1a88a3e035e8bfe47dbc957f4a2493e8a7b4f3c\"\u003e\u003ccode\u003ec1a88a3\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/702c25ecc297054f9597acda987a75dd6833acf5\"\u003e\u003ccode\u003e702c25e\u003c/code\u003e\u003c/a\u003e docs: update changelog for 26.1 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f4f5d46808f51709aba8341d4121f20752b3235\"\u003e\u003ccode\u003e3f4f5d4\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003eis_unsatisfiable\u003c/code\u003e on \u003ccode\u003eSpecifierSet\u003c/code\u003e using ranges (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1119\"\u003e#1119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/06c6555f44f0f7b84459c876375c5b1d52ee7fef\"\u003e\u003ccode\u003e06c6555\u003c/code\u003e\u003c/a\u003e Propagate int-max-str-digits ValueError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/905c90c1eb8c77dede11899194ca4b0f5eaf188d\"\u003e\u003ccode\u003e905c90c\u003c/code\u003e\u003c/a\u003e feat: option to validate compressed tag set sort order in `parse_wheel_filena...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/af0026cff97a8f28d165d6ac4afb58b2cdc8ffc5\"\u003e\u003ccode\u003eaf0026c\u003c/code\u003e\u003c/a\u003e docs(pylock): document select() method and PylockSelectError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/668da8662a112036e4850b68980790cb2d10dae9\"\u003e\u003ccode\u003e668da86\u003c/code\u003e\u003c/a\u003e Rename format_full_version to _format_full_version to make it visibly private...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/f294d529e2634798a98fd9cee6708307a5c1792c\"\u003e\u003ccode\u003ef294d52\u003c/code\u003e\u003c/a\u003e tests: do not reload the tags module (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1152\"\u003e#1152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/2c6c7dfa2d406e44b91f3f8d26eeed72437c9435\"\u003e\u003ccode\u003e2c6c7df\u003c/code\u003e\u003c/a\u003e feat: add handling for Emscripten wheels tags per PEP 783 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/804\"\u003e#804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/6762eea4de40da02c119d02cc77c907c6b446b86\"\u003e\u003ccode\u003e6762eea\u003c/code\u003e\u003c/a\u003e docs(markers): document \u0026amp; and | operators for combining Marker objects (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/26.0...26.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 26.0 to 26.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cdel\u003ePEP 783: add handling for Emscripten wheel tags by \u003ca href=\"https://github.com/hoodmane\"\u003e\u003ccode\u003e@​hoodmane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/804\"\u003epypa/packaging#804\u003c/a\u003e\u003c/del\u003e (old name used in implementation, will be fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1099\"\u003epypa/packaging#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1065\"\u003epypa/packaging#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/944\"\u003epypa/packaging#944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1071\"\u003epypa/packaging#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1119\"\u003epypa/packaging#1119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1110\"\u003epypa/packaging#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1068\"\u003epypa/packaging#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1146\"\u003epypa/packaging#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1078\"\u003epypa/packaging#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1150\"\u003epypa/packaging#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1140\"\u003epypa/packaging#1140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026gt;V\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1141\"\u003epypa/packaging#1141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1125\"\u003epypa/packaging#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1102\"\u003epypa/packaging#1102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1092\"\u003epypa/packaging#1092\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1153\"\u003epypa/packaging#1153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1095\"\u003epypa/packaging#1095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGive preference to path over url by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1128\"\u003epypa/packaging#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1114\"\u003epypa/packaging#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026gt;\u003c/code\u003e comparison for versions with dev+local segments by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1097\"\u003epypa/packaging#1097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1093\"\u003epypa/packaging#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1109\"\u003epypa/packaging#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1121\"\u003epypa/packaging#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1096\"\u003epypa/packaging#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1090\"\u003epypa/packaging#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1124\"\u003epypa/packaging#1124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1155\"\u003epypa/packaging#1155\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1082\"\u003epypa/packaging#1082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1083\"\u003epypa/packaging#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1118\"\u003epypa/packaging#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1116\"\u003epypa/packaging#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1081\"\u003epypa/packaging#1081\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifierSet\u003c/code\u003e use \u003ccode\u003etuple\u003c/code\u003e instead of \u003ccode\u003efrozenset\u003c/code\u003e for \u003ccode\u003e_specs\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1108\"\u003epypa/packaging#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up complex \u003ccode\u003eSpecifierSet\u003c/code\u003e filtering by implementing cost-based ordering by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1105\"\u003epypa/packaging#1105\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.1 - 2026-04-14\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 783: add handling for Emscripten wheel tags in (:pull:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag in (:pull:\u003ccode\u003e1099\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package in (:pull:\u003ccode\u003e1065\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module in (:pull:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module in (:pull:\u003ccode\u003e1071\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) in (:pull:\u003ccode\u003e1119\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags in (:pull:\u003ccode\u003e1110\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e in (:pull:\u003ccode\u003e1068\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's in (:pull:\u003ccode\u003e1146\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e in (:pull:\u003ccode\u003e1078\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e in (:pull:\u003ccode\u003e1150\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026amp;lt;V.postN\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1140\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026amp;gt;V\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1141\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private in (:pull:\u003ccode\u003e1125\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII in (:pull:\u003ccode\u003e1102\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function in (:pull:\u003ccode\u003e1092\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e in (:pull:\u003ccode\u003e1153\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation in (:pull:\u003ccode\u003e1095\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eGive preference to path over url in (:pull:\u003ccode\u003e1128\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names in (:pull:\u003ccode\u003e1114\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026amp;gt;\u003c/code\u003e comparison for versions with dev+local segments in (:pull:\u003ccode\u003e1097\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e in (:pull:\u003ccode\u003e1093\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e in (:pull:\u003ccode\u003e1109\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting in (:pull:\u003ccode\u003e1121\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e in (:pull:\u003ccode\u003e1096\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output in (:pull:\u003ccode\u003e1090\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available in (:pull:\u003ccode\u003e1124\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e in (:pull:\u003ccode\u003e1155\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) in (:pull:\u003ccode\u003e1082\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property in (:pull:\u003ccode\u003e1083\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot in (:pull:\u003ccode\u003e1118\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects in (:pull:\u003ccode\u003e1116\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed in (:pull:\u003ccode\u003e1081\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/c1a88a3e035e8bfe47dbc957f4a2493e8a7b4f3c\"\u003e\u003ccode\u003ec1a88a3\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/702c25ecc297054f9597acda987a75dd6833acf5\"\u003e\u003ccode\u003e702c25e\u003c/code\u003e\u003c/a\u003e docs: update changelog for 26.1 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f4f5d46808f51709aba8341d4121f20752b3235\"\u003e\u003ccode\u003e3f4f5d4\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003eis_unsatisfiable\u003c/code\u003e on \u003ccode\u003eSpecifierSet\u003c/code\u003e using ranges (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1119\"\u003e#1119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/06c6555f44f0f7b84459c876375c5b1d52ee7fef\"\u003e\u003ccode\u003e06c6555\u003c/code\u003e\u003c/a\u003e Propagate int-max-str-digits ValueError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/905c90c1eb8c77dede11899194ca4b0f5eaf188d\"\u003e\u003ccode\u003e905c90c\u003c/code\u003e\u003c/a\u003e feat: option to validate compressed tag set sort order in `parse_wheel_filena...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/af0026cff97a8f28d165d6ac4afb58b2cdc8ffc5\"\u003e\u003ccode\u003eaf0026c\u003c/code\u003e\u003c/a\u003e docs(pylock): document select() method and PylockSelectError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/668da8662a112036e4850b68980790cb2d10dae9\"\u003e\u003ccode\u003e668da86\u003c/code\u003e\u003c/a\u003e Rename format_full_version to _format_full_version to make it visibly private...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/f294d529e2634798a98fd9cee6708307a5c1792c\"\u003e\u003ccode\u003ef294d52\u003c/code\u003e\u003c/a\u003e tests: do not reload the tags module (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1152\"\u003e#1152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/2c6c7dfa2d406e44b91f3f8d26eeed72437c9435\"\u003e\u003ccode\u003e2c6c7df\u003c/code\u003e\u003c/a\u003e feat: add handling for Emscripten wheels tags per PEP 783 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/804\"\u003e#804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/6762eea4de40da02c119d02cc77c907c6b446b86\"\u003e\u003ccode\u003e6762eea\u003c/code\u003e\u003c/a\u003e docs(markers): document \u0026amp; and | operators for combining Marker objects (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/26.0...26.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiosqlite` to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.1\u003c/h2\u003e\n\u003cp\u003eBug fix release\u003c/p\u003e\n\u003cp\u003eNOTE: Starting with \u003ccode\u003ev0.22.0\u003c/code\u003e, the \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e object no longer\ninherits from \u003ccode\u003ethreading.Thread\u003c/code\u003e. If not using aiosqlite as a context manager,\nclients must \u003ccode\u003eawait connection.close()\u003c/code\u003e or call \u003ccode\u003econnection.stop()\u003c/code\u003e to ensure\nthe helper thread is completed and terminated correctly. A \u003ccode\u003eResourceWarning\u003c/code\u003e\nwill be emitted for any connection that is garbage collected without being\nclosed or stopped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded synchronous \u003ccode\u003estop()\u003c/code\u003e method to \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e to enable safe\ncleanup and termination of the background thread without dependence\non having an active event loop (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.22.0...v0.22.1\n     2\tAmethyst Reese\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cp\u003eFeature release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eset_authorizer\u003c/code\u003e query access controls (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWait for transaction queue to complete when closing connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit warning when connection goes out of scope without being closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on \u003ccode\u003etyping_extensions\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.21.0...v0.22.0\n     1\tAlec Berryman\n     1\tAmethyst Reese\n     1\tDavid Andreoletti\n     1\tMarkus Heidelberg\n     1\tbeerpsi\n    19\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.21.0\u003c/h2\u003e\n\u003cp\u003eMaintenance release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix: close connection correctly when BaseException raised in connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMetadata improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/9b127cecc7de843bf4f343b6da63b641866533fb\"\u003e\u003ccode\u003e9b127ce\u003c/code\u003e\u003c/a\u003e Version bump v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/5c3f61c1ea49401f2716d8f58d494e76ca766921\"\u003e\u003ccode\u003e5c3f61c\u003c/code\u003e\u003c/a\u003e Improve stop semantics for connections (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/a869d73678adbc14472e4ac2c31f4e706efe8ef3\"\u003e\u003ccode\u003ea869d73\u003c/code\u003e\u003c/a\u003e Version bump v0.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/1cd60adcab12347577150a6fa6c7d92b7b86d989\"\u003e\u003ccode\u003e1cd60ad\u003c/code\u003e\u003c/a\u003e Emit warning if connection is deleted before it is closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/611d7b4f29fc3d7df6c173b2e79b0892e9d249aa\"\u003e\u003ccode\u003e611d7b4\u003c/code\u003e\u003c/a\u003e Add set_authorizer support for fine-grained access control (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/81d00c8f1676851c8634ca98f99e0973083ea75f\"\u003e\u003ccode\u003e81d00c8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/7a26722f7e6da6a1ae0febf515b4624794173fcc\"\u003e\u003ccode\u003e7a26722\u003c/code\u003e\u003c/a\u003e Bump coverage[toml] from 7.8.0 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/445754087ec452f888cc152debf79590d8a25d86\"\u003e\u003ccode\u003e4457540\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.2.0 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/b650dad318ad72e582b7ba1143cc05f270f8ab6b\"\u003e\u003ccode\u003eb650dad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/065ffdd1291693c5e69d2f3efff17e351d9a0163\"\u003e\u003ccode\u003e065ffdd\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.15.0 to 1.19.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.20.0...v0.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 26.0 to 26.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cdel\u003ePEP 783: add handling for Emscripten wheel tags by \u003ca href=\"https://github.com/hoodmane\"\u003e\u003ccode\u003e@​hoodmane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/804\"\u003epypa/packaging#804\u003c/a\u003e\u003c/del\u003e (old name used in implementation, will be fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1099\"\u003epypa/packaging#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1065\"\u003epypa/packaging#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/944\"\u003epypa/packaging#944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1071\"\u003epypa/packaging#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1119\"\u003epypa/packaging#1119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1110\"\u003epypa/packaging#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1068\"\u003epypa/packaging#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1146\"\u003epypa/packaging#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1078\"\u003epypa/packaging#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1150\"\u003epypa/packaging#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1140\"\u003epypa/packaging#1140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026gt;V\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1141\"\u003epypa/packaging#1141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1125\"\u003epypa/packaging#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1102\"\u003epypa/packaging#1102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1092\"\u003epypa/packaging#1092\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1153\"\u003epypa/packaging#1153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1095\"\u003epypa/packaging#1095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGive preference to path over url by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1128\"\u003epypa/packaging#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1114\"\u003epypa/packaging#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026gt;\u003c/code\u003e comparison for versions with dev+local segments by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1097\"\u003epypa/packaging#1097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1093\"\u003epypa/packaging#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1109\"\u003epypa/packaging#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1121\"\u003epypa/packaging#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1096\"\u003epypa/packaging#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1090\"\u003epypa/packaging#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1124\"\u003epypa/packaging#1124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1155\"\u003epypa/packaging#1155\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1082\"\u003epypa/packaging#1082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1083\"\u003epypa/packaging#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1118\"\u003epypa/packaging#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1116\"\u003epypa/packaging#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1081\"\u003epypa/packaging#1081\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifierSet\u003c/code\u003e use \u003ccode\u003etuple\u003c/code\u003e instead of \u003ccode\u003efrozenset\u003c/code\u003e for \u003ccode\u003e_specs\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1108\"\u003epypa/packaging#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up complex \u003ccode\u003eSpecifierSet\u003c/code\u003e filtering by implementing cost-based ordering by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1105\"\u003epypa/packaging#1105\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.1 - 2026-04-14\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 783: add handling for Emscripten wheel tags in (:pull:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag in (:pull:\u003ccode\u003e1099\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package in (:pull:\u003ccode\u003e1065\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module in (:pull:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module in (:pull:\u003ccode\u003e1071\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) in (:pull:\u003ccode\u003e1119\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags in (:pull:\u003ccode\u003e1110\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e in (:pull:\u003ccode\u003e1068\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's in (:pull:\u003ccode\u003e1146\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e in (:pull:\u003ccode\u003e1078\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e in (:pull:\u003ccode\u003e1150\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026amp;lt;V.postN\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1140\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026amp;gt;V\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1141\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private in (:pull:\u003ccode\u003e1125\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII in (:pull:\u003ccode\u003e1102\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function in (:pull:\u003ccode\u003e1092\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e in (:pull:\u003ccode\u003e1153\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation in (:pull:\u003ccode\u003e1095\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eGive preference to path over url in (:pull:\u003ccode\u003e1128\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names in (:pull:\u003ccode\u003e1114\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026amp;gt;\u003c/code\u003e comparison for versions with dev+local segments in (:pull:\u003ccode\u003e1097\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e in (:pull:\u003ccode\u003e1093\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e in (:pull:\u003ccode\u003e1109\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting in (:pull:\u003ccode\u003e1121\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e in (:pull:\u003ccode\u003e1096\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output in (:pull:\u003ccode\u003e1090\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available in (:pull:\u003ccode\u003e1124\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e in (:pull:\u003ccode\u003e1155\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) in (:pull:\u003ccode\u003e1082\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property in (:pull:\u003ccode\u003e1083\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot in (:pull:\u003ccode\u003e1118\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects in (:pull:\u003ccode\u003e1116\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed in (:pull:\u003ccode\u003e1081\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/c1a88a3e035e8bfe47dbc957f4a2493e8a7b4f3c\"\u003e\u003ccode\u003ec1a88a3\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/702c25ecc297054f9597acda987a75dd6833acf5\"\u003e\u003ccode\u003e702c25e\u003c/code\u003e\u003c/a\u003e docs: update changelog for 26.1 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f4f5d46808f51709aba8341d4121f20752b3235\"\u003e\u003ccode\u003e3f4f5d4\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003eis_unsatisfiable\u003c/code\u003e on \u003ccode\u003eSpecifierSet\u003c/code\u003e using ranges (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1119\"\u003e#1119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/06c6555f44f0f7b84459c876375c5b1d52ee7fef\"\u003e\u003ccode\u003e06c6555\u003c/code\u003e\u003c/a\u003e Propagate int-max-str-digits ValueError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/905c90c1eb8c77dede11899194ca4b0f5eaf188d\"\u003e\u003ccode\u003e905c90c\u003c/code\u003e\u003c/a\u003e feat: option to validate compressed tag set sort order in `parse_wheel_filena...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/af0026cff97a8f28d165d6ac4afb58b2cdc8ffc5\"\u003e\u003ccode\u003eaf0026c\u003c/code\u003e\u003c/a\u003e docs(pylock): document select() method and PylockSelectError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/668da8662a112036e4850b68980790cb2d10dae9\"\u003e\u003ccode\u003e668da86\u003c/code\u003e\u003c/a\u003e Rename format_full_version to _format_full_version to make it visibly private...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/f294d529e2634798a98fd9cee6708307a5c1792c\"\u003e\u003ccode\u003ef294d52\u003c/code\u003e\u003c/a\u003e tests: do not reload the tags module (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1152\"\u003e#1152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/2c6c7dfa2d406e44b91f3f8d26eeed72437c9435\"\u003e\u003ccode\u003e2c6c7df\u003c/code\u003e\u003c/a\u003e feat: add handling for Emscripten wheels tags per PEP 783 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/804\"\u003e#804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/6762eea4de40da02c119d02cc77c907c6b446b86\"\u003e\u003ccode\u003e6762eea\u003c/code\u003e\u003c/a\u003e docs(markers): document \u0026amp; and | operators for combining Marker objects (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/26.0...26.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.56.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\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/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Cont...\n\n_Description has been truncated_","html_url":"https://github.com/vijaygi-ind/airflow-2/pull/29","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vijaygi-ind%2Fairflow-2/issues/29","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/29/packages"},{"uuid":"4294409564","node_id":"PR_kwDOR0tLLM7T4gG0","number":46,"state":"open","title":"chore(deps): bump the python-non-major group across 1 directory with 19 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-20T08:56:24.000Z","updated_at":"2026-04-20T09:42:46.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-non-major","update_count":19,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.2","repository_url":"https://github.com/pydantic/pydantic"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"ruff","old_version":"0.14.8","new_version":"0.15.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.19.0","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"datamodel-code-generator","old_version":"0.45.0","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"presidio-analyzer","old_version":"2.2.361","new_version":"2.2.362","repository_url":"https://github.com/Microsoft/presidio"},{"name":"spacy","old_version":"3.8.11","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.28","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"onnxruntime","old_version":"1.24.2","new_version":"1.24.4","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"torch","old_version":"2.10.0","new_version":"2.11.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"pillow","old_version":"12.1.1","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"datasketch","old_version":"1.9.0","new_version":"1.10.0","repository_url":"https://github.com/ekzhu/datasketch"},{"name":"sentence-transformers","old_version":"5.2.3","new_version":"5.4.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"datasets","old_version":"4.6.0","new_version":"4.8.4","repository_url":"https://github.com/huggingface/datasets"},{"name":"snowflake-connector-python","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/snowflakedb/snowflake-connector-python"},{"name":"boto3","old_version":"1.42.56","new_version":"1.42.91","repository_url":"https://github.com/boto/boto3"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"google-cloud-storage","old_version":"3.9.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-non-major group with 19 updates in the /apps/cli directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.2` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.15.11` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.20.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.45.0` | `0.56.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [presidio-analyzer](https://github.com/Microsoft/presidio) | `2.2.361` | `2.2.362` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.11` | `3.8.14` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.25` | `9.0.28` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.24.2` | `1.24.4` |\n| [torch](https://github.com/pytorch/pytorch) | `2.10.0` | `2.11.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.1.1` | `12.2.0` |\n| [datasketch](https://github.com/ekzhu/datasketch) | `1.9.0` | `1.10.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.3` | `5.4.1` |\n| [datasets](https://github.com/huggingface/datasets) | `4.6.0` | `4.8.4` |\n| [snowflake-connector-python](https://github.com/snowflakedb/snowflake-connector-python) | `4.3.0` | `4.4.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.56` | `1.42.91` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.9.0` | `3.10.1` |\n\n\nUpdates `pydantic` from 2.12.5 to 2.13.2\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.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\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\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin 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/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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.2/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\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\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin 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/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration 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/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/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\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/17a35e371bdff348c0690651d324c91fc7c9ff9e\"\u003e\u003ccode\u003e17a35e3\u003c/code\u003e\u003c/a\u003e Update jiter to v0.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13064\"\u003e#13064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/feea402b23fa23774669908c4e08a61ba1e4238e\"\u003e\u003ccode\u003efeea402\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003esimulation\u003c/code\u003e mode in Codspeed CI (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13063\"\u003e#13063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/671c9b0d4d3f9b2f1b95ca32ac85cb69e824e0bc\"\u003e\u003ccode\u003e671c9b0\u003c/code\u003e\u003c/a\u003e Add basic benchmarks for model equality (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13061\"\u003e#13061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\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\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\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\u003eVarious typo fixes and doc 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/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.8 to 0.15.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\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/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.11\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.11/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.11/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.15.11\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz\"\u003eruff-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz\"\u003eruff-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip\"\u003eruff-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip\"\u003eruff-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\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/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\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/astral-sh/ruff/commit/53554b1cfe837f2eb992a81794480699478f1116\"\u003e\u003ccode\u003e53554b1\u003c/code\u003e\u003c/a\u003e Bump 0.15.11 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24678\"\u003e#24678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/08c56c83cffbb1025cbf5bdede6c6d8be591cf47\"\u003e\u003ccode\u003e08c56c8\u003c/code\u003e\u003c/a\u003e Factor out the \u003ccode\u003emdtest\u003c/code\u003e crate (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24616\"\u003e#24616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/725fbb736d2a999971449b61190b914abd26102a\"\u003e\u003ccode\u003e725fbb7\u003c/code\u003e\u003c/a\u003e [ty] Use partially qualified names when reporting diagnostics regarding bad c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ddd6a30ff5fa27694dc1c50d0749885a1519d0a7\"\u003e\u003ccode\u003eddd6a30\u003c/code\u003e\u003c/a\u003e [ty] Do not suggest argument completion when at value of keyword argument (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9282e61d482a36da08d66bb8271afeef50b3bc45\"\u003e\u003ccode\u003e9282e61\u003c/code\u003e\u003c/a\u003e Disallow \u003ca href=\"https://github.com/disjoint\"\u003e\u003ccode\u003e@​disjoint\u003c/code\u003e\u003c/a\u003e_base on TypedDicts and Protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24671\"\u003e#24671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9986d8e3008eefe2e387312c4dc8b9c60f6f362\"\u003e\u003ccode\u003ee9986d8\u003c/code\u003e\u003c/a\u003e [ty] Reject using properties with \u003ccode\u003eNever\u003c/code\u003e setters or deleters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24510\"\u003e#24510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9cf212ff82f7b66b4a275ad6a9b1564aee1fa4a8\"\u003e\u003ccode\u003e9cf212f\u003c/code\u003e\u003c/a\u003e [ty] Normalize property setter and deleter wrappers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24509\"\u003e#24509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/12a1589de4d7120cf99441ee4c14871bdc20968d\"\u003e\u003ccode\u003e12a1589\u003c/code\u003e\u003c/a\u003e Add override mention to ASYNC109 docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dccb03d010f4442ed60624f8d2ba932706abaabb\"\u003e\u003ccode\u003edccb03d\u003c/code\u003e\u003c/a\u003e [ty] Avoid panicking on overloaded \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24661\"\u003e#24661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/61f9a0a5763fb068cd2f26c0ee9d63a277fb26c2\"\u003e\u003ccode\u003e61f9a0a\u003c/code\u003e\u003c/a\u003e [ty] Sync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24646\"\u003e#24646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.8...0.15.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.0 to 1.20.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.20.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways disable sync in SQLite cache (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21184\"\u003e21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTemporarily skip few base64 tests (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21193\"\u003e21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u003ccode\u003edict.__or__\u003c/code\u003e typeshed change (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21186\"\u003e21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing for match case with variadic tuples (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21192\"\u003e21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing \u003ccode\u003etype[T]\u003c/code\u003e in type calls (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21174\"\u003e21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression for catching empty tuple in except (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21153\"\u003e21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix reachability for frozenset and dict view narrowing (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21151\"\u003e21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing with chained comparison (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21150\"\u003e21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing to unreachable at module level (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21144\"\u003e21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow dangerous identity comparisons to \u003ccode\u003eAny\u003c/code\u003e typed variables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21142\"\u003e21142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--warn-unused-config\u003c/code\u003e should not be a strict flag (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21139\"\u003e21139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/c60e8bfcb5910974b577e443725c475e0485d269\"\u003e\u003ccode\u003ec60e8bf\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/842e4927738264949e969df0c2ee285a13594d06\"\u003e\u003ccode\u003e842e492\u003c/code\u003e\u003c/a\u003e Always disable sync in SQLite cache (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21184\"\u003e#21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e82a046356b242441fcd55c8cf922c7904ef311a\"\u003e\u003ccode\u003ee82a046\u003c/code\u003e\u003c/a\u003e Temporarily skip few base64 tests (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21193\"\u003e#21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f7fa418b6504e20c1277947e03a6db2f6d03e13e\"\u003e\u003ccode\u003ef7fa418\u003c/code\u003e\u003c/a\u003e Revert dict.\u003cstrong\u003eor\u003c/strong\u003e typeshed change (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21186\"\u003e#21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a2e8ee1afd5bbda26ad301496685295b1a7997a3\"\u003e\u003ccode\u003ea2e8ee1\u003c/code\u003e\u003c/a\u003e Fix narrowing for match case with variadic tuples (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21192\"\u003e#21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/521f88f510c2065132909928815f08502097ceea\"\u003e\u003ccode\u003e521f88f\u003c/code\u003e\u003c/a\u003e Avoid narrowing type[T] in type calls (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21174\"\u003e#21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4876e9186b927fe4777609fc9932752dcfb7047\"\u003e\u003ccode\u003ea4876e9\u003c/code\u003e\u003c/a\u003e Fix regression for catching empty tuple in except (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21153\"\u003e#21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6fccffcac0c8c24034d4f2b262ca7e5564ba9375\"\u003e\u003ccode\u003e6fccffc\u003c/code\u003e\u003c/a\u003e Fix reachability for frozenset and dict view narrowing (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21151\"\u003e#21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/de50419dc84a66f0e8606308023f81a44dee54f3\"\u003e\u003ccode\u003ede50419\u003c/code\u003e\u003c/a\u003e Fix narrowing with chained comparison (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21150\"\u003e#21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/eafcf18ff1d83923c0f749cf3056962df63ed693\"\u003e\u003ccode\u003eeafcf18\u003c/code\u003e\u003c/a\u003e Avoid narrowing to unreachable at module level (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21144\"\u003e#21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.0...v1.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.45.0 to 0.56.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\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/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.0\"\u003e0.56.0\u003c/a\u003e - 2026-04-04\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/6274b70b58e6dab57a1797beb8006f9fcdbf7dbe\"\u003e\u003ccode\u003e6274b70\u003c/code\u003e\u003c/a\u003e Docs: describe --keep-model-order as deterministic dependency-aware ordering ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/3e87a9a4a712b2cb8ad6d9faaa85c86ac8838ffe\"\u003e\u003ccode\u003e3e87a9a\u003c/code\u003e\u003c/a\u003e Fix root model reuse collapse (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3089\"\u003e#3089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/51377952477da7ef39efcb2f3e256ae51ad7a1f8\"\u003e\u003ccode\u003e5137795\u003c/code\u003e\u003c/a\u003e tomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3088\"\u003e#3088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d7a1f7166624eadcd84e97b8d2ca09e8c6dde957\"\u003e\u003ccode\u003ed7a1f71\u003c/code\u003e\u003c/a\u003e Fix relative URL refs with path-only root ids (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f0960e9e2362f1dab2facb55853d2e56a3a923b4\"\u003e\u003ccode\u003ef0960e9\u003c/code\u003e\u003c/a\u003e Prefer CLI input over pyproject url (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/05901ff4ad110b750dcfd996aeaca410767240cd\"\u003e\u003ccode\u003e05901ff\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json sup...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5ba49a72dbfc69dc781a87c6adadb785d794f475\"\u003e\u003ccode\u003e5ba49a7\u003c/code\u003e\u003c/a\u003e docs: update CHANGELOG.md for 0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/52d9ef9dec52f3ad14130710eefb010f0e492160\"\u003e\u003ccode\u003e52d9ef9\u003c/code\u003e\u003c/a\u003e [codex] Refresh project usage list (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7d41fef7884579d728fe42a1e266d8b950ccd72d\"\u003e\u003ccode\u003e7d41fef\u003c/code\u003e\u003c/a\u003e Support JSON files for mapping options (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a8cd0da7a6d17bfd70c5c2623699ffc6aa818fd\"\u003e\u003ccode\u003e5a8cd0d\u003c/code\u003e\u003c/a\u003e Fix non-string OpenAPI discriminator literals (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.45.0...0.56.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\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\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `presidio-analyzer` from 2.2.361 to 2.2.362\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Microsoft/presidio/releases\"\u003epresidio-analyzer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2.2.362\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - GPU Device Control via Environment Variable by \u003ca href=\"https://github.com/RonShakutai\"\u003e\u003ccode\u003e@​RonShakutai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1844\"\u003emicrosoft/presidio#1844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add HuggingFaceNerRecognizer for direct NER model inference by \u003ca href=\"https://github.com/ultramancode\"\u003e\u003ccode\u003e@​ultramancode\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1834\"\u003emicrosoft/presidio#1834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Broken Links by \u003ca href=\"https://github.com/andyjessen\"\u003e\u003ccode\u003e@​andyjessen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1856\"\u003emicrosoft/presidio#1856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin dependencies to mitigate supply chain attacks by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1861\"\u003emicrosoft/presidio#1861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2024-47874 and CVE-2025-54121 by ...\n\n_Description has been truncated_","html_url":"https://github.com/classifyre-com/classifyre/pull/46","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/classifyre-com%2Fclassifyre/issues/46","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/46/packages"},{"uuid":"4288729459","node_id":"PR_kwDOSGQubc7TnbKE","number":15,"state":"open","title":"Update datamodel-code-generator requirement from \u003c0.30,\u003e=0.26 to \u003e=0.26,\u003c0.57 in /apps/api","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-18T17:40:43.000Z","updated_at":"2026-04-18T20:00:42.342Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"datamodel-code-generator","old_version":"\u003c0.30,\u003e=0.26","new_version":"\u003e=0.26,\u003c0.57","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":"/apps/api","ecosystem":"pip"},"body":"Updates the requirements on [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.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/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.0\"\u003e0.56.0\u003c/a\u003e - 2026-04-04\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/6274b70b58e6dab57a1797beb8006f9fcdbf7dbe\"\u003e\u003ccode\u003e6274b70\u003c/code\u003e\u003c/a\u003e Docs: describe --keep-model-order as deterministic dependency-aware ordering ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/3e87a9a4a712b2cb8ad6d9faaa85c86ac8838ffe\"\u003e\u003ccode\u003e3e87a9a\u003c/code\u003e\u003c/a\u003e Fix root model reuse collapse (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3089\"\u003e#3089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/51377952477da7ef39efcb2f3e256ae51ad7a1f8\"\u003e\u003ccode\u003e5137795\u003c/code\u003e\u003c/a\u003e tomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3088\"\u003e#3088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d7a1f7166624eadcd84e97b8d2ca09e8c6dde957\"\u003e\u003ccode\u003ed7a1f71\u003c/code\u003e\u003c/a\u003e Fix relative URL refs with path-only root ids (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f0960e9e2362f1dab2facb55853d2e56a3a923b4\"\u003e\u003ccode\u003ef0960e9\u003c/code\u003e\u003c/a\u003e Prefer CLI input over pyproject url (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/05901ff4ad110b750dcfd996aeaca410767240cd\"\u003e\u003ccode\u003e05901ff\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json sup...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5ba49a72dbfc69dc781a87c6adadb785d794f475\"\u003e\u003ccode\u003e5ba49a7\u003c/code\u003e\u003c/a\u003e docs: update CHANGELOG.md for 0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/52d9ef9dec52f3ad14130710eefb010f0e492160\"\u003e\u003ccode\u003e52d9ef9\u003c/code\u003e\u003c/a\u003e [codex] Refresh project usage list (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7d41fef7884579d728fe42a1e266d8b950ccd72d\"\u003e\u003ccode\u003e7d41fef\u003c/code\u003e\u003c/a\u003e Support JSON files for mapping options (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a8cd0da7a6d17bfd70c5c2623699ffc6aa818fd\"\u003e\u003ccode\u003e5a8cd0d\u003c/code\u003e\u003c/a\u003e Fix non-string OpenAPI discriminator literals (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.26.0...0.56.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/CT4nk3r/universal-downloader/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/CT4nk3r%2Funiversal-downloader/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"},{"uuid":"4252748213","node_id":"PR_kwDOR0tLLM7R6rWf","number":38,"state":"open","title":"chore(deps): bump the python-non-major group in /apps/cli with 19 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T08:40:04.000Z","updated_at":"2026-04-20T10:06:09.564Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-non-major","update_count":19,"packages":[{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"ruff","old_version":"0.14.8","new_version":"0.15.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.19.0","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"datamodel-code-generator","old_version":"0.45.0","new_version":"0.56.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"presidio-analyzer","old_version":"2.2.361","new_version":"2.2.362","repository_url":"https://github.com/Microsoft/presidio"},{"name":"presidio-anonymizer","old_version":"2.2.361","new_version":"2.2.362","repository_url":"https://github.com/Microsoft/presidio"},{"name":"spacy","old_version":"3.8.11","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.27","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"pillow","old_version":"12.1.1","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"onnxruntime","old_version":"1.24.2","new_version":"1.24.4","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"torch","old_version":"2.10.0","new_version":"2.11.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"sentence-transformers","old_version":"5.2.3","new_version":"5.4.0","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"datasets","old_version":"4.6.0","new_version":"4.8.4","repository_url":"https://github.com/huggingface/datasets"},{"name":"gliner","old_version":"0.2.25","new_version":"0.2.26","repository_url":"https://github.com/urchade/GLiNER"},{"name":"snowflake-connector-python","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/snowflakedb/snowflake-connector-python"},{"name":"boto3","old_version":"1.42.56","new_version":"1.42.88","repository_url":"https://github.com/boto/boto3"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"google-cloud-storage","old_version":"3.9.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"}],"path":"/apps/cli","ecosystem":"pip"},"body":"Bumps the python-non-major group in /apps/cli with 19 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.15.10` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.20.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.45.0` | `0.56.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [presidio-analyzer](https://github.com/Microsoft/presidio) | `2.2.361` | `2.2.362` |\n| [presidio-anonymizer](https://github.com/Microsoft/presidio) | `2.2.361` | `2.2.362` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.11` | `3.8.14` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.25` | `9.0.27` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.1.1` | `12.2.0` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.24.2` | `1.24.4` |\n| [torch](https://github.com/pytorch/pytorch) | `2.10.0` | `2.11.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.3` | `5.4.0` |\n| [datasets](https://github.com/huggingface/datasets) | `4.6.0` | `4.8.4` |\n| [gliner](https://github.com/urchade/GLiNER) | `0.2.25` | `0.2.26` |\n| [snowflake-connector-python](https://github.com/snowflakedb/snowflake-connector-python) | `4.3.0` | `4.4.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.56` | `1.42.88` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.9.0` | `3.10.1` |\n\nUpdates `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\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\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\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\u003eVarious typo fixes and doc 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/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.8 to 0.15.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.10\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.10/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.9\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-02.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Flag annotated variable redeclarations as \u003ccode\u003eF811\u003c/code\u003e in preview mode (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24244\"\u003e#24244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Allow dunder-named assignments in non-strict mode for \u003ccode\u003eRUF067\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24089\"\u003e#24089\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/252f76102a618bff6537b6c53c316ca3837f4abf\"\u003e\u003ccode\u003e252f761\u003c/code\u003e\u003c/a\u003e Bump 0.15.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24519\"\u003e#24519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/37a1ec8bb8e30955787b0cdf6e97f7f2254dba7f\"\u003e\u003ccode\u003e37a1ec8\u003c/code\u003e\u003c/a\u003e [ty] Fix assignability of intersections with bounded typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24502\"\u003e#24502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f518cc9ca0c830773dd49c3964eb5e49d52c8aed\"\u003e\u003ccode\u003ef518cc9\u003c/code\u003e\u003c/a\u003e [ty] Allow partially stringified \u003ccode\u003etype[…]\u003c/code\u003e annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24518\"\u003e#24518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/16c4090d0a711b9c0523b932014f3daf140f35bc\"\u003e\u003ccode\u003e16c4090\u003c/code\u003e\u003c/a\u003e docs: fix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/99d97bd72f1934ac2af93e52468c10ef1c7a1a4e\"\u003e\u003ccode\u003e99d97bd\u003c/code\u003e\u003c/a\u003e [ty] Tighten up a few edge cases in \u003ccode\u003eConcatenate\u003c/code\u003e type-expression parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2714e345bdd64a5baae3844c0d25db7b0b9fe330\"\u003e\u003ccode\u003e2714e34\u003c/code\u003e\u003c/a\u003e [ty] Enable \u003ccode\u003epull-diagnostics\u003c/code\u003e by default in E2E tests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24516\"\u003e#24516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d8bc700722ab1b7272a4d724839da7c569b349d4\"\u003e\u003ccode\u003ed8bc700\u003c/code\u003e\u003c/a\u003e LSP: Add support for custom extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a45f96d65dbd4f958b07accd718f8d2af48cb956\"\u003e\u003ccode\u003ea45f96d\u003c/code\u003e\u003c/a\u003e [ty] stop special-casing str constructor (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24514\"\u003e#24514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/87a0f01cfd016e0297ef05ab638cde006bf8d947\"\u003e\u003ccode\u003e87a0f01\u003c/code\u003e\u003c/a\u003e [ruff] Treat f-string interpolation as potential side effect in RUF019 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9ba8489b8d1f1fd5fd66887a74d5f2f58f733d4\"\u003e\u003ccode\u003ee9ba848\u003c/code\u003e\u003c/a\u003e [ty] Fix excess subscript argument inference for non-generic types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24354\"\u003e#24354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.8...0.15.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.0 to 1.20.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.20.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways disable sync in SQLite cache (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21184\"\u003e21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTemporarily skip few base64 tests (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21193\"\u003e21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u003ccode\u003edict.__or__\u003c/code\u003e typeshed change (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21186\"\u003e21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing for match case with variadic tuples (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21192\"\u003e21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing \u003ccode\u003etype[T]\u003c/code\u003e in type calls (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21174\"\u003e21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression for catching empty tuple in except (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21153\"\u003e21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix reachability for frozenset and dict view narrowing (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21151\"\u003e21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing with chained comparison (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21150\"\u003e21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing to unreachable at module level (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21144\"\u003e21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow dangerous identity comparisons to \u003ccode\u003eAny\u003c/code\u003e typed variables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21142\"\u003e21142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--warn-unused-config\u003c/code\u003e should not be a strict flag (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21139\"\u003e21139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/c60e8bfcb5910974b577e443725c475e0485d269\"\u003e\u003ccode\u003ec60e8bf\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/842e4927738264949e969df0c2ee285a13594d06\"\u003e\u003ccode\u003e842e492\u003c/code\u003e\u003c/a\u003e Always disable sync in SQLite cache (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21184\"\u003e#21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e82a046356b242441fcd55c8cf922c7904ef311a\"\u003e\u003ccode\u003ee82a046\u003c/code\u003e\u003c/a\u003e Temporarily skip few base64 tests (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21193\"\u003e#21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f7fa418b6504e20c1277947e03a6db2f6d03e13e\"\u003e\u003ccode\u003ef7fa418\u003c/code\u003e\u003c/a\u003e Revert dict.\u003cstrong\u003eor\u003c/strong\u003e typeshed change (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21186\"\u003e#21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a2e8ee1afd5bbda26ad301496685295b1a7997a3\"\u003e\u003ccode\u003ea2e8ee1\u003c/code\u003e\u003c/a\u003e Fix narrowing for match case with variadic tuples (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21192\"\u003e#21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/521f88f510c2065132909928815f08502097ceea\"\u003e\u003ccode\u003e521f88f\u003c/code\u003e\u003c/a\u003e Avoid narrowing type[T] in type calls (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21174\"\u003e#21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4876e9186b927fe4777609fc9932752dcfb7047\"\u003e\u003ccode\u003ea4876e9\u003c/code\u003e\u003c/a\u003e Fix regression for catching empty tuple in except (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21153\"\u003e#21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6fccffcac0c8c24034d4f2b262ca7e5564ba9375\"\u003e\u003ccode\u003e6fccffc\u003c/code\u003e\u003c/a\u003e Fix reachability for frozenset and dict view narrowing (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21151\"\u003e#21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/de50419dc84a66f0e8606308023f81a44dee54f3\"\u003e\u003ccode\u003ede50419\u003c/code\u003e\u003c/a\u003e Fix narrowing with chained comparison (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21150\"\u003e#21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/eafcf18ff1d83923c0f749cf3056962df63ed693\"\u003e\u003ccode\u003eeafcf18\u003c/code\u003e\u003c/a\u003e Avoid narrowing to unreachable at module level (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21144\"\u003e#21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.0...v1.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.45.0 to 0.56.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMissing local \u003ccode\u003e$ref\u003c/code\u003e now raises \u003ccode\u003eError\u003c/code\u003e instead of \u003ccode\u003eFileNotFoundError\u003c/code\u003e - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e pointed to a non-existent local file, a raw \u003ccode\u003eFileNotFoundError\u003c/code\u003e propagated to callers. Now it raises \u003ccode\u003edatamodel_code_generator.Error\u003c/code\u003e with the message \u003ccode\u003e\u0026quot;$ref file not found: \u0026lt;path\u0026gt;\u0026quot;\u003c/code\u003e. Programmatic users catching \u003ccode\u003eFileNotFoundError\u003c/code\u003e specifically will need to catch \u003ccode\u003eError\u003c/code\u003e instead (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch failures now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead of propagating raw exceptions - HTTP errors (4xx/5xx status codes), unexpected HTML responses, and transport errors (DNS, timeout, connection) that previously resulted in downstream YAML/JSON parse errors or raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e (a subclass of \u003ccode\u003eError\u003c/code\u003e) before parsing is attempted. Users catching specific parse errors or \u003ccode\u003ehttpx\u003c/code\u003e exceptions for these scenarios will need to update their error handling (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch errors now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead of raw httpx exceptions - The \u003ccode\u003eget_body()\u003c/code\u003e function in \u003ccode\u003ehttp.py\u003c/code\u003e now catches HTTP errors and raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (a new \u003ccode\u003eError\u003c/code\u003e subclass) for HTTP status \u0026gt;= 400, network failures, and unexpected HTML responses. Code that caught raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote schema fetching will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits \u003ccode\u003eFutureWarning\u003c/code\u003e without \u003ccode\u003e--allow-remote-refs\u003c/code\u003e - Fetching remote HTTP/HTTPS \u003ccode\u003e$ref\u003c/code\u003e references without explicitly passing \u003ccode\u003e--allow-remote-refs\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e deprecation warning. In a future version, remote fetching will be disabled by default. Users relying on implicit remote ref fetching should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch errors now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e with validation of response content type - Previously, fetching a remote \u003ccode\u003e$ref\u003c/code\u003e that returned an HTML error page would silently pass the HTML through as schema content. Now it raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e if the response has \u003ccode\u003etext/html\u003c/code\u003e content type or a 4xx/5xx status code. This may cause previously-silent failures to become loud errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDefault Behavior Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplicit remote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits \u003ccode\u003eFutureWarning\u003c/code\u003e - When a \u003ccode\u003e$ref\u003c/code\u003e resolves to an HTTP(S) URL and \u003ccode\u003e--allow-remote-refs\u003c/code\u003e is not explicitly passed, the tool still fetches the remote reference but emits a \u003ccode\u003eFutureWarning\u003c/code\u003e. This may cause failures in environments running with \u003ccode\u003e-W error\u003c/code\u003e (warnings as errors) or strict warning filters. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e explicitly to suppress the warning (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e - When the parser encounters an HTTP/HTTPS \u003ccode\u003e$ref\u003c/code\u003e without \u003ccode\u003e--allow-remote-refs\u003c/code\u003e being explicitly set, a \u003ccode\u003eFutureWarning\u003c/code\u003e is emitted warning that remote fetching will be disabled by default in a future version. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to silence the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching immediately. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eType alias templates updated with \u003ccode\u003efields\u003c/code\u003e guard - All six type alias templates (\u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeStatement.jinja2\u003c/code\u003e) now wrap the main body in \u003ccode\u003e{% if fields %}...{% else %}\u003c/code\u003e blocks that fall back to \u003ccode\u003e{{ base_class }}\u003c/code\u003e when no fields are present. Users with custom copies of these templates must add the same guard or handle the empty-fields case. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType alias Jinja2 templates now require \u003ccode\u003efields\u003c/code\u003e guard and \u003ccode\u003ebase_class\u003c/code\u003e fallback - The built-in templates \u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, and their Union variants now wrap field access in \u003ccode\u003e{%- if fields %}...{%- else %}\u003c/code\u003e blocks with a \u003ccode\u003ebase_class\u003c/code\u003e fallback for empty field lists. Users with custom templates derived from the old versions will need to add similar guards. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType alias templates (\u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, and their Union variants) now handle an empty \u003ccode\u003efields\u003c/code\u003e list with a fallback to \u003ccode\u003ebase_class\u003c/code\u003e - If you have custom copies of these templates, they need to be updated to include the new \u003ccode\u003e{%- if fields %}...{%- else %}...{%- endif %}\u003c/code\u003e branching logic. Without this update, custom templates may error when \u003ccode\u003efields\u003c/code\u003e is empty. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.0\"\u003e0.56.0\u003c/a\u003e - 2026-04-04\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMissing local \u003ccode\u003e$ref\u003c/code\u003e now raises \u003ccode\u003eError\u003c/code\u003e instead of \u003ccode\u003eFileNotFoundError\u003c/code\u003e - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e pointed to a non-existent local file, a raw \u003ccode\u003eFileNotFoundError\u003c/code\u003e propagated to callers. Now it raises \u003ccode\u003edatamodel_code_generator.Error\u003c/code\u003e with the message \u003ccode\u003e\u0026quot;$ref file not found: \u0026lt;path\u0026gt;\u0026quot;\u003c/code\u003e. Programmatic users catching \u003ccode\u003eFileNotFoundError\u003c/code\u003e specifically will need to catch \u003ccode\u003eError\u003c/code\u003e instead (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch failures now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead of propagating raw exceptions - HTTP errors (4xx/5xx status codes), unexpected HTML responses, and transport errors (DNS, timeout, connection) that previously resulted in downstream YAML/JSON parse errors or raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e (a subclass of \u003ccode\u003eError\u003c/code\u003e) before parsing is attempted. Users catching specific parse errors or \u003ccode\u003ehttpx\u003c/code\u003e exceptions for these scenarios will need to update their error handling (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch errors now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead of raw httpx exceptions - The \u003ccode\u003eget_body()\u003c/code\u003e function in \u003ccode\u003ehttp.py\u003c/code\u003e now catches HTTP errors and raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (a new \u003ccode\u003eError\u003c/code\u003e subclass) for HTTP status \u0026gt;= 400, network failures, and unexpected HTML responses. Code that caught raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote schema fetching will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits \u003ccode\u003eFutureWarning\u003c/code\u003e without \u003ccode\u003e--allow-remote-refs\u003c/code\u003e - Fetching remote HTTP/HTTPS \u003ccode\u003e$ref\u003c/code\u003e references without explicitly passing \u003ccode\u003e--allow-remote-refs\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e deprecation warning. In a future version, remote fetching will be disabled by default. Users relying on implicit remote ref fetching should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch errors now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e with validation of response content type - Previously, fetching a remote \u003ccode\u003e$ref\u003c/code\u003e that returned an HTML error page would silently pass the HTML through as schema content. Now it raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e if the response has \u003ccode\u003etext/html\u003c/code\u003e content type or a 4xx/5xx status code. This may cause previously-silent failures to become loud errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDefault Behavior Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplicit remote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits \u003ccode\u003eFutureWarning\u003c/code\u003e - When a \u003ccode\u003e$ref\u003c/code\u003e resolves to an HTTP(S) URL and \u003ccode\u003e--allow-remote-refs\u003c/code\u003e is not explicitly passed, the tool still fetches the remote reference but emits a \u003ccode\u003eFutureWarning\u003c/code\u003e. This may cause failures in environments running with \u003ccode\u003e-W error\u003c/code\u003e (warnings as errors) or strict warning filters. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e explicitly to suppress the warning (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e - When the parser encounters an HTTP/HTTPS \u003ccode\u003e$ref\u003c/code\u003e without \u003ccode\u003e--allow-remote-refs\u003c/code\u003e being explicitly set, a \u003ccode\u003eFutureWarning\u003c/code\u003e is emitted warning that remote fetching will be disabled by default in a future version. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to silence the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching immediately. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eType alias templates updated with \u003ccode\u003efields\u003c/code\u003e guard - All six type alias templates (\u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeStatement.jinja2\u003c/code\u003e) now wrap the main body in \u003ccode\u003e{% if fields %}...{% else %}\u003c/code\u003e blocks that fall back to \u003ccode\u003e{{ base_class }}\u003c/code\u003e when no fields are present. Users with custom copies of these templates must add the same guard or handle the empty-fields case. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType alias Jinja2 templates now require \u003ccode\u003efields\u003c/code\u003e guard and \u003ccode\u003ebase_class\u003c/code\u003e fallback - The built-in templates \u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, and their Union variants now wrap field access in \u003ccode\u003e{%- if fields %}...{%- else %}\u003c/code\u003e blocks with a \u003ccode\u003ebase_class\u003c/code\u003e fallback for empty field lists. Users with custom templates derived from the old versions will need to add similar guards. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/52d9ef9dec52f3ad14130710eefb010f0e492160\"\u003e\u003ccode\u003e52d9ef9\u003c/code\u003e\u003c/a\u003e [codex] Refresh project usage list (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7d41fef7884579d728fe42a1e266d8b950ccd72d\"\u003e\u003ccode\u003e7d41fef\u003c/code\u003e\u003c/a\u003e Support JSON files for mapping options (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a8cd0da7a6d17bfd70c5c2623699ffc6aa818fd\"\u003e\u003ccode\u003e5a8cd0d\u003c/code\u003e\u003c/a\u003e Fix non-string OpenAPI discriminator literals (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5dcbc09a9086febf62e92f11b88215584d3a5c45\"\u003e\u003ccode\u003e5dcbc09\u003c/code\u003e\u003c/a\u003e Fix type alias template crash with reuse_model on empty fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/8c965997f005f75c244cb377b3a800b80d261474\"\u003e\u003ccode\u003e8c96599\u003c/code\u003e\u003c/a\u003e docs: update llms.txt files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/c7710792c277892f55b6954886aa1ffecb6aaf49\"\u003e\u003ccode\u003ec771079\u003c/code\u003e\u003c/a\u003e docs: update CLI reference documentation and prompt data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f6d4cbd3440a84e801566fa758ab2bf483322082\"\u003e\u003ccode\u003ef6d4cbd\u003c/code\u003e\u003c/a\u003e Add --allow-remote-refs to disable HTTP fetching of $ref by default (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7e1a5c751b7b4b07aaf7d860d93162f1a75822b7\"\u003e\u003ccode\u003e7e1a5c7\u003c/code\u003e\u003c/a\u003e Update release draft model and preserve breaking changes (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5bd8eab9f5b5f64c146e170f9fae25ea7602daea\"\u003e\u003ccode\u003e5bd8eab\u003c/code\u003e\u003c/a\u003e Add ryaml as optional YAML backend for faster parsing (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3055\"\u003e#3055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/af51cd7cae6c73dc90e55d40dac85e1ae65897df\"\u003e\u003ccode\u003eaf51cd7\u003c/code\u003e\u003c/a\u003e Update projects list with notable AI/LLM ecosystem projects (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.45.0...0.56.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\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\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `presidio-analyzer` from 2.2.361 to 2.2.362\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Microsoft/presidio/releases\"\u003epresidio-analyzer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2.2.362\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - GPU Device Control via Environment Variable by \u003ca href=\"https://github.com/RonShakutai\"\u003e\u003ccode\u003e@​RonShakutai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1844\"\u003emicrosoft/presidio#1844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add HuggingFaceNerRecognizer for direct NER model inference by \u003ca href=\"https://github.com/ultramancode\"\u003e\u003ccode\u003e@​ultramancode\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1834\"\u003emicrosoft/presidio#1834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Broken Links by \u003ca href=\"https://github.com/andyjessen\"\u003e\u003ccode\u003e@​andyjessen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1856\"\u003emicrosoft/presidio#1856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin dependencies to mitigate supply chain attacks by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1861\"\u003emicrosoft/presidio#1861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2024-47874 and CVE-2025-54121 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1860\"\u003emicrosoft/presidio#1860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2025-2953 and CVE-2025-3730 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1859\"\u003emicrosoft/presidio#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fixed context enhancement substring matching bug  by \u003ca href=\"https://github.com/ravi-jindal\"\u003e\u003ccode\u003e@​ravi-jindal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1827\"\u003emicrosoft/presidio#1827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix _process_names unconditionally treating all metadata as PHI by \u003ca href=\"https://github.com/Mr-Neutr0n\"\u003e\u003ccode\u003e@​Mr-Neutr0n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1855\"\u003emicrosoft/presidio#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add UK Postcode (UK_POSTCODE) recognizer by \u003ca href=\"https://github.com/tee-jagz\"\u003e\u003ccode\u003e@​tee-jagz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1858\"\u003emicrosoft/presidio#1858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin ruff and build pip installs by hash for OSSF scorecard compliance by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"ht...\n\n_Description has been truncated_","html_url":"https://github.com/classifyre-com/classifyre/pull/38","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/classifyre-com%2Fclassifyre/issues/38","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/38/packages"},{"uuid":"4041408014","node_id":"PR_kwDOGp6vrM7I3OQU","number":502,"state":"closed","title":"Build: Bump datamodel-code-generator from 0.54.0 to 0.54.1","user":"dependabot[bot]","labels":["dependencies","PYTHON","OPENAPI"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-26T16:36:26.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-08T14:32:37.000Z","updated_at":"2026-04-26T16:36:28.000Z","time_to_close":4241029,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build: Bump","packages":[{"name":"datamodel-code-generator","old_version":"0.54.0","new_version":"0.54.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) from 0.54.0 to 0.54.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dismissible announce bar to docs site by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3004\"\u003ekoxudaxi/datamodel-code-generator#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update maintainer announcement to reflect open to work status by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3007\"\u003ekoxudaxi/datamodel-code-generator#3007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport isort 8 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3011\"\u003ekoxudaxi/datamodel-code-generator#3011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix --allow-population-by-field-name for pydantic v2 dataclass output by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3013\"\u003ekoxudaxi/datamodel-code-generator#3013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e--use-annotated\u003c/code\u003e \u003cem\u003eand\u003c/em\u003e \u003ccode\u003e--use-non-positive-negative-number-constrained-types\u003c/code\u003e by \u003ca href=\"https://github.com/torarvid\"\u003e\u003ccode\u003e@​torarvid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3015\"\u003ekoxudaxi/datamodel-code-generator#3015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip default_factory wrapping for non-callable type aliases by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3012\"\u003ekoxudaxi/datamodel-code-generator#3012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect relative imports with --use-exact-imports and --collapse-root-models by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3020\"\u003ekoxudaxi/datamodel-code-generator#3020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add --external-ref-mapping to import from external packages instead of generating by \u003ca href=\"https://github.com/matssun\"\u003e\u003ccode\u003e@​matssun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3006\"\u003ekoxudaxi/datamodel-code-generator#3006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump cryptography from 46.0.3 to 46.0.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/koxudaxi/datamodel-code-generator/pull/3016\"\u003ekoxudaxi/datamodel-code-generator#3016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump urllib3 from 2.6.2 to 2.6.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3017\"\u003ekoxudaxi/datamodel-code-generator#3017\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matssun\"\u003e\u003ccode\u003e@​matssun\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3006\"\u003ekoxudaxi/datamodel-code-generator#3006\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.54.0...0.54.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.54.0...0.54.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/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.54.1\"\u003e0.54.1\u003c/a\u003e - 2026-03-04\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dismissible announce bar to docs site by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3004\"\u003ekoxudaxi/datamodel-code-generator#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update maintainer announcement to reflect open to work status by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3007\"\u003ekoxudaxi/datamodel-code-generator#3007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport isort 8 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3011\"\u003ekoxudaxi/datamodel-code-generator#3011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix --allow-population-by-field-name for pydantic v2 dataclass output by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3013\"\u003ekoxudaxi/datamodel-code-generator#3013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e--use-annotated\u003c/code\u003e \u003cem\u003eand\u003c/em\u003e \u003ccode\u003e--use-non-positive-negative-number-constrained-types\u003c/code\u003e by \u003ca href=\"https://github.com/torarvid\"\u003e\u003ccode\u003e@​torarvid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3015\"\u003ekoxudaxi/datamodel-code-generator#3015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip default_factory wrapping for non-callable type aliases by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3012\"\u003ekoxudaxi/datamodel-code-generator#3012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect relative imports with --use-exact-imports and --collapse-root-models by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3020\"\u003ekoxudaxi/datamodel-code-generator#3020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add --external-ref-mapping to import from external packages instead of generating by \u003ca href=\"https://github.com/matssun\"\u003e\u003ccode\u003e@​matssun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3006\"\u003ekoxudaxi/datamodel-code-generator#3006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump cryptography from 46.0.3 to 46.0.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/koxudaxi/datamodel-code-generator/pull/3016\"\u003ekoxudaxi/datamodel-code-generator#3016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump urllib3 from 2.6.2 to 2.6.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3017\"\u003ekoxudaxi/datamodel-code-generator#3017\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matssun\"\u003e\u003ccode\u003e@​matssun\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3006\"\u003ekoxudaxi/datamodel-code-generator#3006\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.54.0...0.54.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.54.0...0.54.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/690c535cf63fa97bbfb86950b504aee1e3431165\"\u003e\u003ccode\u003e690c535\u003c/code\u003e\u003c/a\u003e Build(deps): Bump urllib3 from 2.6.2 to 2.6.3 (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3017\"\u003e#3017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b493eb9d7aeb998b189898a92e741541d2b30035\"\u003e\u003ccode\u003eb493eb9\u003c/code\u003e\u003c/a\u003e Build(deps): Bump cryptography from 46.0.3 to 46.0.5 (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3016\"\u003e#3016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/c5c5852c8388279820209c691aa8601b562f36b7\"\u003e\u003ccode\u003ec5c5852\u003c/code\u003e\u003c/a\u003e docs: update llms.txt files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/24d7a358db5f5c57439becb101d66b6e6a5d4c96\"\u003e\u003ccode\u003e24d7a35\u003c/code\u003e\u003c/a\u003e docs: update CLI reference documentation and prompt data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7b7f1e950419bf8a29fa8a5f55fe0e1868287d71\"\u003e\u003ccode\u003e7b7f1e9\u003c/code\u003e\u003c/a\u003e feat: Add --external-ref-mapping to import from external packages instead of ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/991f0ff58cf53b4ca647db402d4a75b9377e6065\"\u003e\u003ccode\u003e991f0ff\u003c/code\u003e\u003c/a\u003e Fix incorrect relative imports with --use-exact-imports and --collapse-root-m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/69eda182d8182ff46e7c5bc721f577e44138cb94\"\u003e\u003ccode\u003e69eda18\u003c/code\u003e\u003c/a\u003e Skip default_factory wrapping for non-callable type aliases (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3012\"\u003e#3012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a9cdec9ac8a009d04f3b21c127d936300e936d3\"\u003e\u003ccode\u003e5a9cdec\u003c/code\u003e\u003c/a\u003e docs: update llms.txt files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/875b3cf960dc903cbe478f35f25321d7c505f1c5\"\u003e\u003ccode\u003e875b3cf\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003e--use-annotated\u003c/code\u003e \u003cem\u003eand\u003c/em\u003e `--use-non-positive-negative-number-constrain...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/bff6a308715f149b15bed5d2fe52421e54a4eab4\"\u003e\u003ccode\u003ebff6a30\u003c/code\u003e\u003c/a\u003e Fix --allow-population-by-field-name for pydantic v2 dataclass output (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.54.0...0.54.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=datamodel-code-generator\u0026package-manager=pip\u0026previous-version=0.54.0\u0026new-version=0.54.1)](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/amogh-jahagirdar/iceberg/pull/502","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/amogh-jahagirdar%2Ficeberg/issues/502","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/502/packages"},{"uuid":"3977270797","node_id":"PR_kwDOPMXLcc7FmdeA","number":279,"state":"closed","title":"chore(deps)(deps): bump the python-minor-patch group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-26T23:16:34.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-23T09:51:00.000Z","updated_at":"2026-02-26T23:16:36.000Z","time_to_close":307534,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): bump","group_name":"python-minor-patch","update_count":9,"packages":[{"name":"httpx-retries","old_version":"0.4.5","new_version":"0.4.6","repository_url":"https://github.com/will-ockmore/httpx-retries"},{"name":"tox","old_version":"4.34.1","new_version":"4.44.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"ruff","old_version":"0.15.0","new_version":"0.15.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"openapi-python-client","old_version":"0.28.1","new_version":"0.28.2","repository_url":"https://github.com/openapi-generators/openapi-python-client"},{"name":"datamodel-code-generator","old_version":"0.53.0","new_version":"0.54.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"mkdocs-material","old_version":"9.7.1","new_version":"9.7.2","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocs-swagger-ui-tag","old_version":"0.7.2","new_version":"0.8.0","repository_url":"https://github.com/blueswen/mkdocs-swagger-ui-tag"},{"name":"poethepoet","old_version":"0.41.0","new_version":"0.42.0","repository_url":"https://github.com/nat-n/poethepoet"},{"name":"ty","old_version":"0.0.15","new_version":"0.0.18","repository_url":"https://github.com/astral-sh/ty"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [httpx-retries](https://github.com/will-ockmore/httpx-retries) | `0.4.5` | `0.4.6` |\n| [tox](https://github.com/tox-dev/tox) | `4.34.1` | `4.44.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.0` | `0.15.2` |\n| [openapi-python-client](https://github.com/openapi-generators/openapi-python-client) | `0.28.1` | `0.28.2` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.53.0` | `0.54.0` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.7.1` | `9.7.2` |\n| [mkdocs-swagger-ui-tag](https://github.com/blueswen/mkdocs-swagger-ui-tag) | `0.7.2` | `0.8.0` |\n| [poethepoet](https://github.com/nat-n/poethepoet) | `0.41.0` | `0.42.0` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.15` | `0.0.18` |\n\n\nUpdates `httpx-retries` from 0.4.5 to 0.4.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/will-ockmore/httpx-retries/releases\"\u003ehttpx-retries's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.6\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't recalculate \u003ccode\u003etime_to_sleep\u003c/code\u003e unecessarily (\u003ca href=\"https://redirect.github.com/will-ockmore/httpx-retries/issues/51\"\u003e#51\u003c/a\u003e by \u003ca href=\"https://github.com/jdkessinger\"\u003e\u003ccode\u003e@​jdkessinger\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/will-ockmore/httpx-retries/blob/main/CHANGELOG.md\"\u003ehttpx-retries's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.4.6] - 2026-02-18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't recalculate \u003ccode\u003etime_to_sleep\u003c/code\u003e unecessarily\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/will-ockmore/httpx-retries/commit/895e9c1b7d60099b3ff305116631e958ab5cb91e\"\u003e\u003ccode\u003e895e9c1\u003c/code\u003e\u003c/a\u003e Version 0.4.6 (\u003ca href=\"https://redirect.github.com/will-ockmore/httpx-retries/issues/54\"\u003e#54\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/will-ockmore/httpx-retries/commit/df394e591d2c617fed6e965acc5c9bd4055e2749\"\u003e\u003ccode\u003edf394e5\u003c/code\u003e\u003c/a\u003e Differences with other retry libraries guide (\u003ca href=\"https://redirect.github.com/will-ockmore/httpx-retries/issues/53\"\u003e#53\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/will-ockmore/httpx-retries/commit/2dc1c7e0b826f3ae7d1f9c84591fb92f2f0c2564\"\u003e\u003ccode\u003e2dc1c7e\u003c/code\u003e\u003c/a\u003e Don't compute time_to_sleep 2 times. (\u003ca href=\"https://redirect.github.com/will-ockmore/httpx-retries/issues/51\"\u003e#51\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/will-ockmore/httpx-retries/compare/0.4.5...0.4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tox` from 4.34.1 to 4.44.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\u003cblockquote\u003e\n\u003ch2\u003ev4.44.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(config): keep unfactored continuation lines after filtered factors (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3802\"\u003e#3802\u003c/a\u003e) by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3804\"\u003etox-dev/tox#3804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(config): add PEP 751 pylock.toml support by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3803\"\u003etox-dev/tox#3803\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.43.0...4.44.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.43.0...4.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.43.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs(infra): integrate sphinxcontrib-towncrier by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3798\"\u003etox-dev/tox#3798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(toml): add generative env_list via product dict by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3797\"\u003etox-dev/tox#3797\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(config): restore factor conditional continuations by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3799\"\u003etox-dev/tox#3799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(pip): pass config_settings to pip for sdist install by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3800\"\u003etox-dev/tox#3800\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.42.0...4.43.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.42.0...4.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.42.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(interrupt): suppress BrokenPipeError during teardown by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3778\"\u003etox-dev/tox#3778\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(cli): add --no-capture flag for interactive programs by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3777\"\u003etox-dev/tox#3777\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(config): add platform-dependent factor support by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3779\"\u003etox-dev/tox#3779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(env): gracefully skip environments with unavailable runners by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3781\"\u003etox-dev/tox#3781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(env): restore compound factor conditionals by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3782\"\u003etox-dev/tox#3782\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(config): add default_base_python config key by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3783\"\u003etox-dev/tox#3783\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(config): add env_site_packages_dir_plat substitution by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3784\"\u003etox-dev/tox#3784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(parallel): show --list-dependencies output by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3786\"\u003etox-dev/tox#3786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(config): add open-ended generative ranges by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3788\"\u003etox-dev/tox#3788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(config): collapse continuation lines before factor filtering by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3787\"\u003etox-dev/tox#3787\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(pkg): cache external packaging env build across envs by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3790\"\u003etox-dev/tox#3790\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(changelog): add granular towncrier categories by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3785\"\u003etox-dev/tox#3785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(cli): accept plugin CLI options during provisioning by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3791\"\u003etox-dev/tox#3791\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(env): add recreate_commands config key by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3793\"\u003etox-dev/tox#3793\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs(faq): document Debian python3-venv limitation by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3789\"\u003etox-dev/tox#3789\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(config): warn on unused config keys with -v by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3795\"\u003etox-dev/tox#3795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(cli): add --skip-env-install flag for offline env reuse by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3792\"\u003etox-dev/tox#3792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(env): add virtualenv_spec for per-env version pinning by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3794\"\u003etox-dev/tox#3794\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.41.0...4.42.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.41.0...4.42.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.41.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/blob/main/docs/changelog.rst\"\u003etox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFeatures - 4.44.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport PEP 751 \u003ccode\u003epylock.toml\u003c/code\u003e lock files as dependency input via the \u003ccode\u003epylock\u003c/code\u003e configuration option (mutually\nexclusive with \u003ccode\u003edeps\u003c/code\u003e). Packages are filtered by extras, dependency groups, and platform markers evaluated against\nthe target Python interpreter, then installed via pip with \u003ccode\u003e--no-deps\u003c/code\u003e - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3665\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBug fixes - 4.44.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix unfactored continuation lines (e.g. \u003ccode\u003epytest \\\u003c/code\u003e, \u003ccode\u003e--remote-data \\\u003c/code\u003e) being incorrectly skipped when they follow\na filtered factor-conditional line ending with \u003ccode\u003e\\\u003c/code\u003e -- the \u003ccode\u003epending_skip\u003c/code\u003e flag now only drops terminal continuation\npieces, preserving shared arguments that are themselves continuations - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3802\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003ev4.43.0 (2026-02-20)\u003c/p\u003e\n\u003chr /\u003e\n\u003ch1\u003eFeatures - 4.43.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd TOML-native generative \u003ccode\u003eenv_list\u003c/code\u003e via \u003ccode\u003eproduct\u003c/code\u003e dict syntax -- Cartesian product of factor groups with\noptional range dicts and exclusions - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3797\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBug fixes - 4.43.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePass \u003ccode\u003econfig_settings_build_wheel\u003c/code\u003e to pip as \u003ccode\u003e--config-settings\u003c/code\u003e when installing sdist packages, ensuring the\nbuild backend receives config settings during pip's internal wheel build - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3125\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix factor-conditional continuation lines (e.g. \u003ccode\u003ecov: coverage run \\\u003c/code\u003e / \u003ccode\u003e!cov: python \\\u003c/code\u003e / \u003ccode\u003esomefile.py\u003c/code\u003e) where\ndifferent factor prefixes on consecutive continuation lines caused prefixes to be passed as literal command arguments\ninstead of being filtered - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3796\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eImproved documentation - 4.43.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eIntegrate \u003ccode\u003esphinxcontrib-towncrier\u003c/code\u003e to render draft changelog entries directly in Sphinx, replacing the manual\ntowncrier draft script - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3201\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003ev4.42.0 (2026-02-20)\u003c/p\u003e\n\u003chr /\u003e\n\u003ch1\u003eFeatures - 4.42.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePlatform-dependent commands can now be specified using factor syntax without requiring the platform name in the\nenvironment name. The current platform (\u003ccode\u003esys.platform\u003c/code\u003e value like \u003ccode\u003elinux\u003c/code\u003e, \u003ccode\u003edarwin\u003c/code\u003e, \u003ccode\u003ewin32\u003c/code\u003e) is automatically\navailable as an implicit factor, allowing configurations like \u003ccode\u003elinux: pytest\u003c/code\u003e in INI or \u003ccode\u003efactor.linux\u003c/code\u003e in TOML\nconditional expressions to work in any environment. Additionally, TOML configurations can now use \u003ccode\u003efactor.NAME\u003c/code\u003e in\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/901aa7b645b481d2fad908c840c777d30441f7b4\"\u003e\u003ccode\u003e901aa7b\u003c/code\u003e\u003c/a\u003e release 4.44.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/7b601a77e8376b9198b7203b4e644873cc543e69\"\u003e\u003ccode\u003e7b601a7\u003c/code\u003e\u003c/a\u003e ✨ feat(config): add PEP 751 pylock.toml support (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3803\"\u003e#3803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/f6a984783d8c2635e9169d4f0b5f4f7594ea8a16\"\u003e\u003ccode\u003ef6a9847\u003c/code\u003e\u003c/a\u003e 🐛 fix(config): keep unfactored continuation lines after filtered factors (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/38\"\u003e#38\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/f4855f3e3d59e7be3c6f7fbdee27650d9f2c4011\"\u003e\u003ccode\u003ef4855f3\u003c/code\u003e\u003c/a\u003e release 4.43.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/8517abca406a268e42a1b233ece37f3869a5176e\"\u003e\u003ccode\u003e8517abc\u003c/code\u003e\u003c/a\u003e 🐛 fix(pip): pass config_settings to pip for sdist install (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3800\"\u003e#3800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/413b963339b5d5b84531e916f704602de9a16188\"\u003e\u003ccode\u003e413b963\u003c/code\u003e\u003c/a\u003e 🐛 fix(config): restore factor conditional continuations (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3799\"\u003e#3799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/b11c64501e5088edce6f698fa1bfbff31ca7ee51\"\u003e\u003ccode\u003eb11c645\u003c/code\u003e\u003c/a\u003e ✨ feat(toml): add generative env_list via product dict (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3797\"\u003e#3797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/0f4da8334895480746b0d8ba8dab60bfcddde315\"\u003e\u003ccode\u003e0f4da83\u003c/code\u003e\u003c/a\u003e 📝 docs(infra): integrate sphinxcontrib-towncrier (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3798\"\u003e#3798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/09b4f60bdb946de3f7a3b7c4e7b17f164dff9dd2\"\u003e\u003ccode\u003e09b4f60\u003c/code\u003e\u003c/a\u003e release 4.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/c80c62f60d7017f91c2a7d035d045170f8523362\"\u003e\u003ccode\u003ec80c62f\u003c/code\u003e\u003c/a\u003e ✨ feat(env): add virtualenv_spec for per-env version pinning (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3794\"\u003e#3794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/tox/compare/4.34.1...4.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.0 to 0.15.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eExpand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23385\"\u003e#23385\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eIn preview, Ruff now enables a significantly expanded default rule set of 412 rules, up from the stable default set of 59 rules. The new rules are mostly a superset of the stable defaults, with the exception of these rules, which are removed from the preview defaults:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line\"\u003e\u003ccode\u003emultiple-imports-on-one-line\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE401\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE402\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE701\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon\"\u003e\u003ccode\u003emultiple-statements-on-one-line-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE702\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-semicolon\"\u003e\u003ccode\u003euseless-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE703\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/none-comparison\"\u003e\u003ccode\u003enone-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE711\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/true-false-comparison\"\u003e\u003ccode\u003etrue-false-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE712\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-in-test\"\u003e\u003ccode\u003enot-in-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE713\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-is-test\"\u003e\u003ccode\u003enot-is-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE714\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/type-comparison\"\u003e\u003ccode\u003etype-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE721\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/lambda-assignment\"\u003e\u003ccode\u003elambda-assignment\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE731\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-variable-name\"\u003e\u003ccode\u003eambiguous-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE741\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-class-name\"\u003e\u003ccode\u003eambiguous-class-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE742\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-function-name\"\u003e\u003ccode\u003eambiguous-function-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE743\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star\"\u003e\u003ccode\u003eundefined-local-with-import-star\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF403\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF405\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-nested-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF406\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error\"\u003e\u003ccode\u003eforward-annotation-syntax-error\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF722\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you use preview and prefer the old defaults, you can restore them with configuration like:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e\r\n# ruff.toml\r\n\u003cp\u003e[lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\u003c/p\u003e\n\u003ch1\u003epyproject.toml\u003c/h1\u003e\n\u003cp\u003e[tool.ruff.lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eIf you do give them a try, feel free to share your feedback in the \u003ca href=\"https://github.com/astral-sh/ruff/discussions/23203\"\u003eGitHub discussion\u003c/a\u003e!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Also check string annotations (\u003ccode\u003ePYI041\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19023\"\u003e#19023\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\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/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.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eExpand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23385\"\u003e#23385\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eIn preview, Ruff now enables a significantly expanded default rule set of 412\nrules, up from the stable default set of 59 rules. The new rules are mostly a\nsuperset of the stable defaults, with the exception of these rules, which are\nremoved from the preview defaults:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line\"\u003e\u003ccode\u003emultiple-imports-on-one-line\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE401\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE402\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE701\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon\"\u003e\u003ccode\u003emultiple-statements-on-one-line-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE702\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-semicolon\"\u003e\u003ccode\u003euseless-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE703\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/none-comparison\"\u003e\u003ccode\u003enone-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE711\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/true-false-comparison\"\u003e\u003ccode\u003etrue-false-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE712\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-in-test\"\u003e\u003ccode\u003enot-in-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE713\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-is-test\"\u003e\u003ccode\u003enot-is-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE714\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/type-comparison\"\u003e\u003ccode\u003etype-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE721\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/lambda-assignment\"\u003e\u003ccode\u003elambda-assignment\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE731\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-variable-name\"\u003e\u003ccode\u003eambiguous-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE741\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-class-name\"\u003e\u003ccode\u003eambiguous-class-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE742\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-function-name\"\u003e\u003ccode\u003eambiguous-function-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE743\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star\"\u003e\u003ccode\u003eundefined-local-with-import-star\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF403\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF405\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-nested-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF406\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error\"\u003e\u003ccode\u003eforward-annotation-syntax-error\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF722\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you use preview and prefer the old defaults, you can restore them with\nconfiguration like:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e\n# ruff.toml\n\u003cp\u003e[lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\u003c/p\u003e\n\u003ch1\u003epyproject.toml\u003c/h1\u003e\n\u003cp\u003e[tool.ruff.lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eIf you do give them a try, feel free to share your feedback in the \u003ca href=\"https://github.com/astral-sh/ruff/discussions/23203\"\u003eGitHub\ndiscussion\u003c/a\u003e!\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9d18ee9115f9cbb4c21478baa7c1fa2b46e0759c\"\u003e\u003ccode\u003e9d18ee9\u003c/code\u003e\u003c/a\u003e Hard code workflow name and \u003ccode\u003ecancel-in-progress\u003c/code\u003e only for PRs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23431\"\u003e#23431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7cc15f024b931fe56365f40de3fab01219c092c4\"\u003e\u003ccode\u003e7cc15f0\u003c/code\u003e\u003c/a\u003e Bump 0.15.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23430\"\u003e#23430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d1b544393ae9cddd8e48ebee8dbfd54bda89f375\"\u003e\u003ccode\u003ed1b5443\u003c/code\u003e\u003c/a\u003e Add extension mapping to configuration file options (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23384\"\u003e#23384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/222574af90c5c0ca8f84c8385cf30c7c10ac2496\"\u003e\u003ccode\u003e222574a\u003c/code\u003e\u003c/a\u003e Expand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23385\"\u003e#23385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1465b5de3829549b45397e9587b83ab7ac6d26d0\"\u003e\u003ccode\u003e1465b5d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-async\u003c/code\u003e] Fix \u003ccode\u003ein_async_context\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23426\"\u003e#23426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/410902fa401afda969cc000f13be341896e6868e\"\u003e\u003ccode\u003e410902f\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Fix handling of \u003ccode\u003etyping.{io,re}\u003c/code\u003e (\u003ccode\u003eUP035\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23131\"\u003e#23131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/729610acd9e19f57526e8ca40f355626154826bb\"\u003e\u003ccode\u003e729610a\u003c/code\u003e\u003c/a\u003e [ty] Fall back to ambiguous for large control flow graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23399\"\u003e#23399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1425c185b0a47be87112762f65b5bf7e323fb950\"\u003e\u003ccode\u003e1425c18\u003c/code\u003e\u003c/a\u003e [ty] Add code folding support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/97acaaea5f993f33d3f5bb27c5db760a2f3d1e8a\"\u003e\u003ccode\u003e97acaae\u003c/code\u003e\u003c/a\u003e [ty] Fix stack overflow for self-referential \u003ccode\u003eTypeOf\u003c/code\u003e in annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23407\"\u003e#23407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1f380c82584a6dab7e8715bc7dd5ae187da1e69a\"\u003e\u003ccode\u003e1f380c8\u003c/code\u003e\u003c/a\u003e [ty] Update tests \u003ccode\u003ereveal_type\u003c/code\u003e and \u003ccode\u003eNever\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23418\"\u003e#23418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.0...0.15.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openapi-python-client` from 0.28.1 to 0.28.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openapi-generators/openapi-python-client/releases\"\u003eopenapi-python-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.28.2 (2026-02-09)\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003euv_build\u003c/code\u003e 0.10 when using \u003ccode\u003e--meta=uv\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openapi-generators/openapi-python-client/blob/main/CHANGELOG.md\"\u003eopenapi-python-client's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.28.2 (2026-02-09)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003euv_build\u003c/code\u003e 0.10 when using \u003ccode\u003e--meta=uv\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openapi-generators/openapi-python-client/commit/410784bd3b3e49c568d343b2cd5e54a7a568a0f0\"\u003e\u003ccode\u003e410784b\u003c/code\u003e\u003c/a\u003e Release 0.28.2 (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1398\"\u003e#1398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openapi-generators/openapi-python-client/commit/4385be83dc8eff2cd14da69c797832f1c46e6708\"\u003e\u003ccode\u003e4385be8\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency typer to \u0026gt;0.16,\u0026lt;0.24 (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1399\"\u003e#1399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openapi-generators/openapi-python-client/commit/a9c5d33f05f27a33dd03919440692c88027eed04\"\u003e\u003ccode\u003ea9c5d33\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1393\"\u003e#1393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openapi-generators/openapi-python-client/commit/aa318d472c32c3a86e0feeda74fc33111310da95\"\u003e\u003ccode\u003eaa318d4\u003c/code\u003e\u003c/a\u003e feat: Update \u003ccode\u003euv_build\u003c/code\u003e 0.10 when using \u003ccode\u003e--meta=uv\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openapi-generators/openapi-python-client/commit/826ab55024a43cd98c97714ca6e82156686c4b3b\"\u003e\u003ccode\u003e826ab55\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v6.0.2 (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1388\"\u003e#1388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openapi-generators/openapi-python-client/commit/f955ffe7031daf98e4cb15f5be2ab588b26124da\"\u003e\u003ccode\u003ef955ffe\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1389\"\u003e#1389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openapi-generators/openapi-python-client/commit/3abea8dd28e6d432da53ce0e93b4121380d75f6b\"\u003e\u003ccode\u003e3abea8d\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1386\"\u003e#1386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openapi-generators/openapi-python-client/commit/d43e710a488f43fc3fafa49da1e6e9758e221100\"\u003e\u003ccode\u003ed43e710\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/setup-python action to v6.2.0 (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1387\"\u003e#1387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/openapi-generators/openapi-python-client/compare/v0.28.1...v0.28.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.53.0 to 0.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\r\n    integer_200 = 200\r\n    integer_404 = 404\r\n    integer_500 = 500\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\r\n    OK = 200\r\n    Not_Found = 404\r\n    Server_Error = 500\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\r\n  user:\r\n    $ref: \u0026quot;#/definitions/User\u0026quot;\r\n    nullable: true\r\n    markdownDescription: \u0026quot;A user object\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix patternProperties/propertyNames key constraints lost with field_constraints by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2994\"\u003ekoxudaxi/datamodel-code-generator#2994\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.54.0\"\u003e0.54.0\u003c/a\u003e - 2026-02-14\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\r\n    integer_200 = 200\r\n    integer_404 = 404\r\n    integer_500 = 500\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\r\n    OK = 200\r\n    Not_Found = 404\r\n    Server_Error = 500\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\r\n  user:\r\n    $ref: \u0026quot;#/definitions/User\u0026quot;\r\n    nullable: true\r\n    markdownDescription: \u0026quot;A user object\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2ea62449515940d2af05e0723f8db2fd1b3cc11e\"\u003e\u003ccode\u003e2ea6244\u003c/code\u003e\u003c/a\u003e Fix incorrect relative imports with --use-exact-imports and --collapse-root-m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/34b7d29a52765b2c6f3da920bc525bf37f0db624\"\u003e\u003ccode\u003e34b7d29\u003c/code\u003e\u003c/a\u003e fix codespeed python version (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3000\"\u003e#3000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f3ef9c619a010ed4a30c2f7f6b514053f251a8e2\"\u003e\u003ccode\u003ef3ef9c6\u003c/code\u003e\u003c/a\u003e Fix merged result in parse_item not passed back to parse_object_fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/501190398d5717a936301f550b61ecec520c8cb7\"\u003e\u003ccode\u003e5011903\u003c/code\u003e\u003c/a\u003e Fix extra underscore on enum members like replace with --capitalise-enum-memb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/907a1a8cec66c4e25ef5dfe2128d131a5a9811f2\"\u003e\u003ccode\u003e907a1a8\u003c/code\u003e\u003c/a\u003e Fix exact imports with module/class name collision (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2998\"\u003e#2998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2b659f001e744e1e95e464ab0d613fae0122bc01\"\u003e\u003ccode\u003e2b659f0\u003c/code\u003e\u003c/a\u003e Fix missing | None for nullable enum literals in TypedDict (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/992af20312420a2d8b8975fb9ee6e22430f5144f\"\u003e\u003ccode\u003e992af20\u003c/code\u003e\u003c/a\u003e Fix type loss when $ref is used with non-standard metadata fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/0f1bc0f41d758cfda02d4438cdbbd3c3b4265102\"\u003e\u003ccode\u003e0f1bc0f\u003c/code\u003e\u003c/a\u003e Fix patternProperties/propertyNames key constraints lost with field_constrain...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/24b576e5e514802f45fbfc39af29f6d53a983e49\"\u003e\u003ccode\u003e24b576e\u003c/code\u003e\u003c/a\u003e Fix missing Field import with multiple aliases on required fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2992\"\u003e#2992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b58970a43c51805241fd93ce54deb23f2391052f\"\u003e\u003ccode\u003eb58970a\u003c/code\u003e\u003c/a\u003e Fix RecursionError in _merge_ref_with_schema for circular $ref (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.53.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.7.1 to 9.7.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.2\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to \u003ccode\u003emkdocs build\u003c/code\u003e about impending MkDocs 2.0 incompatibility (doesn't affect strict mode)\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/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.2 (2026-02-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to 'mkdocs build' about impending MkDocs 2.0 incompatibility\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pinned blog posts and author profiles\u003c/li\u003e\n\u003cli\u003eAdded support for customizing pagination for blog index pages\u003c/li\u003e\n\u003cli\u003eAdded support for customizing blog category sort order\u003c/li\u003e\n\u003cli\u003eAdded support for staying on page when switching languages\u003c/li\u003e\n\u003cli\u003eAdded support for disabling tags in table of contents\u003c/li\u003e\n\u003cli\u003eAdded support for nested tags and shadow tags\u003c/li\u003e\n\u003cli\u003eAdded support for footnote tooltips\u003c/li\u003e\n\u003cli\u003eAdded support for instant previews\u003c/li\u003e\n\u003cli\u003eAdded support for instant prefetching\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card layouts\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card background images\u003c/li\u003e\n\u003cli\u003eAdded support for selectable rangs in code blocks\u003c/li\u003e\n\u003cli\u003eAdded support for custom selectors for code annotations\u003c/li\u003e\n\u003cli\u003eAdded support for configurable log level in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for processing of external links in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for automatic image optimization via optimize plugin\u003c/li\u003e\n\u003cli\u003eAdded support for navigation paths (breadcrumbs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/e21a119e38f7bca184e469eaeefa3d5535e5022b\"\u003e\u003ccode\u003ee21a119\u003c/code\u003e\u003c/a\u003e Updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/d5654b500a7021625d3c78f59842805c45e7b65a\"\u003e\u003ccode\u003ed5654b5\u003c/code\u003e\u003c/a\u003e Prepare 9.7.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/b18af2f74a98e0d54f7f11b4e029d7ea29166df3\"\u003e\u003ccode\u003eb18af2f\u003c/code\u003e\u003c/a\u003e Opened up version ranges in optional dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/39cdfbd87c80079cd06a6d2a953cd53f531db61d\"\u003e\u003ccode\u003e39cdfbd\u003c/code\u003e\u003c/a\u003e Added social card for blog post\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/09ee7b1913eab1988ff3a81982c39634915336e1\"\u003e\u003ccode\u003e09ee7b1\u003c/code\u003e\u003c/a\u003e Added blog post on MkDocs 2.0 (\u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8564\"\u003e#8564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/0d11a2d01174a0ab3bec97300c4432da44128253\"\u003e\u003ccode\u003e0d11a2d\u003c/code\u003e\u003c/a\u003e Documentation (\u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8560\"\u003e#8560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/8fc61b5cb00845825179d6fd3e331c789f83187b\"\u003e\u003ccode\u003e8fc61b5\u003c/code\u003e\u003c/a\u003e Updated dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/3f0eaca8da7e06db5bbb8ca41febb78459baf650\"\u003e\u003ccode\u003e3f0eaca\u003c/code\u003e\u003c/a\u003e Documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/eaba2dc24f196ecbf8e9aa87f8982be4e154920b\"\u003e\u003ccode\u003eeaba2dc\u003c/code\u003e\u003c/a\u003e Re-enable publishing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.7.1...9.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-swagger-ui-tag` from 0.7.2 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/releases\"\u003emkdocs-swagger-ui-tag's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-swagger-ui-tag-0.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupported deactivate browser cache for openapi files (\u003ca href=\"https://redirect.github.com/blueswen/mkdocs-swagger-ui-tag/issues/37\"\u003e#37\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated swagger-ui-dist source (\u003ca href=\"https://redirect.github.com/blueswen/mkdocs-swagger-ui-tag/issues/38\"\u003e#38\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated swagger-ui-dist to 5.31.2\u003c/li\u003e\n\u003cli\u003eSwitched to swagger ui builtin dark mode\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/blueswen/mkdocs-swagger-ui-tag/blob/main/CHANGELOG\"\u003emkdocs-swagger-ui-tag's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.8.0 (2026-02-22)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Supported deactivate browser cache for openapi files ([#37](https://github.com/blueswen/mkdocs-swagger-ui-tag/issues/37))\n* Updated swagger-ui-dist source ([#38](https://github.com/blueswen/mkdocs-swagger-ui-tag/issues/38))\n* Updated swagger-ui-dist to 5.31.2\n* Switched to swagger ui builtin dark mode\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.7.2 (2025-08-24)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Updated swagger-ui-dist to 5.27.1 ([#36](https://github.com/blueswen/mkdocs-swagger-ui-tag/issues/36))\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.7.1 (2025-05-04)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Updated swagger-ui-dist to 5.21.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.7.0 (2025-04-06)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Updated swagger-ui-dist to 5.20.6\n* Migrated to uv and pyproject.toml for development and building\n* Supported filename filter ([#26](https://github.com/blueswen/mkdocs-swagger-ui-tag/issues/26))\n* Compatible with bs4 4.0.0+ ([#29](https://github.com/blueswen/mkdocs-swagger-ui-tag/issues/29))\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.6.11 (2024-10-27)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Updated swagger-ui-dist to 5.17.14\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.6.10 (2024-05-01)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Updated swagger-ui-dist to 5.17.3\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.6.9 (2024-03-25)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Updated swagger-ui-dist to 5.12.0\n* Improved OAS 3.1 dark mode contrast ([#22](https://github.com/blueswen/mkdocs-swagger-ui-tag/issues/22))\n* Generate iframe ids deterministically ([#20](https://github.com/blueswen/mkdocs-swagger-ui-tag/issues/20))\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.6.8 (2024-01-22)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Updated swagger-ui-dist to 5.11.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.6.7 (2023-11-18)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Updated swagger-ui-dist to 5.10.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.6.6 (2023-10-25)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Updated swagger-ui-dist to 5.9.1\n* Updated dark mode background color to #1e2129\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.6.5 (2023-09-14)\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/blueswen/mkdocs-swagger-ui-tag/commit/61d6c5fbd431bb30afec30c8f89bda3a0b652e64\"\u003e\u003ccode\u003e61d6c5f\u003c/code\u003e\u003c/a\u003e Update workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/commit/972b1e20a4be16db8651d11957086b69bb69651c\"\u003e\u003ccode\u003e972b1e2\u003c/code\u003e\u003c/a\u003e Release 0.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/commit/61c545d6b2e05c9639b2e50c85cf56105fd41848\"\u003e\u003ccode\u003e61c545d\u003c/code\u003e\u003c/a\u003e Update docs and tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/commit/5fbe8cd67f852f26bb76373a638e1e74dad021d4\"\u003e\u003ccode\u003e5fbe8cd\u003c/code\u003e\u003c/a\u003e Upgrade to swagger-ui to 5.31.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/commit/a9134c04988832f8a640a1661d34a062ffe4d9ae\"\u003e\u003ccode\u003ea9134c0\u003c/code\u003e\u003c/a\u003e Update workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/commit/12c0b0e6b6a9e58669447c2adf79a1bc7a411876\"\u003e\u003ccode\u003e12c0b0e\u003c/code\u003e\u003c/a\u003e Deprecate insider version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/commit/d78d0b89a3ddbebae093ce00cac406ef79a9afe0\"\u003e\u003ccode\u003ed78d0b8\u003c/code\u003e\u003c/a\u003e Update swagger-ui-dist to 5.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/commit/1c8d227a720185298bd1cb47ffe8afcc89da6527\"\u003e\u003ccode\u003e1c8d227\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/blueswen/mkdocs-swagger-ui-tag/issues/37\"\u003e#37\u003c/a\u003e from ggrebert/nocache\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/commit/dd88b9ac1442e48c44d84f12adb9d29a0245a48f\"\u003e\u003ccode\u003edd88b9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/blueswen/mkdocs-swagger-ui-tag/issues/38\"\u003e#38\u003c/a\u003e from ggrebert/npm-registry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/commit/4199b2e660a200604e05a3c6fe64933390ee8e35\"\u003e\u003ccode\u003e4199b2e\u003c/code\u003e\u003c/a\u003e Add an option to desactive browser cache for openapi files\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/compare/v0.7.2...v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `poethepoet` 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/nat-n/poethepoet/releases\"\u003epoethepoet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBetter zsh completion caaching with max hits per cache and proper TTL before refresh by \u003ca href=\"https://github.com/nat-n\"\u003e\u003ccode\u003e@​nat-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/360\"\u003enat-n/poethepoet#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOfficially Support Python 3.14 by \u003ca href=\"https://github.com/gruebel\"\u003e\u003ccode\u003e@​gruebel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/362\"\u003enat-n/poethepoet#362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd completion script for PowerShell by \u003ca href=\"https://github.com/NSPC911\"\u003e\u003ccode\u003e@​NSPC911\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/358\"\u003enat-n/poethepoet#358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\nYou must follow \u003ca href=\"https://poethepoet.natn.io/installation.html#enable-tab-completion-for-your-shell\"\u003ethe instructions to (re)install the completion script for your preferred shell environment\u003c/a\u003e to benefit from the enhancements for zsh or PowerShell\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gruebel\"\u003e\u003ccode\u003e@​gruebel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/362\"\u003enat-n/poethepoet#362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NSPC911\"\u003e\u003ccode\u003e@​NSPC911\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/358\"\u003enat-n/poethepoet#358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/nat-n/poethepoet/compare/v0.41.0...v0.42.0\"\u003ehttps://github.com/nat-n/poethepoet/compare/v0.41.0...v0.42.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/nat-n/poethepoet/commit/b1589da0a5f00f5a2a4d2deef1dbdf368d4e0697\"\u003e\u003ccode\u003eb1589da\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/0646d44bf44c8c9ec7bb65c42008283f821fe544\"\u003e\u003ccode\u003e0646d44\u003c/code\u003e\u003c/a\u003e feat: powershell completions (\u003ca href=\"https://redirect.github.com/nat-n/poethepoet/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/56293a485378748e60184c2d1cdd6250d0e65ad4\"\u003e\u003ccode\u003e56293a4\u003c/code\u003e\u003c/a\u003e chore: support Python 3.14 (\u003ca href=\"https://redirect.github.com/nat-n/poethepoet/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/804c675166d9eab6b3ae36ac482d1ec801c662f7\"\u003e\u003ccode\u003e804c675\u003c/code\u003e\u003c/a\u003e Add cache TTL and max hits to zsh completion caching (\u003ca href=\"https://redirect.github.com/nat-n/poethepoet/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nat-n/poethepoet/compare/v0.41.0...v0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ty` from 0.0.15 to 0.0.18\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/releases\"\u003ety's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.18\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-20.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport classes dynamically created via \u003ccode\u003etype(...)\u003c/code\u003e with cyclic bases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22792\"\u003e#22792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix incorrect types inferred when unpacking mixed tuples (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23437\"\u003e#23437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix stack overflow for self-referential \u003ccode\u003eTypeOf\u003c/code\u003e in annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23407\"\u003e#23407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix several server panics that could occur when computing semantic tokens for the current file (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23403\"\u003e#23403\u003c/a\u003e), \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23398\"\u003e#23398\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23401\"\u003e#23401\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd code folding support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23393\"\u003e#23393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd warning message when running \u003ccode\u003ety server\u003c/code\u003e interactively (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23416\"\u003e#23416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExclude test-related symbols from non-first-party packages in auto-import completions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23252\"\u003e#23252\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where diagnostics could disappear after opening an external file (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23447\"\u003e#23447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove spurious destination for Go-To Definition on variables defined in a loop (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23391\"\u003e#23391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse the fully qualified name when \u0026quot;baking\u0026quot; an inlay hint into the source code if the scope already contains a variable with the same name as the unqualified name (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23265\"\u003e#23265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve TypeVars in \u003ccode\u003ecall_signature_details\u003c/code\u003e parameter types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23149\"\u003e#23149\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--output-format\u003c/code\u003e to \u003ccode\u003ety version\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23387\"\u003e#23387\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ereplace-imports-with-any\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23122\"\u003e#23122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport shellexpand for configuration paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23274\"\u003e#23274\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eType checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a new diagnostic to detect invalid class patterns in \u003ccode\u003ematch\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22939\"\u003e#22939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eSelf\u003c/code\u003e in \u003ccode\u003eClassVar\u003c/code\u003e type annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23362\"\u003e#23362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConsider synthesized methods and \u003ccode\u003eClassVar\u003c/code\u003e-qualified declarations when determining whether an abstract method has been overridden in a subclass (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23381\"\u003e#23381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a diagnostic when combining \u003ccode\u003eFinal\u003c/code\u003e and \u003ccode\u003eClassVar\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23365\"\u003e#23365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix return type of \u003ccode\u003eassert_never\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23389\"\u003e#23389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eassert_type\u003c/code\u003e diagnostic messages (\u003ca href=\"https://redirect.gith...\n\n_Description has been truncated_","html_url":"https://github.com/dougborg/katana-openapi-client/pull/279","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dougborg%2Fkatana-openapi-client/issues/279","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/279/packages"},{"uuid":"3946524733","node_id":"PR_kwDOEWEG887ECOHe","number":2088,"state":"closed","title":"fix(deps-dev): bump datamodel-code-generator[http] from 0.36.0 to 0.54.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-09T08:29:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-16T08:27:43.000Z","updated_at":"2026-03-09T08:29:45.000Z","time_to_close":1814520,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"fix(deps-dev)","packages":[{"name":"datamodel-code-generator","old_version":"0.36.0","new_version":"0.54.0","repository_url":null}],"path":null,"ecosystem":"pip"},"body":"Bumps [datamodel-code-generator[http]](https://github.com/koxudaxi/datamodel-code-generator) from 0.36.0 to 0.54.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator[http]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix patternProperties/propertyNames key constraints lost with field_constraints by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2994\"\u003ekoxudaxi/datamodel-code-generator#2994\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator[http]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.54.0\"\u003e0.54.0\u003c/a\u003e - 2026-02-14\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2ea62449515940d2af05e0723f8db2fd1b3cc11e\"\u003e\u003ccode\u003e2ea6244\u003c/code\u003e\u003c/a\u003e Fix incorrect relative imports with --use-exact-imports and --collapse-root-m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/34b7d29a52765b2c6f3da920bc525bf37f0db624\"\u003e\u003ccode\u003e34b7d29\u003c/code\u003e\u003c/a\u003e fix codespeed python version (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3000\"\u003e#3000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f3ef9c619a010ed4a30c2f7f6b514053f251a8e2\"\u003e\u003ccode\u003ef3ef9c6\u003c/code\u003e\u003c/a\u003e Fix merged result in parse_item not passed back to parse_object_fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/501190398d5717a936301f550b61ecec520c8cb7\"\u003e\u003ccode\u003e5011903\u003c/code\u003e\u003c/a\u003e Fix extra underscore on enum members like replace with --capitalise-enum-memb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/907a1a8cec66c4e25ef5dfe2128d131a5a9811f2\"\u003e\u003ccode\u003e907a1a8\u003c/code\u003e\u003c/a\u003e Fix exact imports with module/class name collision (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2998\"\u003e#2998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2b659f001e744e1e95e464ab0d613fae0122bc01\"\u003e\u003ccode\u003e2b659f0\u003c/code\u003e\u003c/a\u003e Fix missing | None for nullable enum literals in TypedDict (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/992af20312420a2d8b8975fb9ee6e22430f5144f\"\u003e\u003ccode\u003e992af20\u003c/code\u003e\u003c/a\u003e Fix type loss when $ref is used with non-standard metadata fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/0f1bc0f41d758cfda02d4438cdbbd3c3b4265102\"\u003e\u003ccode\u003e0f1bc0f\u003c/code\u003e\u003c/a\u003e Fix patternProperties/propertyNames key constraints lost with field_constrain...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/24b576e5e514802f45fbfc39af29f6d53a983e49\"\u003e\u003ccode\u003e24b576e\u003c/code\u003e\u003c/a\u003e Fix missing Field import with multiple aliases on required fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2992\"\u003e#2992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b58970a43c51805241fd93ce54deb23f2391052f\"\u003e\u003ccode\u003eb58970a\u003c/code\u003e\u003c/a\u003e Fix RecursionError in _merge_ref_with_schema for circular $ref (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.36.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=datamodel-code-generator[http]\u0026package-manager=pip\u0026previous-version=0.36.0\u0026new-version=0.54.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/oscal-compass/compliance-trestle/pull/2088","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscal-compass%2Fcompliance-trestle/issues/2088","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2088/packages"},{"uuid":"3945846718","node_id":"PR_kwDOLv-sO87EAAsV","number":367,"state":"open","title":"Bump datamodel-code-generator from 0.53.0 to 0.54.0","user":"dependabot[bot]","labels":["dependencies","maintenance"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-16T04:43:23.000Z","updated_at":"2026-02-16T04:50:58.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"datamodel-code-generator","old_version":"0.53.0","new_version":"0.54.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) from 0.53.0 to 0.54.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix patternProperties/propertyNames key constraints lost with field_constraints by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2994\"\u003ekoxudaxi/datamodel-code-generator#2994\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.54.0\"\u003e0.54.0\u003c/a\u003e - 2026-02-14\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2ea62449515940d2af05e0723f8db2fd1b3cc11e\"\u003e\u003ccode\u003e2ea6244\u003c/code\u003e\u003c/a\u003e Fix incorrect relative imports with --use-exact-imports and --collapse-root-m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/34b7d29a52765b2c6f3da920bc525bf37f0db624\"\u003e\u003ccode\u003e34b7d29\u003c/code\u003e\u003c/a\u003e fix codespeed python version (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3000\"\u003e#3000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f3ef9c619a010ed4a30c2f7f6b514053f251a8e2\"\u003e\u003ccode\u003ef3ef9c6\u003c/code\u003e\u003c/a\u003e Fix merged result in parse_item not passed back to parse_object_fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/501190398d5717a936301f550b61ecec520c8cb7\"\u003e\u003ccode\u003e5011903\u003c/code\u003e\u003c/a\u003e Fix extra underscore on enum members like replace with --capitalise-enum-memb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/907a1a8cec66c4e25ef5dfe2128d131a5a9811f2\"\u003e\u003ccode\u003e907a1a8\u003c/code\u003e\u003c/a\u003e Fix exact imports with module/class name collision (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2998\"\u003e#2998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2b659f001e744e1e95e464ab0d613fae0122bc01\"\u003e\u003ccode\u003e2b659f0\u003c/code\u003e\u003c/a\u003e Fix missing | None for nullable enum literals in TypedDict (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/992af20312420a2d8b8975fb9ee6e22430f5144f\"\u003e\u003ccode\u003e992af20\u003c/code\u003e\u003c/a\u003e Fix type loss when $ref is used with non-standard metadata fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/0f1bc0f41d758cfda02d4438cdbbd3c3b4265102\"\u003e\u003ccode\u003e0f1bc0f\u003c/code\u003e\u003c/a\u003e Fix patternProperties/propertyNames key constraints lost with field_constrain...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/24b576e5e514802f45fbfc39af29f6d53a983e49\"\u003e\u003ccode\u003e24b576e\u003c/code\u003e\u003c/a\u003e Fix missing Field import with multiple aliases on required fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2992\"\u003e#2992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b58970a43c51805241fd93ce54deb23f2391052f\"\u003e\u003ccode\u003eb58970a\u003c/code\u003e\u003c/a\u003e Fix RecursionError in _merge_ref_with_schema for circular $ref (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.53.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=datamodel-code-generator\u0026package-manager=pip\u0026previous-version=0.53.0\u0026new-version=0.54.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ansys/pyhps-data-transfer/pull/367","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansys%2Fpyhps-data-transfer/issues/367","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/367/packages"},{"uuid":"3944862862","node_id":"PR_kwDOFjuGLM7D83E7","number":426,"state":"closed","title":"Build: Bump datamodel-code-generator from 0.53.0 to 0.54.0","user":"dependabot[bot]","labels":["dependencies","PYTHON","OPENAPI"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-17T07:01:15.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-15T20:32:24.000Z","updated_at":"2026-02-17T07:01:16.000Z","time_to_close":124131,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build: Bump","packages":[{"name":"datamodel-code-generator","old_version":"0.53.0","new_version":"0.54.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) from 0.53.0 to 0.54.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix patternProperties/propertyNames key constraints lost with field_constraints by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2994\"\u003ekoxudaxi/datamodel-code-generator#2994\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.54.0\"\u003e0.54.0\u003c/a\u003e - 2026-02-14\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2ea62449515940d2af05e0723f8db2fd1b3cc11e\"\u003e\u003ccode\u003e2ea6244\u003c/code\u003e\u003c/a\u003e Fix incorrect relative imports with --use-exact-imports and --collapse-root-m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/34b7d29a52765b2c6f3da920bc525bf37f0db624\"\u003e\u003ccode\u003e34b7d29\u003c/code\u003e\u003c/a\u003e fix codespeed python version (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3000\"\u003e#3000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f3ef9c619a010ed4a30c2f7f6b514053f251a8e2\"\u003e\u003ccode\u003ef3ef9c6\u003c/code\u003e\u003c/a\u003e Fix merged result in parse_item not passed back to parse_object_fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/501190398d5717a936301f550b61ecec520c8cb7\"\u003e\u003ccode\u003e5011903\u003c/code\u003e\u003c/a\u003e Fix extra underscore on enum members like replace with --capitalise-enum-memb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/907a1a8cec66c4e25ef5dfe2128d131a5a9811f2\"\u003e\u003ccode\u003e907a1a8\u003c/code\u003e\u003c/a\u003e Fix exact imports with module/class name collision (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2998\"\u003e#2998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2b659f001e744e1e95e464ab0d613fae0122bc01\"\u003e\u003ccode\u003e2b659f0\u003c/code\u003e\u003c/a\u003e Fix missing | None for nullable enum literals in TypedDict (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/992af20312420a2d8b8975fb9ee6e22430f5144f\"\u003e\u003ccode\u003e992af20\u003c/code\u003e\u003c/a\u003e Fix type loss when $ref is used with non-standard metadata fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/0f1bc0f41d758cfda02d4438cdbbd3c3b4265102\"\u003e\u003ccode\u003e0f1bc0f\u003c/code\u003e\u003c/a\u003e Fix patternProperties/propertyNames key constraints lost with field_constrain...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/24b576e5e514802f45fbfc39af29f6d53a983e49\"\u003e\u003ccode\u003e24b576e\u003c/code\u003e\u003c/a\u003e Fix missing Field import with multiple aliases on required fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2992\"\u003e#2992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b58970a43c51805241fd93ce54deb23f2391052f\"\u003e\u003ccode\u003eb58970a\u003c/code\u003e\u003c/a\u003e Fix RecursionError in _merge_ref_with_schema for circular $ref (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.53.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=datamodel-code-generator\u0026package-manager=pip\u0026previous-version=0.53.0\u0026new-version=0.54.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/wangjunyou/iceberg/pull/426","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/wangjunyou%2Ficeberg/issues/426","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/426/packages"},{"uuid":"3944200204","node_id":"PR_kwDOGp6vrM7D62J7","number":474,"state":"closed","title":"Build: Bump datamodel-code-generator from 0.53.0 to 0.54.0","user":"dependabot[bot]","labels":["dependencies","PYTHON","OPENAPI"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-18T18:03:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-15T14:32:24.000Z","updated_at":"2026-02-18T18:03:39.000Z","time_to_close":271873,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build: Bump","packages":[{"name":"datamodel-code-generator","old_version":"0.53.0","new_version":"0.54.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) from 0.53.0 to 0.54.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix patternProperties/propertyNames key constraints lost with field_constraints by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2994\"\u003ekoxudaxi/datamodel-code-generator#2994\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.54.0\"\u003e0.54.0\u003c/a\u003e - 2026-02-14\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2ea62449515940d2af05e0723f8db2fd1b3cc11e\"\u003e\u003ccode\u003e2ea6244\u003c/code\u003e\u003c/a\u003e Fix incorrect relative imports with --use-exact-imports and --collapse-root-m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/34b7d29a52765b2c6f3da920bc525bf37f0db624\"\u003e\u003ccode\u003e34b7d29\u003c/code\u003e\u003c/a\u003e fix codespeed python version (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3000\"\u003e#3000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f3ef9c619a010ed4a30c2f7f6b514053f251a8e2\"\u003e\u003ccode\u003ef3ef9c6\u003c/code\u003e\u003c/a\u003e Fix merged result in parse_item not passed back to parse_object_fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/501190398d5717a936301f550b61ecec520c8cb7\"\u003e\u003ccode\u003e5011903\u003c/code\u003e\u003c/a\u003e Fix extra underscore on enum members like replace with --capitalise-enum-memb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/907a1a8cec66c4e25ef5dfe2128d131a5a9811f2\"\u003e\u003ccode\u003e907a1a8\u003c/code\u003e\u003c/a\u003e Fix exact imports with module/class name collision (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2998\"\u003e#2998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2b659f001e744e1e95e464ab0d613fae0122bc01\"\u003e\u003ccode\u003e2b659f0\u003c/code\u003e\u003c/a\u003e Fix missing | None for nullable enum literals in TypedDict (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/992af20312420a2d8b8975fb9ee6e22430f5144f\"\u003e\u003ccode\u003e992af20\u003c/code\u003e\u003c/a\u003e Fix type loss when $ref is used with non-standard metadata fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/0f1bc0f41d758cfda02d4438cdbbd3c3b4265102\"\u003e\u003ccode\u003e0f1bc0f\u003c/code\u003e\u003c/a\u003e Fix patternProperties/propertyNames key constraints lost with field_constrain...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/24b576e5e514802f45fbfc39af29f6d53a983e49\"\u003e\u003ccode\u003e24b576e\u003c/code\u003e\u003c/a\u003e Fix missing Field import with multiple aliases on required fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2992\"\u003e#2992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b58970a43c51805241fd93ce54deb23f2391052f\"\u003e\u003ccode\u003eb58970a\u003c/code\u003e\u003c/a\u003e Fix RecursionError in _merge_ref_with_schema for circular $ref (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.53.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=datamodel-code-generator\u0026package-manager=pip\u0026previous-version=0.53.0\u0026new-version=0.54.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/amogh-jahagirdar/iceberg/pull/474","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/amogh-jahagirdar%2Ficeberg/issues/474","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/474/packages"},{"uuid":"3943587274","node_id":"PR_kwDOFn2Qr87D40u3","number":435,"state":"closed","title":"Build: Bump datamodel-code-generator from 0.53.0 to 0.54.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-08T09:12:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-15T09:12:30.000Z","updated_at":"2026-03-08T09:12:43.000Z","time_to_close":1814412,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build: Bump","packages":[{"name":"datamodel-code-generator","old_version":"0.53.0","new_version":"0.54.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) from 0.53.0 to 0.54.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix patternProperties/propertyNames key constraints lost with field_constraints by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2994\"\u003ekoxudaxi/datamodel-code-generator#2994\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.54.0\"\u003e0.54.0\u003c/a\u003e - 2026-02-14\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2ea62449515940d2af05e0723f8db2fd1b3cc11e\"\u003e\u003ccode\u003e2ea6244\u003c/code\u003e\u003c/a\u003e Fix incorrect relative imports with --use-exact-imports and --collapse-root-m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/34b7d29a52765b2c6f3da920bc525bf37f0db624\"\u003e\u003ccode\u003e34b7d29\u003c/code\u003e\u003c/a\u003e fix codespeed python version (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3000\"\u003e#3000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f3ef9c619a010ed4a30c2f7f6b514053f251a8e2\"\u003e\u003ccode\u003ef3ef9c6\u003c/code\u003e\u003c/a\u003e Fix merged result in parse_item not passed back to parse_object_fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/501190398d5717a936301f550b61ecec520c8cb7\"\u003e\u003ccode\u003e5011903\u003c/code\u003e\u003c/a\u003e Fix extra underscore on enum members like replace with --capitalise-enum-memb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/907a1a8cec66c4e25ef5dfe2128d131a5a9811f2\"\u003e\u003ccode\u003e907a1a8\u003c/code\u003e\u003c/a\u003e Fix exact imports with module/class name collision (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2998\"\u003e#2998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2b659f001e744e1e95e464ab0d613fae0122bc01\"\u003e\u003ccode\u003e2b659f0\u003c/code\u003e\u003c/a\u003e Fix missing | None for nullable enum literals in TypedDict (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/992af20312420a2d8b8975fb9ee6e22430f5144f\"\u003e\u003ccode\u003e992af20\u003c/code\u003e\u003c/a\u003e Fix type loss when $ref is used with non-standard metadata fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/0f1bc0f41d758cfda02d4438cdbbd3c3b4265102\"\u003e\u003ccode\u003e0f1bc0f\u003c/code\u003e\u003c/a\u003e Fix patternProperties/propertyNames key constraints lost with field_constrain...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/24b576e5e514802f45fbfc39af29f6d53a983e49\"\u003e\u003ccode\u003e24b576e\u003c/code\u003e\u003c/a\u003e Fix missing Field import with multiple aliases on required fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2992\"\u003e#2992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b58970a43c51805241fd93ce54deb23f2391052f\"\u003e\u003ccode\u003eb58970a\u003c/code\u003e\u003c/a\u003e Fix RecursionError in _merge_ref_with_schema for circular $ref (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.53.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=datamodel-code-generator\u0026package-manager=pip\u0026previous-version=0.53.0\u0026new-version=0.54.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/bryanck/iceberg/pull/435","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryanck%2Ficeberg/issues/435","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/435/packages"}],"issue_packages":[{"old_version":"0.26.3","new_version":"0.58.0","update_type":"minor","path":null,"pr_created_at":"2026-05-26T23:33:44.000Z","version_change":"0.26.3 → 0.58.0","issue":{"uuid":"4528230982","node_id":"PR_kwDOSn3wsM7fnM-p","number":5,"state":"open","title":"Bump the minor-update group with 145 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-26T23:33:44.000Z","updated_at":"2026-05-26T23:33:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":145,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.5.9","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"transformers","old_version":"5.5.3","new_version":"5.9.0","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"filelock","old_version":"3.16.1","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"alembic","old_version":"1.16.4","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.29.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.2.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.9","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.15","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.15","repository_url":"https://github.com/boto/botocore"},{"name":"click","old_version":"8.1.7","new_version":"8.4.1","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.10.6","new_version":"7.14.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.2.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.5.4","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.2.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.58.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.2","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.53.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.9.0","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.1","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.80.0"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"harfile","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.16.4","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.153.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.12.0","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.16","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librosa","old_version":"0.10.2.post1","new_version":"0.11.0","repository_url":"https://github.com/librosa/librosa"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.12.30","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.5.1.27"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.35"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.22.0.52"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.0.66"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.2.18"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.1.7"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.30.4"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.19.1","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.41.0","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.47.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.1","repository_url":"https://github.com/getsentry/responses"},{"name":"rpds-py","old_version":"0.20.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.17.1","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.5.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smart-open","old_version":"7.1.0","new_version":"7.6.1","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"structlog","old_version":"25.4.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.7.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.68.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.26.1","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.48.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.29.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xxhash","old_version":"3.5.0","new_version":"3.7.0","repository_url":"https://github.com/ifduyue/python-xxhash"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.2","repository_url":"https://github.com/aio-libs/yarl"},{"name":"tpu-inference","old_version":"0.19.0","new_version":"0.20.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"helion","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/pytorch/helion"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 145 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.5.9` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.9.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.136.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.25.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.13.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.29.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.42.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.42.1` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.4.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.18.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.13.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.6.3` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.29.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.2.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.9` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.15` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.15` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.4.1` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.14.1` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.2.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.5.4` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.2.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.58.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.30.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.2` | `2.53.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.6.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.10.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.9.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.1` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.80.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.4.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.5.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.16.4` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.15.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.153.0` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.16` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [librosa](https://github.com/librosa/librosa) | `0.10.2.post1` | `0.11.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.36.0` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.12.30` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.5.1.27` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.35` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.22.0.52` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.0.66` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.2.18` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.1.7` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.30.4` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.63b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.63b1` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.19.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.9.6` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.41.0` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.0` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.47.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.20.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.1` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.1` | `0.30.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.17.1` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.5.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.1.0` | `7.6.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.13.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.4.0` | `25.5.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.7.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.68.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.26.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.48.0` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.29.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.7.0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.5.0` | `3.7.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.2` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.19.0` | `0.20.0` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [helion](https://github.com/pytorch/helion) | `1.0.0` | `1.1.0` |\n\nUpdates `regex` from 2026.2.28 to 2026.5.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.5.9\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReverse matching with full unicode casefolding could lead to out-of-range string indexes.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eA fix for older Python versions before free-threading was  supported.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReplaced atomic operations with mutex on pattern object for free-threaded Python.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.26\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#598](https://github.com/mrabarnett/mrab-regex/issues/598): Fix race condition in storage caching with atomic operations.\n\u003cp\u003eReplaced use of PyUnicode_GET_LENGTH with PyUnicode_GetLength.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.2.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdded \\z as alias of \\Z, like in re module.\n\u003cp\u003eAdded prefixmatch as alias of match, like in re module.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.1.15\u003c/p\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.5.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.9.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eCohere2Moe\u003c/h3\u003e\n\u003cp\u003eCommand A+ is a Mixture-of-Experts (MoE) language model from Cohere that features a hybrid attention pattern combining sliding window and full attention layers. The model incorporates both shared and routed experts and supports a very large context window for processing extensive text sequences.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/cohere2_moe\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new cohere2_moe model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46115\"\u003e#46115\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/46115\"\u003e#46115\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eParakeet tdt (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44171\"\u003e#44171\u003c/a\u003e)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eParakeet tdt (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44171\"\u003e#44171\u003c/a\u003e) by \u003ca href=\"https://github.com/lmaksym\"\u003e\u003ccode\u003e@​lmaksym\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eHRM-Text\u003c/h3\u003e\n\u003cp\u003eHRM-Text is an improved autoregressive language-modeling variant of the Hierarchical Reasoning Model (HRM) that uses a hierarchical recurrent forward pass with two transformer stacks - one for slow, abstract planning (H) and one for fast, detailed computation (L) - reused inside a nested recurrence. It features PrefixLM attention where instruction tokens attend bidirectionally while response tokens attend causally, per-head sigmoid output gates, and parameterless RMSNorm. The model is designed as a base language model without instruction tuning or chat templates.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/hrm_text\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/papers/2506.21734\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd hrm text (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46025\"\u003e#46025\u003c/a\u003e) by \u003ca href=\"https://github.com/abcd1927\"\u003e\u003ccode\u003e@​abcd1927\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/46025\"\u003e#46025\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking changes\u003c/h2\u003e\n\u003cp\u003eThe \u003ccode\u003etext_embeds\u003c/code\u003e input for SAM3, EdgeTAM, and SAM3-Lite-Text models now expects full text embeddings instead of just pooler outputs, aligning with other models in the library — users must update their inputs accordingly.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e🚨Fix memory leaks caused by lru decorators in vision models (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45922\"\u003e#45922\u003c/a\u003e) by \u003ca href=\"https://github.com/yonigozlan\"\u003e\u003ccode\u003e@​yonigozlan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAudio\u003c/h2\u003e\n\u003cp\u003eAudio support was expanded with the addition of AudioFlamingoNext model checkpoints and improved compilability of audio/vision encoders via standalone pure functions. Additional improvements include better error messaging when loading audio from video files and new documentation for audio/video processors.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003euser friendly error when loading audio from video (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45221\"\u003e#45221\u003c/a\u003e) by \u003ca href=\"https://github.com/eustlb\"\u003e\u003ccode\u003e@​eustlb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45221\"\u003e#45221\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] adding audio/video processors (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45795\"\u003e#45795\u003c/a\u003e) by \u003ca href=\"https://github.com/stevhliu\"\u003e\u003ccode\u003e@​stevhliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45795\"\u003e#45795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Audio Flamingo Next checkpoints (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44830\"\u003e#44830\u003c/a\u003e) by \u003ca href=\"https://github.com/lashahub\"\u003e\u003ccode\u003e@​lashahub\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44830\"\u003e#44830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtract dynamic vision/audio tensors into standalone pure functions (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45396\"\u003e#45396\u003c/a\u003e) by \u003ca href=\"https://github.com/IlyasMoutawwakil\"\u003e\u003ccode\u003e@​IlyasMoutawwakil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45396\"\u003e#45396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGeneration\u003c/h2\u003e\n\u003cp\u003eFixed generation issues including \u003ccode\u003einputs_embeds\u003c/code\u003e and \u003ccode\u003eper_layer_inputs\u003c/code\u003e handling for Gemma4, an \u003ccode\u003eAttributeError\u003c/code\u003e in RAG's \u003ccode\u003egenerate()\u003c/code\u003e caused by missing config fields, and flaky VLM generation tests by blocking special image tokens during sampling.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Gemma4 generation from inputs_embeds and per_layer_inputs (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46049\"\u003e#46049\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46049\"\u003e#46049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AttributeError in RAG generate() for missing config fields (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46035\"\u003e#46035\u003c/a\u003e) by \u003ca href=\"https://github.com/Sriniketh24\"\u003e\u003ccode\u003e@​Sriniketh24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46035\"\u003e#46035\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0a2757da521a7a49b8143d9e0c938f08747d682e\"\u003e\u003ccode\u003e0a2757d\u003c/code\u003e\u003c/a\u003e release v5.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/e370a7f3f49c3c759cf8c7c01a935ce0e00c3f44\"\u003e\u003ccode\u003ee370a7f\u003c/code\u003e\u003c/a\u003e fix cohere2 tp_plan for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f59ffd1ef95634f9b0317ec5d8d43d71e3604a10\"\u003e\u003ccode\u003ef59ffd1\u003c/code\u003e\u003c/a\u003e Add new cohere2_moe model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46115\"\u003e#46115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4f41f261efcfd71ce08db2890b7c632cc9ffc0bc\"\u003e\u003ccode\u003e4f41f26\u003c/code\u003e\u003c/a\u003e [loading] Free up tensors faster inside ConversionOps (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46110\"\u003e#46110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d5dd7eed2f7d5b2ccba569e150647ef275e56365\"\u003e\u003ccode\u003ed5dd7ee\u003c/code\u003e\u003c/a\u003e Fix post processing RF-DETR (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46041\"\u003e#46041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0b25f8c49c37530ce9f8742d7a8c19ed8d254d7d\"\u003e\u003ccode\u003e0b25f8c\u003c/code\u003e\u003c/a\u003e [serve] Support for reasoning  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45690\"\u003e#45690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0df9b7fcaab447c75543598e6d959065c2296a24\"\u003e\u003ccode\u003e0df9b7f\u003c/code\u003e\u003c/a\u003e Fix Gemma4 generation from inputs_embeds and per_layer_inputs (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46049\"\u003e#46049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/38a8b55f22d593c103e8bcc616413e70a5ef03ca\"\u003e\u003ccode\u003e38a8b55\u003c/code\u003e\u003c/a\u003e Parakeet tdt (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44171\"\u003e#44171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/3428030a179620b01cb598928b6cc7d5e5e60990\"\u003e\u003ccode\u003e3428030\u003c/code\u003e\u003c/a\u003e Remove mask visualization tool from \u003ccode\u003emasking_utils.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46066\"\u003e#46066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/dda06506142a0efe4081a0ab574fbd3c7c72dc37\"\u003e\u003ccode\u003edda0650\u003c/code\u003e\u003c/a\u003e user friendly error when loading audio from video (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45221\"\u003e#45221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.128.0 to 0.136.3\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.3\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (the default). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15589\"\u003e#15589\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.136.2\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Validate Server Sent Event fields to avoid applications from sending broken data. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15588\"\u003e#15588\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15464\"\u003e#15464\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 and simplify docs about help and management. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15583\"\u003e#15583\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 docs references to central contributing docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15580\"\u003e#15580\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 security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15577\"\u003e#15577\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: TalorData image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15562\"\u003e#15562\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, simplify usage of admonitions, only default ones. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15553\"\u003e#15553\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📝 Fix image URLs in \u003ccode\u003eindex.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15534\"\u003e#15534\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Fix Azkaban spelling typo in \u003ccode\u003evirtual-environments.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15463\"\u003e#15463\u003c/a\u003e by \u003ca href=\"https://github.com/isaacbernat\"\u003e\u003ccode\u003e@​isaacbernat\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Improve layout and styling. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15462\"\u003e#15462\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Refactor opinions section with interactive tabs and new logos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15458\"\u003e#15458\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add FastAPI Conf '26 announcement to docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15457\"\u003e#15457\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Improve translation consistency in \u003ccode\u003e‎docs/pt/docs/advanced/generate-clients.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15456\"\u003e#15456\u003c/a\u003e by \u003ca href=\"https://github.com/Will-thom\"\u003e\u003ccode\u003e@​Will-thom\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15530\"\u003e#15530\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 translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15529\"\u003e#15529\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 translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15528\"\u003e#15528\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 translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15527\"\u003e#15527\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 translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15526\"\u003e#15526\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 translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15525\"\u003e#15525\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 translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15524\"\u003e#15524\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 translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15522\"\u003e#15522\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 translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15523\"\u003e#15523\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 translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15520\"\u003e#15520\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 translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15521\"\u003e#15521\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🌐 Fix typos in Spanish LLM-prompt. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15472\"\u003e#15472\u003c/a\u003e by \u003ca href=\"https://github.com/crr004\"\u003e\u003ccode\u003e@​crr004\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 tests, don't double dispose the engine. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15587\"\u003e#15587\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⚡️ Speed up test suite via caching and fixture scopes to make it ~24% faster. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13583\"\u003e#13583\u003c/a\u003e by \u003ca href=\"https://github.com/dikos1337\"\u003e\u003ccode\u003e@​dikos1337\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15585\"\u003e#15585\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⬆ Bump urllib3 from 2.6.3 to 2.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15502\"\u003e#15502\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 idna from 3.11 to 3.15. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15565\"\u003e#15565\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.15.0 to 4.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15571\"\u003e#15571\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🔧 Migrate docs from MkDocs to Zensical. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15563\"\u003e#15563\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🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15548\"\u003e#15548\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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/82064857539e6286522c347b4b11331b48dd2378\"\u003e\u003ccode\u003e8206485\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c910e0139f983d0e04e2d1d235cd71803afeae34\"\u003e\u003ccode\u003ec910e01\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/063b5bf582d31fb155cc6bc6f88cf512329d0fd5\"\u003e\u003ccode\u003e063b5bf\u003c/code\u003e\u003c/a\u003e ♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/22b02e26f9e8c7e32bd8266e2b0ebe8bb3a0db2b\"\u003e\u003ccode\u003e22b02e2\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3b252a2a22ba27a8ab83d6bde7d9cddbc5bf738e\"\u003e\u003ccode\u003e3b252a2\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c7fb7851b3389f24c51701d705458989be53ccbb\"\u003e\u003ccode\u003ec7fb785\u003c/code\u003e\u003c/a\u003e ♻️ Validate Server Sent Event fields to avoid applications from sending broke...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cb83b83dcf78eab4ea17d504db5abcda705fbdc4\"\u003e\u003ccode\u003ecb83b83\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/00f805cec94c0bf48c1f9a563535a3ab2e6f90ab\"\u003e\u003ccode\u003e00f805c\u003c/code\u003e\u003c/a\u003e ✅ Update tests, don't double dispose the engine (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15587\"\u003e#15587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3675137523dc167981aa3a3c44599b4f3079ccd8\"\u003e\u003ccode\u003e3675137\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7b57e42986bb4d40c9eb6580537d13fb8e76097e\"\u003e\u003ccode\u003e7b57e42\u003c/code\u003e\u003c/a\u003e 📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15464\"\u003e#15464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.0...0.136.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.0 to 2.13.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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.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\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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.0...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Django] Pass correct registry to MultiProcessCollector by \u003ca href=\"https://github.com/jelly\"\u003e\u003ccode\u003e@​jelly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1152\"\u003eprometheus/client_python#1152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an AIOHTTP exporter by \u003ca href=\"https://github.com/Lexicality\"\u003e\u003ccode\u003e@​Lexicality\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1139\"\u003eprometheus/client_python#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd remove_matching() method for metric label deletion by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1121\"\u003eprometheus/client_python#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(multiprocess): avoid double-building child metric names (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1035\"\u003e#1035\u003c/a\u003e) by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1146\"\u003eprometheus/client_python#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't interleave histogram metrics in multi-process collector by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1148\"\u003eprometheus/client_python#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax registry type annotations for exposition by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1149\"\u003eprometheus/client_python#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded compression support in pushgateway by \u003ca href=\"https://github.com/ritesh-avesha\"\u003e\u003ccode\u003e@​ritesh-avesha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1144\"\u003eprometheus/client_python#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) by \u003ca href=\"https://github.com/Chadys\"\u003e\u003ccode\u003e@​Chadys\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1143\"\u003eprometheus/client_python#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code...\n\n_Description has been truncated_","html_url":"https://github.com/kingcharlezz/deepseek-v4-flash-deterministic-vllm/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingcharlezz%2Fdeepseek-v4-flash-deterministic-vllm/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"}},{"old_version":"0.56.1","new_version":"0.58.0","update_type":"minor","path":null,"pr_created_at":"2026-05-25T17:28:17.000Z","version_change":"0.56.1 → 0.58.0","issue":{"uuid":"4518555179","node_id":"PR_kwDOG7OTWc7fHw7n","number":251,"state":"closed","title":"Bump datamodel-code-generator from 0.56.1 to 0.58.0","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-26T00:24:28.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-25T17:28:17.000Z","updated_at":"2026-05-26T00:24:37.000Z","time_to_close":24971,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"datamodel-code-generator","old_version":"0.56.1","new_version":"0.58.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) from 0.56.1 to 0.58.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.58.0\u003c/h2\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e--serialization-aliases\u003c/code\u003e for Pydantic v2 serialization alias mapping. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e--openapi-include-info-version\u003c/code\u003e to emit \u003ccode\u003eOPENAPI_INFO_VERSION\u003c/code\u003e from OpenAPI \u003ccode\u003einfo.version\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3176\"\u003e#3176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e--use-object-type\u003c/code\u003e to generate \u003ccode\u003eobject\u003c/code\u003e instead of \u003ccode\u003eAny\u003c/code\u003e for unspecified JSON Schema object and array values. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3177\"\u003e#3177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicate validation aliases are now deduplicated in generated Pydantic v2 \u003ccode\u003eAliasChoices\u003c/code\u003e - Fields that previously generated duplicate entries such as \u003ccode\u003eAliasChoices('endDate', 'end_date', 'endDate')\u003c/code\u003e now generate each alias once. Runtime behavior is equivalent, but exact generated output changes. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJSON Schema edge-case fixes change generated output for affected schemas - Schema-valued \u003ccode\u003eadditionalProperties\u003c/code\u003e/\u003ccode\u003eunevaluatedProperties\u003c/code\u003e, \u003ccode\u003econst: null\u003c/code\u003e, complex enum values, all-false \u003ccode\u003epatternProperties\u003c/code\u003e, non-string \u003ccode\u003epropertyNames\u003c/code\u003e, boolean array item schemas, \u003ccode\u003econtains\u003c/code\u003e, \u003ccode\u003eminProperties\u003c/code\u003e/\u003ccode\u003emaxProperties\u003c/code\u003e, and enum references through \u003ccode\u003eallOf\u003c/code\u003e now generate more accurate annotations or constraints. Users with snapshots or exact-output checks may see diffs. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDuplicate TypedDict import fix changes generated output - Mixed closed/open TypedDict generation no longer imports \u003ccode\u003eTypedDict\u003c/code\u003e from both \u003ccode\u003etyping\u003c/code\u003e and \u003ccode\u003etyping_extensions\u003c/code\u003e; \u003ccode\u003eTypedDict\u003c/code\u003e is kept only where required. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3155\"\u003e#3155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSchema-derived payload fixes change generated output for affected schemas - Forward-referenced dict key unions, indirect \u003ccode\u003e$ref\u003c/code\u003e types in \u003ccode\u003eallOf\u003c/code\u003e, \u003ccode\u003eadditionalProperties\u003c/code\u003e with \u003ccode\u003e$ref\u003c/code\u003e, heterogeneous root constraints, and unresolved discriminator fields now generate more valid types/fields. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3168\"\u003e#3168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrimitive \u003ccode\u003eallOf\u003c/code\u003e schemas now generate root-style payload types - Primitive-only \u003ccode\u003eallOf\u003c/code\u003e and top-level \u003ccode\u003eallOf\u003c/code\u003e combined with \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e now generate \u003ccode\u003eRootModel\u003c/code\u003e/root payload types instead of empty or object-like models. Code instantiating the previous generated classes may need updates. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3169\"\u003e#3169\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3171\"\u003e#3171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDiscriminator literal generation changed for some enum mappings - Discriminator mappings now use the resolved literal values for enum-backed mappings, including non-string values where applicable. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3074\"\u003e#3074\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3170\"\u003e#3170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultipleOf\u003c/code\u003e intersections in \u003ccode\u003eallOf\u003c/code\u003e now use the least common multiple - For example, \u003ccode\u003emultipleOf: 5\u003c/code\u003e combined with \u003ccode\u003emultipleOf: 10\u003c/code\u003e now generates \u003ccode\u003emultiple_of=10\u003c/code\u003e instead of incorrectly keeping the first value. Decimal multiples are handled similarly. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3172\"\u003e#3172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSchema metadata fields are now preserved automatically - \u003ccode\u003econtentEncoding\u003c/code\u003e, \u003ccode\u003econtentMediaType\u003c/code\u003e, \u003ccode\u003econtentSchema\u003c/code\u003e, \u003ccode\u003eexternalDocs\u003c/code\u003e, and \u003ccode\u003exml\u003c/code\u003e are included in generated \u003ccode\u003ejson_schema_extra\u003c/code\u003e when present in the input schema, even without \u003ccode\u003e--model-extra-keys\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3175\"\u003e#3175\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--output-datetime-class\u003c/code\u003e now rejects incompatible TypedDict and Dataclass output combinations - Pydantic-specific datetime classes with \u003ccode\u003etyping.TypedDict\u003c/code\u003e, and incompatible dataclass API usage, now raise errors instead of silently producing fallback output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3155\"\u003e#3155\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3169\"\u003e#3169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBoolean \u003ccode\u003efalse\u003c/code\u003e inside \u003ccode\u003eallOf\u003c/code\u003e now raises \u003ccode\u003eSchemaParseError\u003c/code\u003e - Unsatisfiable \u003ccode\u003eallOf\u003c/code\u003e branches are reported instead of generating incorrect models. \u003ccode\u003efalse\u003c/code\u003e branches in \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e are filtered where appropriate. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3168\"\u003e#3168\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCreate changelog updates through PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3138\"\u003ekoxudaxi/datamodel-code-generator#3138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual changelog update trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3139\"\u003ekoxudaxi/datamodel-code-generator#3139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CHANGELOG for 0.57.0 by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3140\"\u003ekoxudaxi/datamodel-code-generator#3140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize changelog release body spacing by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3141\"\u003ekoxudaxi/datamodel-code-generator#3141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix duplicate changelog prepend by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3143\"\u003ekoxudaxi/datamodel-code-generator#3143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CHANGELOG for 0.57.0 by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3144\"\u003ekoxudaxi/datamodel-code-generator#3144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd serialization aliases by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3146\"\u003ekoxudaxi/datamodel-code-generator#3146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3148\"\u003ekoxudaxi/datamodel-code-generator#3148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd generation dependency index by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3154\"\u003ekoxudaxi/datamodel-code-generator#3154\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument boundary payload typing by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3162\"\u003ekoxudaxi/datamodel-code-generator#3162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3163\"\u003ekoxudaxi/datamodel-code-generator#3163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3164\"\u003ekoxudaxi/datamodel-code-generator#3164\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove code generation performance by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3166\"\u003ekoxudaxi/datamodel-code-generator#3166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMap OpenAPI Discriminator mapping's values to their real value in enums  by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3074\"\u003ekoxudaxi/datamodel-code-generator#3074\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix JSON Schema edge-case generation by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3167\"\u003ekoxudaxi/datamodel-code-generator#3167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(TypedDict): Issue with DateTime options not being used in the output, and duplicate TypedDict imports by \u003ca href=\"https://github.com/richinfante\"\u003e\u003ccode\u003e@​richinfante\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3155\"\u003ekoxudaxi/datamodel-code-generator#3155\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd schema-derived payload validation tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3168\"\u003ekoxudaxi/datamodel-code-generator#3168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix msgspec enum discriminator tag by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3170\"\u003ekoxudaxi/datamodel-code-generator#3170\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix top-level allOf oneOf schema by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3171\"\u003ekoxudaxi/datamodel-code-generator#3171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix primitive allOf payload types by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3169\"\u003ekoxudaxi/datamodel-code-generator#3169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix allOf multipleOf intersection by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3172\"\u003ekoxudaxi/datamodel-code-generator#3172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlign schema feature support status by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3174\"\u003ekoxudaxi/datamodel-code-generator#3174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport additional JSON Schema string formats by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3173\"\u003ekoxudaxi/datamodel-code-generator#3173\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI info version constant by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3176\"\u003ekoxudaxi/datamodel-code-generator#3176\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve schema metadata extras by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3175\"\u003ekoxudaxi/datamodel-code-generator#3175\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3180\"\u003ekoxudaxi/datamodel-code-generator#3180\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.58.0\"\u003e0.58.0\u003c/a\u003e - 2026-05-25\u003c/h2\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e--serialization-aliases\u003c/code\u003e for Pydantic v2 serialization alias mapping. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e--openapi-include-info-version\u003c/code\u003e to emit \u003ccode\u003eOPENAPI_INFO_VERSION\u003c/code\u003e from OpenAPI \u003ccode\u003einfo.version\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3176\"\u003e#3176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e--use-object-type\u003c/code\u003e to generate \u003ccode\u003eobject\u003c/code\u003e instead of \u003ccode\u003eAny\u003c/code\u003e for unspecified JSON Schema object and array values. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3177\"\u003e#3177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDuplicate validation aliases are now deduplicated in generated Pydantic v2 \u003ccode\u003eAliasChoices\u003c/code\u003e - Fields that previously generated duplicate entries such as \u003ccode\u003eAliasChoices('endDate', 'end_date', 'endDate')\u003c/code\u003e now generate each alias once. Runtime behavior is equivalent, but exact generated output changes. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3146\"\u003e#3146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJSON Schema edge-case fixes change generated output for affected schemas - Schema-valued \u003ccode\u003eadditionalProperties\u003c/code\u003e/\u003ccode\u003eunevaluatedProperties\u003c/code\u003e, \u003ccode\u003econst: null\u003c/code\u003e, complex enum values, all-false \u003ccode\u003epatternProperties\u003c/code\u003e, non-string \u003ccode\u003epropertyNames\u003c/code\u003e, boolean array item schemas, \u003ccode\u003econtains\u003c/code\u003e, \u003ccode\u003eminProperties\u003c/code\u003e/\u003ccode\u003emaxProperties\u003c/code\u003e, and enum references through \u003ccode\u003eallOf\u003c/code\u003e now generate more accurate annotations or constraints. Users with snapshots or exact-output checks may see diffs. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDuplicate TypedDict import fix changes generated output - Mixed closed/open TypedDict generation no longer imports \u003ccode\u003eTypedDict\u003c/code\u003e from both \u003ccode\u003etyping\u003c/code\u003e and \u003ccode\u003etyping_extensions\u003c/code\u003e; \u003ccode\u003eTypedDict\u003c/code\u003e is kept only where required. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3155\"\u003e#3155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSchema-derived payload fixes change generated output for affected schemas - Forward-referenced dict key unions, indirect \u003ccode\u003e$ref\u003c/code\u003e types in \u003ccode\u003eallOf\u003c/code\u003e, \u003ccode\u003eadditionalProperties\u003c/code\u003e with \u003ccode\u003e$ref\u003c/code\u003e, heterogeneous root constraints, and unresolved discriminator fields now generate more valid types/fields. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3168\"\u003e#3168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrimitive \u003ccode\u003eallOf\u003c/code\u003e schemas now generate root-style payload types - Primitive-only \u003ccode\u003eallOf\u003c/code\u003e and top-level \u003ccode\u003eallOf\u003c/code\u003e combined with \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e now generate \u003ccode\u003eRootModel\u003c/code\u003e/root payload types instead of empty or object-like models. Code instantiating the previous generated classes may need updates. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3169\"\u003e#3169\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3171\"\u003e#3171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDiscriminator literal generation changed for some enum mappings - Discriminator mappings now use the resolved literal values for enum-backed mappings, including non-string values where applicable. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3074\"\u003e#3074\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3170\"\u003e#3170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emultipleOf\u003c/code\u003e intersections in \u003ccode\u003eallOf\u003c/code\u003e now use the least common multiple - For example, \u003ccode\u003emultipleOf: 5\u003c/code\u003e combined with \u003ccode\u003emultipleOf: 10\u003c/code\u003e now generates \u003ccode\u003emultiple_of=10\u003c/code\u003e instead of incorrectly keeping the first value. Decimal multiples are handled similarly. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3172\"\u003e#3172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSchema metadata fields are now preserved automatically - \u003ccode\u003econtentEncoding\u003c/code\u003e, \u003ccode\u003econtentMediaType\u003c/code\u003e, \u003ccode\u003econtentSchema\u003c/code\u003e, \u003ccode\u003eexternalDocs\u003c/code\u003e, and \u003ccode\u003exml\u003c/code\u003e are included in generated \u003ccode\u003ejson_schema_extra\u003c/code\u003e when present in the input schema, even without \u003ccode\u003e--model-extra-keys\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3175\"\u003e#3175\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--output-datetime-class\u003c/code\u003e now rejects incompatible TypedDict and Dataclass output combinations - Pydantic-specific datetime classes with \u003ccode\u003etyping.TypedDict\u003c/code\u003e, and incompatible dataclass API usage, now raise errors instead of silently producing fallback output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3155\"\u003e#3155\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3169\"\u003e#3169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBoolean \u003ccode\u003efalse\u003c/code\u003e inside \u003ccode\u003eallOf\u003c/code\u003e now raises \u003ccode\u003eSchemaParseError\u003c/code\u003e - Unsatisfiable \u003ccode\u003eallOf\u003c/code\u003e branches are reported instead of generating incorrect models. \u003ccode\u003efalse\u003c/code\u003e branches in \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e are filtered where appropriate. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3168\"\u003e#3168\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCreate changelog updates through PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3138\"\u003ekoxudaxi/datamodel-code-generator#3138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual changelog update trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3139\"\u003ekoxudaxi/datamodel-code-generator#3139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CHANGELOG for 0.57.0 by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3140\"\u003ekoxudaxi/datamodel-code-generator#3140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize changelog release body spacing by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3141\"\u003ekoxudaxi/datamodel-code-generator#3141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix duplicate changelog prepend by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3143\"\u003ekoxudaxi/datamodel-code-generator#3143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CHANGELOG for 0.57.0 by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3144\"\u003ekoxudaxi/datamodel-code-generator#3144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd serialization aliases by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3146\"\u003ekoxudaxi/datamodel-code-generator#3146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3148\"\u003ekoxudaxi/datamodel-code-generator#3148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd generation dependency index by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3154\"\u003ekoxudaxi/datamodel-code-generator#3154\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument boundary payload typing by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3162\"\u003ekoxudaxi/datamodel-code-generator#3162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3163\"\u003ekoxudaxi/datamodel-code-generator#3163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3164\"\u003ekoxudaxi/datamodel-code-generator#3164\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove code generation performance by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3166\"\u003ekoxudaxi/datamodel-code-generator#3166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMap OpenAPI Discriminator mapping's values to their real value in enums  by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3074\"\u003ekoxudaxi/datamodel-code-generator#3074\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix JSON Schema edge-case generation by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3167\"\u003ekoxudaxi/datamodel-code-generator#3167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(TypedDict): Issue with DateTime options not being used in the output, and duplicate TypedDict imports by \u003ca href=\"https://github.com/richinfante\"\u003e\u003ccode\u003e@​richinfante\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3155\"\u003ekoxudaxi/datamodel-code-generator#3155\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd schema-derived payload validation tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3168\"\u003ekoxudaxi/datamodel-code-generator#3168\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix msgspec enum discriminator tag by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3170\"\u003ekoxudaxi/datamodel-code-generator#3170\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix top-level allOf oneOf schema by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3171\"\u003ekoxudaxi/datamodel-code-generator#3171\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix primitive allOf payload types by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3169\"\u003ekoxudaxi/datamodel-code-generator#3169\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix allOf multipleOf intersection by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3172\"\u003ekoxudaxi/datamodel-code-generator#3172\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlign schema feature support status by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3174\"\u003ekoxudaxi/datamodel-code-generator#3174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport additional JSON Schema string formats by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3173\"\u003ekoxudaxi/datamodel-code-generator#3173\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI info version constant by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3176\"\u003ekoxudaxi/datamodel-code-generator#3176\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve schema metadata extras by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3175\"\u003ekoxudaxi/datamodel-code-generator#3175\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/e48b29c38127dfd83ec55c66bf2cdb312fbb351d\"\u003e\u003ccode\u003ee48b29c\u003c/code\u003e\u003c/a\u003e Guard release draft analysis diff (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3184\"\u003e#3184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/011f391a2bb45d14620ebad82a8ad45f0dd3018c\"\u003e\u003ccode\u003e011f391\u003c/code\u003e\u003c/a\u003e docs: sync generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3181\"\u003e#3181\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b7f411486125894cc54e33509123f1b91a31795c\"\u003e\u003ccode\u003eb7f4114\u003c/code\u003e\u003c/a\u003e Add object type option (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3177\"\u003e#3177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/0635a8095ff71ca2fe11fbb085f58c02d4a50891\"\u003e\u003ccode\u003e0635a80\u003c/code\u003e\u003c/a\u003e docs: sync generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3180\"\u003e#3180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f75db82e1fa290a7af57a0703dcea44cab29622e\"\u003e\u003ccode\u003ef75db82\u003c/code\u003e\u003c/a\u003e Preserve schema metadata extras (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3175\"\u003e#3175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/4316b7e17317a2c4013238106426463d70618b1b\"\u003e\u003ccode\u003e4316b7e\u003c/code\u003e\u003c/a\u003e Add OpenAPI info version constant (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3176\"\u003e#3176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/1f94ca98fad084d4628093e612dc2b29759a1e6f\"\u003e\u003ccode\u003e1f94ca9\u003c/code\u003e\u003c/a\u003e Support additional JSON Schema string formats (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3173\"\u003e#3173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/1588bb734cd7c0b70cbf3e268e6443d9961b08fa\"\u003e\u003ccode\u003e1588bb7\u003c/code\u003e\u003c/a\u003e Align schema feature support status (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3174\"\u003e#3174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/c8640903abffcd1679a42d4b03f7de2b8660277c\"\u003e\u003ccode\u003ec864090\u003c/code\u003e\u003c/a\u003e Fix allOf multipleOf intersection (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3172\"\u003e#3172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/ed08cfcb035cf2bbb822d0dc7748107a142f16a5\"\u003e\u003ccode\u003eed08cfc\u003c/code\u003e\u003c/a\u003e Fix primitive allOf payload types (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3169\"\u003e#3169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.58.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=datamodel-code-generator\u0026package-manager=uv\u0026previous-version=0.56.1\u0026new-version=0.58.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/yu-iskw/dbt-artifacts-parser/pull/251","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/yu-iskw%2Fdbt-artifacts-parser/issues/251","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/251/packages"}},{"old_version":"0.45.0","new_version":"0.57.0","update_type":"minor","path":null,"pr_created_at":"2026-05-19T10:45:11.000Z","version_change":"0.45.0 → 0.57.0","issue":{"uuid":"4476682648","node_id":"PR_kwDOR0tLLM7dB9Hg","number":59,"state":"open","title":"chore(deps): bump the python-non-major group across 1 directory with 28 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-19T10:45:11.000Z","updated_at":"2026-05-19T10:51:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-non-major","update_count":28,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"requests","old_version":"2.32.5","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"lxml","old_version":"6.0.4","new_version":"6.1.1","repository_url":"https://github.com/lxml/lxml"},{"name":"ruff","old_version":"0.14.8","new_version":"0.15.13","repository_url":"https://github.com/astral-sh/ruff"},{"name":"datamodel-code-generator","old_version":"0.45.0","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"presidio-analyzer","old_version":"2.2.361","new_version":"2.2.362","repository_url":"https://github.com/Microsoft/presidio"},{"name":"spacy","old_version":"3.8.11","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"},{"name":"torch","old_version":"2.10.0","new_version":"2.12.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"onnxruntime","old_version":"1.24.2","new_version":"1.26.0","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"pillow","old_version":"12.1.1","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"datasketch","old_version":"1.9.0","new_version":"1.10.0","repository_url":"https://github.com/ekzhu/datasketch"},{"name":"sentence-transformers","old_version":"5.2.3","new_version":"5.5.0","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"datasets","old_version":"4.6.0","new_version":"4.8.5","repository_url":"https://github.com/huggingface/datasets"},{"name":"gliner2","old_version":"1.3.0","new_version":"1.3.1","repository_url":"https://github.com/fastino-ai/GLiNER2"},{"name":"chardet","old_version":"7.4.2","new_version":"7.4.3","repository_url":"https://github.com/chardet/chardet"},{"name":"docling","old_version":"2.93.0","new_version":"2.94.0","repository_url":"https://github.com/docling-project/docling"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pymysql","old_version":"1.1.2","new_version":"1.2.0","repository_url":"https://github.com/PyMySQL/PyMySQL"},{"name":"databricks-sql-connector","old_version":"4.2.5","new_version":"4.2.6","repository_url":"https://github.com/databricks/databricks-sql-python"},{"name":"snowflake-connector-python","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/snowflakedb/snowflake-connector-python"},{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"boto3","old_version":"1.42.56","new_version":"1.43.10","repository_url":"https://github.com/boto/boto3"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.29.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"google-cloud-storage","old_version":"3.9.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"opentelemetry-sdk","old_version":"1.41.0","new_version":"1.42.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-non-major group with 27 updates in the /apps/cli directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.4` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.34.2` |\n| [lxml](https://github.com/lxml/lxml) | `6.0.4` | `6.1.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.15.13` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.45.0` | `0.57.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [presidio-analyzer](https://github.com/Microsoft/presidio) | `2.2.361` | `2.2.362` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.11` | `3.8.14` |\n| [torch](https://github.com/pytorch/pytorch) | `2.10.0` | `2.12.0` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.24.2` | `1.26.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.1.1` | `12.2.0` |\n| [datasketch](https://github.com/ekzhu/datasketch) | `1.9.0` | `1.10.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.3` | `5.5.0` |\n| [datasets](https://github.com/huggingface/datasets) | `4.6.0` | `4.8.5` |\n| [gliner2](https://github.com/fastino-ai/GLiNER2) | `1.3.0` | `1.3.1` |\n| [chardet](https://github.com/chardet/chardet) | `7.4.2` | `7.4.3` |\n| [docling](https://github.com/docling-project/docling) | `2.93.0` | `2.94.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [pymysql](https://github.com/PyMySQL/PyMySQL) | `1.1.2` | `1.2.0` |\n| [databricks-sql-connector](https://github.com/databricks/databricks-sql-python) | `4.2.5` | `4.2.6` |\n| [snowflake-connector-python](https://github.com/snowflakedb/snowflake-connector-python) | `4.3.0` | `4.5.0` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.16.0` | `4.17.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.56` | `1.43.10` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.29.0` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.9.0` | `3.10.1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.41.0` | `1.42.0` |\n\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 `requests` from 2.32.5 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml` from 6.0.4 to 6.1.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lxml/lxml/blob/master/CHANGES.txt\"\u003elxml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e6.1.1 (2026-05-18)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe known link attributes in \u003ccode\u003elxml.html.defs.link_attrs\u003c/code\u003e were missing \u003ccode\u003exlink:href\u003c/code\u003e,\nwhich can be used for URL bypass attacks in embedded SVG/MathML/etc. content.\n\u003ca href=\"https://github.com/fedora-python/lxml_html_clean/security/advisories/GHSA-4jhm-jv67-739f\"\u003ehttps://github.com/fedora-python/lxml_html_clean/security/advisories/GHSA-4jhm-jv67-739f\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe Linux wheels use a patched libxslt 1.1.43, fixing CVE-2025-7424 and CVE-2025-11731.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe Windows wheels use libxslt 1.1.45, fixing CVE-2025-7424 and CVE-2025-11731.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e6.1.0 (2026-04-17)\u003c/h1\u003e\n\u003cp\u003eThis release fixes a possible external entity injection (XXE) vulnerability in\n\u003ccode\u003eiterparse()\u003c/code\u003e and the \u003ccode\u003eETCompatXMLParser\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eGH#486: The HTML ARIA accessibility attributes were added to the set of safe attributes\nin \u003ccode\u003elxml.html.defs\u003c/code\u003e.  This allows \u003ccode\u003elxml_html_clean\u003c/code\u003e to pass them through.\nPatch by oomsveta.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe default chunk size for reading from file-likes in \u003ccode\u003eiterparse()\u003c/code\u003e is now configurable\nwith a new \u003ccode\u003echunk_size\u003c/code\u003e argument.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLP#2146291: The \u003ccode\u003eresolve_entities\u003c/code\u003e option was still set to \u003ccode\u003eTrue\u003c/code\u003e for\n\u003ccode\u003eiterparse\u003c/code\u003e and \u003ccode\u003eETCompatXMLParser\u003c/code\u003e, allowing for external entity injection (XXE)\nwhen using these parsers without setting this option explicitly.\nThe default was now changed to \u003ccode\u003e'internal'\u003c/code\u003e only (as for the normal XML and HTML parsers\nsince lxml 5.0).\nIssue found by Sihao Qiu as CVE-2026-41066.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/b4a4c595fb875d6f50ae113449834209a364643a\"\u003e\u003ccode\u003eb4a4c59\u003c/code\u003e\u003c/a\u003e Build: Fix build in Py3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/a116dcbe671a792dd65bc73f53a8209e7d7c25ff\"\u003e\u003ccode\u003ea116dcb\u003c/code\u003e\u003c/a\u003e Fix typo: type annotions -\u0026gt; type annotations in PEP 560 comments (\u003ca href=\"https://redirect.github.com/lxml/lxml/issues/504\"\u003eGH-504\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/7287a75eedc4cdc247a7937d09013e936c34ace6\"\u003e\u003ccode\u003e7287a75\u003c/code\u003e\u003c/a\u003e Prepare release of 6.1.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/5927a6d5e851845140975d99b65461e255caaab0\"\u003e\u003ccode\u003e5927a6d\u003c/code\u003e\u003c/a\u003e Add missing \u0026quot;xlink:href\u0026quot; to the known HTML link attributes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/23efeb4910e43e9545b754ce1f138d91ed5cc25c\"\u003e\u003ccode\u003e23efeb4\u003c/code\u003e\u003c/a\u003e Build: Fix build in Py3.8.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/2c0563b3e8c272e62667c7850612347f65d2952e\"\u003e\u003ccode\u003e2c0563b\u003c/code\u003e\u003c/a\u003e Build: Add bug patch for libxslt 1.1.43 and apply it during the static librar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/8a35fcc3ed53975c762867c3ac8ae318c7960be7\"\u003e\u003ccode\u003e8a35fcc\u003c/code\u003e\u003c/a\u003e Fix doctest in PyPy3.9.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/43722f4402afa48b7890a96ce012eb0b9b1af5be\"\u003e\u003ccode\u003e43722f4\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/87470409b17188a5a7dbefcfa124af9cd792ffaa\"\u003e\u003ccode\u003e8747040\u003c/code\u003e\u003c/a\u003e Name version of option change in docstring.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/6c36e6cef77db5087a1fff1a0d1ca8fed963afe7\"\u003e\u003ccode\u003e6c36e6c\u003c/code\u003e\u003c/a\u003e Fix pypistats URL in download statistics script.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lxml/lxml/compare/lxml-6.0.4...lxml-6.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.8 to 0.15.13\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.13\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a rule to flag lazy imports that are eagerly evaluated (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25016\"\u003e#25016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Standardize diagnostic message (\u003ccode\u003ePLR0914\u003c/code\u003e, \u003ccode\u003ePLR0917\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24996\"\u003e#24996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eF811\u003c/code\u003e false positive for class methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24933\"\u003e#24933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix setting selection for multi-folder workspace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24819\"\u003e#24819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix false positive for lines with leading whitespace (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25122\"\u003e#25122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix false positive for f-string debug specifier (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24098\"\u003e#24098\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways include panic payload in panic diagnostic message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24873\"\u003e#24873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict \u003ccode\u003ePYI034\u003c/code\u003e for in-place operations to enclosing class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24511\"\u003e#24511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for parameters that are declared \u003ccode\u003eglobal\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24902\"\u003e#24902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known stdlib (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25103\"\u003e#25103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd TOML examples to \u003ccode\u003e--config\u003c/code\u003e help text (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25013\"\u003e#25013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eColorize ruff check 'All checks passed' (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25085\"\u003e#25085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease max allowed value of \u003ccode\u003eline-length\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24962\"\u003e#24962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eD203\u003c/code\u003e to rules that conflict with the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25044\"\u003e#25044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eCOM819\u003c/code\u003e and formatter interaction (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25045\"\u003e#25045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify that \u003ccode\u003eNotImplemented\u003c/code\u003e is a value, not an exception (\u003ccode\u003eF901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25054\"\u003e#25054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate number of lint rules supported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24942\"\u003e#24942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify the playground's markdown template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24924\"\u003e#24924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\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/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.13\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a rule to flag lazy imports that are eagerly evaluated (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25016\"\u003e#25016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Standardize diagnostic message (\u003ccode\u003ePLR0914\u003c/code\u003e, \u003ccode\u003ePLR0917\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24996\"\u003e#24996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eF811\u003c/code\u003e false positive for class methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24933\"\u003e#24933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix setting selection for multi-folder workspace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24819\"\u003e#24819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix false positive for lines with leading whitespace (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25122\"\u003e#25122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix false positive for f-string debug specifier (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24098\"\u003e#24098\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways include panic payload in panic diagnostic message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24873\"\u003e#24873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict \u003ccode\u003ePYI034\u003c/code\u003e for in-place operations to enclosing class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24511\"\u003e#24511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for parameters that are declared \u003ccode\u003eglobal\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24902\"\u003e#24902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known stdlib (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25103\"\u003e#25103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd TOML examples to \u003ccode\u003e--config\u003c/code\u003e help text (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25013\"\u003e#25013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eColorize ruff check 'All checks passed' (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25085\"\u003e#25085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease max allowed value of \u003ccode\u003eline-length\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24962\"\u003e#24962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eD203\u003c/code\u003e to rules that conflict with the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25044\"\u003e#25044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eCOM819\u003c/code\u003e and formatter interaction (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25045\"\u003e#25045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify that \u003ccode\u003eNotImplemented\u003c/code\u003e is a value, not an exception (\u003ccode\u003eF901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25054\"\u003e#25054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate number of lint rules supported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24942\"\u003e#24942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify the playground's markdown template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24924\"\u003e#24924\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/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2afb467ce397e4a89c13a0a814c62cfecb0e9e49\"\u003e\u003ccode\u003e2afb467\u003c/code\u003e\u003c/a\u003e Bump 0.15.13 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25157\"\u003e#25157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/300879600fa3af7cde1e675c63de6ad9d0797d1b\"\u003e\u003ccode\u003e3008796\u003c/code\u003e\u003c/a\u003e [ty] classify TypeVar semantic tokens as type parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24891\"\u003e#24891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/79470e31877acb6074f3bbff2a49e508822ae4e8\"\u003e\u003ccode\u003e79470e3\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2522549901d50f18775999f0fb802b19229417f0\"\u003e\u003ccode\u003e2522549\u003c/code\u003e\u003c/a\u003e Remove shellcheck from prek (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25154\"\u003e#25154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7db7170020f539d6d2bc01dbd0b0c09fab91dc06\"\u003e\u003ccode\u003e7db7170\u003c/code\u003e\u003c/a\u003e [ty] Support TypedDict key completions in incomplete, anonymous contexts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25\"\u003e#25\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb3dd535f1c5a83e2e56ac93a771fadbeeceebd0\"\u003e\u003ccode\u003ebb3dd53\u003c/code\u003e\u003c/a\u003e [ty] Run full iteration analysis on narrowed typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25143\"\u003e#25143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/828cdb7732efcb16a53f4ee5f011cf653b834d1a\"\u003e\u003ccode\u003e828cdb7\u003c/code\u003e\u003c/a\u003e [ty] Isolate file-watching test environment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25151\"\u003e#25151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/89e1d8670ea4d3af60c8143ee552dc750200718d\"\u003e\u003ccode\u003e89e1d86\u003c/code\u003e\u003c/a\u003e [ty] Preserve TypedDict keys through dict unpacking (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24523\"\u003e#24523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/86f3064d6fffa5697d174f26b840bd6857b381da\"\u003e\u003ccode\u003e86f3064\u003c/code\u003e\u003c/a\u003e [ty] Avoid accessing \u003ccode\u003eargs[0]\u003c/code\u003e for \u003ccode\u003estatic_assert\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25149\"\u003e#25149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed819f947dc27e36eac8bb3134153c4668d76a3a\"\u003e\u003ccode\u003eed819f9\u003c/code\u003e\u003c/a\u003e [ty] Treat custom enum \u003ccode\u003e__new__\u003c/code\u003e values as dynamic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25136\"\u003e#25136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.8...0.15.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.45.0 to 0.57.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.57.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.57.0\"\u003e0.57.0\u003c/a\u003e - 2026-05-07\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow generated prompt snapshot updates by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3134\"\u003ekoxudaxi/datamodel-code-generator#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite generated prompt snapshots directly by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3135\"\u003ekoxudaxi/datamodel-code-generator#3135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve tox python preference for generated docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3136\"\u003ekoxudaxi/datamodel-code-generator#3136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d0aa6ab9912603a5e8b7c78ff62a1893078542d4\"\u003e\u003ccode\u003ed0aa6ab\u003c/code\u003e\u003c/a\u003e docs: sync generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7bd643f3dacdd9f09093bc06a61b0eef49319451\"\u003e\u003ccode\u003e7bd643f\u003c/code\u003e\u003c/a\u003e Preserve tox python preference for generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/64f218a5711dfde954e50eb6b50c47b254fd35b4\"\u003e\u003ccode\u003e64f218a\u003c/code\u003e\u003c/a\u003e Write generated prompt snapshots directly (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3135\"\u003e#3135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/a7d1e9c47a8603ffd7668264a4e8fe02553d0f90\"\u003e\u003ccode\u003ea7d1e9c\u003c/code\u003e\u003c/a\u003e Allow generated prompt snapshot updates (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/9210c193922c52949e288e8f68e195d56acd34b4\"\u003e\u003ccode\u003e9210c19\u003c/code\u003e\u003c/a\u003e Propagate enum member descriptions for anyOf const pattern (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3133\"\u003e#3133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/928ba552f4190f0b4c2390d135dcbbb6048ddfc3\"\u003e\u003ccode\u003e928ba55\u003c/code\u003e\u003c/a\u003e Use source tree for generated prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3132\"\u003e#3132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b59971413184e9151882cb0b5906acbf3b3f4df8\"\u003e\u003ccode\u003eb599714\u003c/code\u003e\u003c/a\u003e Add manual generated docs sync trigger (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/93f2bce292f82fde15fe7ad8d4e0eeb2c7fdbb12\"\u003e\u003ccode\u003e93f2bce\u003c/code\u003e\u003c/a\u003e Fix generated docs sync prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/919f191f896af8bf62d7aafe9e19a98cf9a05efc\"\u003e\u003ccode\u003e919f191\u003c/code\u003e\u003c/a\u003e Fix serialization alias choices (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3126\"\u003e#3126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/90b0729b303be4246e4ce9babf825d0e4170b9f7\"\u003e\u003ccode\u003e90b0729\u003c/code\u003e\u003c/a\u003e Fix snake case array discriminator (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3125\"\u003e#3125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.45.0...0.57.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\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\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `presidio-analyzer` from 2.2.361 to 2.2.362\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Microsoft/presidio/releases\"\u003epresidio-analyzer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2.2.362\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - GPU Device Control via Environment Variable by \u003ca href=\"https://github.com/RonShakutai\"\u003e\u003ccode\u003e@​RonShakutai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1844\"\u003emicrosoft/presidio#1844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add HuggingFaceNerRecognizer for direct NER model inference by \u003ca href=\"https://github.com/ultramancode\"\u003e\u003ccode\u003e@​ultramancode\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1834\"\u003emicrosoft/presidio#1834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Broken Links by \u003ca href=\"https://github.com/andyjessen\"\u003e\u003ccode\u003e@​andyjessen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1856\"\u003emicrosoft/presidio#1856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin dependencies to mitigate supply chain attacks by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1861\"\u003emicrosoft/presidio#1861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2024-47874 and CVE-2025-54121 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1860\"\u003emicrosoft/presidio#1860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2025-2953 and CVE-2025-3730 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1859\"\u003emicrosoft/presidio#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fixed context enhancement substring matching bug  by \u003ca href=\"https://github.com/ravi-jindal\"\u003e\u003ccode\u003e@​ravi-jindal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1827\"\u003emicrosoft/presidio#1827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix _process_names unconditionally treating all metadata as PHI by \u003ca href=\"https://github.com/Mr-Neutr0n\"\u003e\u003ccode\u003e@​Mr-Neutr0n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1855\"\u003emicrosoft/presidio#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add UK Postcode (UK_POSTCODE) recognizer by \u003ca href=\"https://github.com/tee-jagz\"\u003e\u003ccode\u003e@​tee-jagz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1858\"\u003emicrosoft/presidio#1858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin ruff and build pip installs by hash for OSSF scorecard compliance by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1864\"\u003emicrosoft/presidio#1864\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd US NPI (National Provider Identifier) recognizer by \u003ca href=\"https://github.com/stevenelliottjr\"\u003e\u003ccode\u003e@​stevenelliottjr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1847\"\u003emicrosoft/presidio#1847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd transformer-based MedicalNERRecognizer for clinical entity detection by \u003ca href=\"https://github.com/stevenelliottjr\"\u003e\u003ccode\u003e@​stevenelliottjr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1853\"\u003emicrosoft/presidio#1853\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add Nigeria recognizers (National Identity Number and Vehicle Registration) by \u003ca href=\"https://github.com/tee-jagz\"\u003e\u003ccode\u003e@​tee-jagz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1863\"\u003emicrosoft/presidio#1863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix validation_result type in api docs and type hint by \u003ca href=\"https://github.com/akios-ai\"\u003e\u003ccode\u003e@​akios-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1869\"\u003emicrosoft/presidio#1869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 6.0.0 to 6.2.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/microsoft/presidio/pull/1879\"\u003emicrosoft/presidio#1879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3.32.3 to 4.32.4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1878\"\u003emicrosoft/presidio#1878\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/dependency-review-action from 3.1.5 to 4.8.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1877\"\u003emicrosoft/presidio#1877\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump microsoft/security-devops-action from 1.11.0 to 1.12.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/microsoft/presidio/pull/1876\"\u003emicrosoft/presidio#1876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/github-script from 7.0.1 to 8.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/microsoft/presidio/pull/1875\"\u003emicrosoft/presidio#1875\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump azure/login from 2.1.1 to 2.3.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1874\"\u003emicrosoft/presidio#1874\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump docker/setup-buildx-action from 3.7.1 to 3.12.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/microsoft/presidio/pull/1873\"\u003emicrosoft/presidio#1873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/cache from 4.2.0 to 5.0.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1872\"\u003emicrosoft...\n\n_Description has been truncated_","html_url":"https://github.com/classifyre-com/classifyre/pull/59","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/classifyre-com%2Fclassifyre/issues/59","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/59/packages"}},{"old_version":"0.26.3","new_version":"0.57.0","update_type":"minor","path":null,"pr_created_at":"2026-05-15T08:01:08.000Z","version_change":"0.26.3 → 0.57.0","issue":{"uuid":"4452313204","node_id":"PR_kwDOI7xefs7b1Vf9","number":42717,"state":"open","title":"Bump the minor-update group across 1 directory with 143 updates","user":"dependabot[bot]","labels":["rocm","ci/build","nvidia","dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-15T08:01:08.000Z","updated_at":"2026-05-20T05:01:30.742Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":143,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.5.9","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"transformers","old_version":"5.5.3","new_version":"5.8.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"filelock","old_version":"3.16.1","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"alembic","old_version":"1.16.4","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.29.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.2.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.9","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.10","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.10","repository_url":"https://github.com/boto/botocore"},{"name":"click","old_version":"8.1.7","new_version":"8.4.0","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.10.6","new_version":"7.14.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.2.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.5.4","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.2.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.1","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.53.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.9.0","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.80.0"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"harfile","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.15.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.152.8","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.12.0","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.15","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librosa","old_version":"0.10.2.post1","new_version":"0.11.0","repository_url":"https://github.com/librosa/librosa"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.12.30","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.4.1.1"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.2.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.2.75"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.22.0.52"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.2.0.46"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.17.1.22"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.0.1"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.7.10.1"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.30.4"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.2.75"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.19.1","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.40.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.46.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.0","repository_url":"https://github.com/getsentry/responses"},{"name":"rpds-py","old_version":"0.20.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.17.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"safetensors","old_version":"0.4.5","new_version":"0.7.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.5.0","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smart-open","old_version":"7.1.0","new_version":"7.6.1","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"structlog","old_version":"25.4.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.7.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.68.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.25.1","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.47.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.29.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xxhash","old_version":"3.5.0","new_version":"3.7.0","repository_url":"https://github.com/ifduyue/python-xxhash"},{"name":"yarl","old_version":"1.17.1","new_version":"1.23.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 143 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.5.9` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.8.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.136.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.25.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.13.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.29.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.4.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.18.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.13.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.6.3` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.29.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.2.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.9` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.10` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.10` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.4.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.14.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.2.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.5.4` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.2.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.57.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.1` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.30.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.2` | `2.53.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.6.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.10.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.9.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.80.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.4.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.5.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.15.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.15.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.152.8` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.15` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [librosa](https://github.com/librosa/librosa) | `0.10.2.post1` | `0.11.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.36.0` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.12.30` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.4.1.1` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.2.75` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.22.0.52` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.2.0.46` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.17.1.22` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.0.1` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.7.10.1` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.30.4` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.19.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.9.6` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.40.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.0` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.46.4` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.20.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.1` | `0.30.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.17.0` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.4.5` | `0.7.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.5.0` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.1.0` | `7.6.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.13.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.4.0` | `25.5.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.7.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.68.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.25.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.47.0` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.29.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.7.0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.5.0` | `3.7.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.23.0` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.5.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.5.9\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReverse matching with full unicode casefolding could lead to out-of-range string indexes.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eA fix for older Python versions before free-threading was  supported.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReplaced atomic operations with mutex on pattern object for free-threaded Python.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.26\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#598](https://github.com/mrabarnett/mrab-regex/issues/598): Fix race condition in storage caching with atomic operations.\n\u003cp\u003eReplaced use of PyUnicode_GET_LENGTH with PyUnicode_GetLength.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.2.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdded \\z as alias of \\Z, like in re module.\n\u003cp\u003eAdded prefixmatch as alias of match, like in re module.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.1.15\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/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.5.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePatch release v5.8.1\u003c/h1\u003e\n\u003cp\u003eThis release is mainly to fix the Deepseek V4 integration!!!\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[fix] Add fatal_error to ContinuousBatchingManager so the serving... by \u003ca href=\"https://github.com/qgallouedec\"\u003e\u003ccode\u003e@​qgallouedec\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/remi-or\"\u003e\u003ccode\u003e@​remi-or\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix WeightConverter regex incorrectly matching shared_experts as experts by \u003ca href=\"https://github.com/silencelamb\"\u003e\u003ccode\u003e@​silencelamb\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deepseek v4 by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45892\"\u003e#45892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeepseek v4 csa mask collapse by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Sawyer117\"\u003e\u003ccode\u003e@​Sawyer117\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45928\"\u003e#45928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.8.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.8.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eDeepSeek-V4\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eDeepSeek-V4 is the next-generation MoE (Mixture of Experts) language model from DeepSeek that introduces several architectural innovations over DeepSeek-V3. The architecture replaces Multi-head Latent Attention (MLA) with a hybrid local + long-range attention design, swaps residual connections for Manifold-Constrained Hyper-Connections (mHC), and bootstraps the first few MoE layers with a static token-id → expert-id hash table. This implementation covers DeepSeek-V4-Flash, DeepSeek-V4-Pro, and their -Base pretrained variants, which share the same architecture but differ in width, depth, expert count and weights.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/deepseek_v4\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash/blob/main/DeepSeek_V4.pdf\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd DeepSeek V4 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45643\"\u003e#45643\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45643\"\u003e#45643\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGemma 4 Assistant\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eGemma 4 Assistant is a small, text-only model that enables speculative decoding for Gemma 4 models using the Multi-Token Prediction (MTP) method and associated candidate generator. The model shares the same Gemma4TextModel backbone as other Gemma 4 models but uses KV sharing throughout the entire model, allowing it to reuse the KV cache populated by the target model and skip the pre-fill phase entirely. This architecture includes cross-attention to make the most of the target model's context, allowing the assistant to accurately predict more drafted tokens per drafting round.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/gemma4_assistant\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFirst model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45788\"\u003e#45788\u003c/a\u003e) by \u003ca href=\"https://github.com/SindhuRaghuram97\"\u003e\u003ccode\u003e@​SindhuRaghuram97\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45788\"\u003e#45788\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeechPlus\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eGranite Speech Plus is a variant of Granite Speech that enhances the projector by consuming the concatenation of the encoder's final hidden states with an arbitrary subset of its intermediate hidden states along the feature dimension. It is a multimodal speech-to-text model that can transcribe audio, provide speaker annotation and word level timestamps by responding to text prompts. The model inherits the same architecture components as Granite Speech including the speech encoder, query transformer projector, language model, and optional LoRA adapter.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granite_speech_plus\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for a new Granite-Speech-Plus model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45695\"\u003e#45695\u003c/a\u003e) by \u003ca href=\"https://github.com/zvik\"\u003e\u003ccode\u003e@​zvik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45695\"\u003e#45695\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGranite4Vision\u003c/h3\u003e\n\u003cp\u003eGranite Vision 4.1 is a vision-language model from IBM Research designed for enterprise-grade document data extraction. It specializes in chart extraction (Chart2CSV, Chart2Summary, Chart2Code), table extraction (JSON, HTML, OTSL), and semantic key-value pair extraction. The model builds on LLaVA-NeXT with architectural innovations including SigLIP2 Vision Encoder, Window Q-Former Projectors, and DeepStack Feature Injection with 8 vision-to-LLM injection points.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granite4_vision\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Granite 4.1 Vision (granite4_vision) (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45597\"\u003e#45597\u003c/a\u003e) by \u003ca href=\"https://github.com/artem-spector\"\u003e\u003ccode\u003e@​artem-spector\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45597\"\u003e#45597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/cc832f9055ba11c8c55f918ab4bda9472b910d48\"\u003e\u003ccode\u003ecc832f9\u003c/code\u003e\u003c/a\u003e up\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f966d7b36278c7ca15967af062c4556f8bf4eea4\"\u003e\u003ccode\u003ef966d7b\u003c/code\u003e\u003c/a\u003e Deepseek v4 csa mask collapse (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45928\"\u003e#45928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/283f3f08614c0ee09e0bdc60d57dbc4d8d37af39\"\u003e\u003ccode\u003e283f3f0\u003c/code\u003e\u003c/a\u003e Fix deepseek v4 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45892\"\u003e#45892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4e0be9c4c5f2edb62f2e28c28c4149d3b84a3ae0\"\u003e\u003ccode\u003e4e0be9c\u003c/code\u003e\u003c/a\u003e Fix WeightConverter regex incorrectly matching shared_experts as experts in D...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/ec852625706cbe9a1264949659dad82b43fafa57\"\u003e\u003ccode\u003eec85262\u003c/code\u003e\u003c/a\u003e [fix] Add \u003ccode\u003efatal_error\u003c/code\u003e to \u003ccode\u003eContinuousBatchingManager\u003c/code\u003e so the serving layer c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/049d2bf1220747b6d39e2a978b9f5fe0defa1dca\"\u003e\u003ccode\u003e049d2bf\u003c/code\u003e\u003c/a\u003e v5.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/2871cafffb3b221b5f1df7e59033a15a7830309f\"\u003e\u003ccode\u003e2871caf\u003c/code\u003e\u003c/a\u003e Add Granite 4.1 Vision (granite4_vision) (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45597\"\u003e#45597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/aaec1092d413d0ea7249101ea43f74b5d6d60936\"\u003e\u003ccode\u003eaaec109\u003c/code\u003e\u003c/a\u003e fix: correct spelling in continuous_api docstring (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45749\"\u003e#45749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/7050d0e0bf5a97c7c0149c319681601373621eae\"\u003e\u003ccode\u003e7050d0e\u003c/code\u003e\u003c/a\u003e Fix link to modular transformers documentation (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45746\"\u003e#45746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/df2f2b539902c78db6a0f71fb2c175880e390576\"\u003e\u003ccode\u003edf2f2b5\u003c/code\u003e\u003c/a\u003e Gemma4: fix failed test cases (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45568\"\u003e#45568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.128.0 to 0.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.128.0...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.12.0 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.0...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Django] Pass correct registry to MultiProcessCollector by \u003ca href=\"https://github.com/jelly\"\u003e\u003ccode\u003e@​jelly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1152\"\u003eprometheus/client_python#1152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an AIOHTTP exporter by \u003ca href=\"https://github.com/Lexicality\"\u003e\u003ccode\u003e@​Lexicality\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1139\"\u003eprometheus/client_python#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd remove_matching() method for metric label deletion by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1121\"\u003eprometheus/client_python#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(multiprocess): avoid double-building child metric names (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1035\"\u003e#1035\u003c/a\u003e) by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1146\"\u003eprometheus/client_python#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't interleave histogram metrics in multi-process collector by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1148\"\u003eprometheus/client_python#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax registry type annotations for exposition by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1149\"\u003eprometheus/client_python#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded compression support in pushgateway by \u003ca href=\"https://github.com/ritesh-avesha\"\u003e\u003ccode\u003e@​ritesh-avesha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1144\"\u003eprometheus/client_python#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) by \u003ca href=\"https://github.com/Chadys\"\u003e\u003ccode\u003e@​Chadys\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1143\"\u003eprometheus/client_python#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1134\"\u003eprometheus/client_python#1134\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003c...\n\n_Description has been truncated_","html_url":"https://github.com/vllm-project/vllm/pull/42717","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vllm-project%2Fvllm/issues/42717","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/42717/packages"}},{"old_version":"0.33.0","new_version":"0.57.0","update_type":"minor","path":null,"pr_created_at":"2026-05-14T08:51:16.000Z","version_change":"0.33.0 → 0.57.0","issue":{"uuid":"4444547034","node_id":"PR_kwDOAgUK287bcm4T","number":66922,"state":"closed","title":"Bump the pip-dependency-updates group across 3 directories with 2 updates","user":"dependabot[bot]","labels":["python","area:task-sdk","dependencies","area:airflow-ctl","backport-to-airflow-ctl/v0-1-test"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-26T23:02:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-14T08:51:16.000Z","updated_at":"2026-05-26T23:02:52.000Z","time_to_close":1087894,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-dependency-updates","update_count":2,"packages":[{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [aiosqlite](https://github.com/omnilib/aiosqlite) and [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) to permit the latest version.\nUpdates `aiosqlite` to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.1\u003c/h2\u003e\n\u003cp\u003eBug fix release\u003c/p\u003e\n\u003cp\u003eNOTE: Starting with \u003ccode\u003ev0.22.0\u003c/code\u003e, the \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e object no longer\ninherits from \u003ccode\u003ethreading.Thread\u003c/code\u003e. If not using aiosqlite as a context manager,\nclients must \u003ccode\u003eawait connection.close()\u003c/code\u003e or call \u003ccode\u003econnection.stop()\u003c/code\u003e to ensure\nthe helper thread is completed and terminated correctly. A \u003ccode\u003eResourceWarning\u003c/code\u003e\nwill be emitted for any connection that is garbage collected without being\nclosed or stopped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded synchronous \u003ccode\u003estop()\u003c/code\u003e method to \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e to enable safe\ncleanup and termination of the background thread without dependence\non having an active event loop (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.22.0...v0.22.1\n     2\tAmethyst Reese\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cp\u003eFeature release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eset_authorizer\u003c/code\u003e query access controls (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWait for transaction queue to complete when closing connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit warning when connection goes out of scope without being closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on \u003ccode\u003etyping_extensions\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.21.0...v0.22.0\n     1\tAlec Berryman\n     1\tAmethyst Reese\n     1\tDavid Andreoletti\n     1\tMarkus Heidelberg\n     1\tbeerpsi\n    19\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.21.0\u003c/h2\u003e\n\u003cp\u003eMaintenance release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix: close connection correctly when BaseException raised in connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMetadata improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/9b127cecc7de843bf4f343b6da63b641866533fb\"\u003e\u003ccode\u003e9b127ce\u003c/code\u003e\u003c/a\u003e Version bump v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/5c3f61c1ea49401f2716d8f58d494e76ca766921\"\u003e\u003ccode\u003e5c3f61c\u003c/code\u003e\u003c/a\u003e Improve stop semantics for connections (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/a869d73678adbc14472e4ac2c31f4e706efe8ef3\"\u003e\u003ccode\u003ea869d73\u003c/code\u003e\u003c/a\u003e Version bump v0.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/1cd60adcab12347577150a6fa6c7d92b7b86d989\"\u003e\u003ccode\u003e1cd60ad\u003c/code\u003e\u003c/a\u003e Emit warning if connection is deleted before it is closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/611d7b4f29fc3d7df6c173b2e79b0892e9d249aa\"\u003e\u003ccode\u003e611d7b4\u003c/code\u003e\u003c/a\u003e Add set_authorizer support for fine-grained access control (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/81d00c8f1676851c8634ca98f99e0973083ea75f\"\u003e\u003ccode\u003e81d00c8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/7a26722f7e6da6a1ae0febf515b4624794173fcc\"\u003e\u003ccode\u003e7a26722\u003c/code\u003e\u003c/a\u003e Bump coverage[toml] from 7.8.0 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/445754087ec452f888cc152debf79590d8a25d86\"\u003e\u003ccode\u003e4457540\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.2.0 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/b650dad318ad72e582b7ba1143cc05f270f8ab6b\"\u003e\u003ccode\u003eb650dad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/065ffdd1291693c5e69d2f3efff17e351d9a0163\"\u003e\u003ccode\u003e065ffdd\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.15.0 to 1.19.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.20.0...v0.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.57.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.57.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.57.0\"\u003e0.57.0\u003c/a\u003e - 2026-05-07\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow generated prompt snapshot updates by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3134\"\u003ekoxudaxi/datamodel-code-generator#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite generated prompt snapshots directly by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3135\"\u003ekoxudaxi/datamodel-code-generator#3135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve tox python preference for generated docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3136\"\u003ekoxudaxi/datamodel-code-generator#3136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d0aa6ab9912603a5e8b7c78ff62a1893078542d4\"\u003e\u003ccode\u003ed0aa6ab\u003c/code\u003e\u003c/a\u003e docs: sync generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7bd643f3dacdd9f09093bc06a61b0eef49319451\"\u003e\u003ccode\u003e7bd643f\u003c/code\u003e\u003c/a\u003e Preserve tox python preference for generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/64f218a5711dfde954e50eb6b50c47b254fd35b4\"\u003e\u003ccode\u003e64f218a\u003c/code\u003e\u003c/a\u003e Write generated prompt snapshots directly (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3135\"\u003e#3135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/a7d1e9c47a8603ffd7668264a4e8fe02553d0f90\"\u003e\u003ccode\u003ea7d1e9c\u003c/code\u003e\u003c/a\u003e Allow generated prompt snapshot updates (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/9210c193922c52949e288e8f68e195d56acd34b4\"\u003e\u003ccode\u003e9210c19\u003c/code\u003e\u003c/a\u003e Propagate enum member descriptions for anyOf const pattern (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3133\"\u003e#3133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/928ba552f4190f0b4c2390d135dcbbb6048ddfc3\"\u003e\u003ccode\u003e928ba55\u003c/code\u003e\u003c/a\u003e Use source tree for generated prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3132\"\u003e#3132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b59971413184e9151882cb0b5906acbf3b3f4df8\"\u003e\u003ccode\u003eb599714\u003c/code\u003e\u003c/a\u003e Add manual generated docs sync trigger (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/93f2bce292f82fde15fe7ad8d4e0eeb2c7fdbb12\"\u003e\u003ccode\u003e93f2bce\u003c/code\u003e\u003c/a\u003e Fix generated docs sync prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/919f191f896af8bf62d7aafe9e19a98cf9a05efc\"\u003e\u003ccode\u003e919f191\u003c/code\u003e\u003c/a\u003e Fix serialization alias choices (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3126\"\u003e#3126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/90b0729b303be4246e4ce9babf825d0e4170b9f7\"\u003e\u003ccode\u003e90b0729\u003c/code\u003e\u003c/a\u003e Fix snake case array discriminator (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3125\"\u003e#3125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.33.0...0.57.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.57.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.57.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.57.0\"\u003e0.57.0\u003c/a\u003e - 2026-05-07\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow generated prompt snapshot updates by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3134\"\u003ekoxudaxi/datamodel-code-generator#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite generated prompt snapshots directly by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3135\"\u003ekoxudaxi/datamodel-code-generator#3135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve tox python preference for generated docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3136\"\u003ekoxudaxi/datamodel-code-generator#3136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d0aa6ab9912603a5e8b7c78ff62a1893078542d4\"\u003e\u003ccode\u003ed0aa6ab\u003c/code\u003e\u003c/a\u003e docs: sync generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7bd643f3dacdd9f09093bc06a61b0eef49319451\"\u003e\u003ccode\u003e7bd643f\u003c/code\u003e\u003c/a\u003e Preserve tox python preference for generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/64f218a5711dfde954e50eb6b50c47b254fd35b4\"\u003e\u003ccode\u003e64f218a\u003c/code\u003e\u003c/a\u003e Write generated prompt snapshots directly (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3135\"\u003e#3135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/a7d1e9c47a8603ffd7668264a4e8fe02553d0f90\"\u003e\u003ccode\u003ea7d1e9c\u003c/code\u003e\u003c/a\u003e Allow generated prompt snapshot updates (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/9210c193922c52949e288e8f68e195d56acd34b4\"\u003e\u003ccode\u003e9210c19\u003c/code\u003e\u003c/a\u003e Propagate enum member descriptions for anyOf const pattern (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3133\"\u003e#3133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/928ba552f4190f0b4c2390d135dcbbb6048ddfc3\"\u003e\u003ccode\u003e928ba55\u003c/code\u003e\u003c/a\u003e Use source tree for generated prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3132\"\u003e#3132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b59971413184e9151882cb0b5906acbf3b3f4df8\"\u003e\u003ccode\u003eb599714\u003c/code\u003e\u003c/a\u003e Add manual generated docs sync trigger (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/93f2bce292f82fde15fe7ad8d4e0eeb2c7fdbb12\"\u003e\u003ccode\u003e93f2bce\u003c/code\u003e\u003c/a\u003e Fix generated docs sync prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/919f191f896af8bf62d7aafe9e19a98cf9a05efc\"\u003e\u003ccode\u003e919f191\u003c/code\u003e\u003c/a\u003e Fix serialization alias choices (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3126\"\u003e#3126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/90b0729b303be4246e4ce9babf825d0e4170b9f7\"\u003e\u003ccode\u003e90b0729\u003c/code\u003e\u003c/a\u003e Fix snake case array discriminator (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3125\"\u003e#3125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.33.0...0.57.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.57.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.57.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.57.0\"\u003e0.57.0\u003c/a\u003e - 2026-05-07\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow generated prompt snapshot updates by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3134\"\u003ekoxudaxi/datamodel-code-generator#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite generated prompt snapshots directly by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3135\"\u003ekoxudaxi/datamodel-code-generator#3135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve tox python preference for generated docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3136\"\u003ekoxudaxi/datamodel-code-generator#3136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d0aa6ab9912603a5e8b7c78ff62a1893078542d4\"\u003e\u003ccode\u003ed0aa6ab\u003c/code\u003e\u003c/a\u003e docs: sync generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7bd643f3dacdd9f09093bc06a61b0eef49319451\"\u003e\u003ccode\u003e7bd643f\u003c/code\u003e\u003c/a\u003e Preserve tox python preference for generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/64f218a5711dfde954e50eb6b50c47b254fd35b4\"\u003e\u003ccode\u003e64f218a\u003c/code\u003e\u003c/a\u003e Write generated prompt snapshots directly (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3135\"\u003e#3135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/a7d1e9c47a8603ffd7668264a4e8fe02553d0f90\"\u003e\u003ccode\u003ea7d1e9c\u003c/code\u003e\u003c/a\u003e Allow generated prompt snapshot updates (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/9210c193922c52949e288e8f68e195d56acd34b4\"\u003e\u003ccode\u003e9210c19\u003c/code\u003e\u003c/a\u003e Propagate enum member descriptions for anyOf const pattern (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3133\"\u003e#3133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/928ba552f4190f0b4c2390d135dcbbb6048ddfc3\"\u003e\u003ccode\u003e928ba55\u003c/code\u003e\u003c/a\u003e Use source tree for generated prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3132\"\u003e#3132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b59971413184e9151882cb0b5906acbf3b3f4df8\"\u003e\u003ccode\u003eb599714\u003c/code\u003e\u003c/a\u003e Add manual generated docs sync trigger (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commi...\n\n_Description has been truncated_","html_url":"https://github.com/apache/airflow/pull/66922","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/issues/66922","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/66922/packages"}},{"old_version":"0.33.0","new_version":"0.57.0","update_type":"minor","path":null,"pr_created_at":"2026-05-12T00:36:28.000Z","version_change":"0.33.0 → 0.57.0","issue":{"uuid":"4425290391","node_id":"PR_kwDOAgUK287aedlv","number":66745,"state":"open","title":"Bump the pip-dependency-updates group across 3 directories with 3 updates","user":"dependabot[bot]","labels":["python","dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-12T00:36:28.000Z","updated_at":"2026-05-12T01:43:32.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-dependency-updates","update_count":3,"packages":[{"name":"trove-classifiers","old_version":"2026.4.28.13","new_version":"2026.5.7.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"trove-classifiers","old_version":"2026.4.28.13","new_version":"2026.5.7.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"trove-classifiers","old_version":"2026.4.28.13","new_version":"2026.5.7.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"trove-classifiers","old_version":"2026.4.28.13","new_version":"2026.5.7.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"trove-classifiers","old_version":"2026.4.28.13","new_version":"2026.5.7.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"trove-classifiers","old_version":"2026.4.28.13","new_version":"2026.5.7.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"trove-classifiers","old_version":"2026.4.28.13","new_version":"2026.5.7.17","repository_url":"https://github.com/pypa/trove-classifiers"},{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"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\nUpdates the requirements on [aiosqlite](https://github.com/omnilib/aiosqlite), [trove-classifiers](https://github.com/pypa/trove-classifiers) and [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) to permit the latest version.\nUpdates `aiosqlite` to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.1\u003c/h2\u003e\n\u003cp\u003eBug fix release\u003c/p\u003e\n\u003cp\u003eNOTE: Starting with \u003ccode\u003ev0.22.0\u003c/code\u003e, the \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e object no longer\ninherits from \u003ccode\u003ethreading.Thread\u003c/code\u003e. If not using aiosqlite as a context manager,\nclients must \u003ccode\u003eawait connection.close()\u003c/code\u003e or call \u003ccode\u003econnection.stop()\u003c/code\u003e to ensure\nthe helper thread is completed and terminated correctly. A \u003ccode\u003eResourceWarning\u003c/code\u003e\nwill be emitted for any connection that is garbage collected without being\nclosed or stopped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded synchronous \u003ccode\u003estop()\u003c/code\u003e method to \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e to enable safe\ncleanup and termination of the background thread without dependence\non having an active event loop (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.22.0...v0.22.1\n     2\tAmethyst Reese\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cp\u003eFeature release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eset_authorizer\u003c/code\u003e query access controls (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWait for transaction queue to complete when closing connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit warning when connection goes out of scope without being closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on \u003ccode\u003etyping_extensions\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.21.0...v0.22.0\n     1\tAlec Berryman\n     1\tAmethyst Reese\n     1\tDavid Andreoletti\n     1\tMarkus Heidelberg\n     1\tbeerpsi\n    19\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.21.0\u003c/h2\u003e\n\u003cp\u003eMaintenance release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix: close connection correctly when BaseException raised in connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMetadata improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/9b127cecc7de843bf4f343b6da63b641866533fb\"\u003e\u003ccode\u003e9b127ce\u003c/code\u003e\u003c/a\u003e Version bump v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/5c3f61c1ea49401f2716d8f58d494e76ca766921\"\u003e\u003ccode\u003e5c3f61c\u003c/code\u003e\u003c/a\u003e Improve stop semantics for connections (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/a869d73678adbc14472e4ac2c31f4e706efe8ef3\"\u003e\u003ccode\u003ea869d73\u003c/code\u003e\u003c/a\u003e Version bump v0.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/1cd60adcab12347577150a6fa6c7d92b7b86d989\"\u003e\u003ccode\u003e1cd60ad\u003c/code\u003e\u003c/a\u003e Emit warning if connection is deleted before it is closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/611d7b4f29fc3d7df6c173b2e79b0892e9d249aa\"\u003e\u003ccode\u003e611d7b4\u003c/code\u003e\u003c/a\u003e Add set_authorizer support for fine-grained access control (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/81d00c8f1676851c8634ca98f99e0973083ea75f\"\u003e\u003ccode\u003e81d00c8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/7a26722f7e6da6a1ae0febf515b4624794173fcc\"\u003e\u003ccode\u003e7a26722\u003c/code\u003e\u003c/a\u003e Bump coverage[toml] from 7.8.0 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/445754087ec452f888cc152debf79590d8a25d86\"\u003e\u003ccode\u003e4457540\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.2.0 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/b650dad318ad72e582b7ba1143cc05f270f8ab6b\"\u003e\u003ccode\u003eb650dad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/065ffdd1291693c5e69d2f3efff17e351d9a0163\"\u003e\u003ccode\u003e065ffdd\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.15.0 to 1.19.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.20.0...v0.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `trove-classifiers` from 2026.4.28.13 to 2026.5.7.17\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/a1105aa00670c8fc241e0bc2149a236b8be43b7a\"\u003e\u003ccode\u003ea1105aa\u003c/code\u003e\u003c/a\u003e Add Trove classifier for Python 3.16 (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/243\"\u003e#243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pypa/trove-classifiers/compare/2026.4.28.13...2026.5.7.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `trove-classifiers` from 2026.4.28.13 to 2026.5.7.17\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/a1105aa00670c8fc241e0bc2149a236b8be43b7a\"\u003e\u003ccode\u003ea1105aa\u003c/code\u003e\u003c/a\u003e Add Trove classifier for Python 3.16 (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/243\"\u003e#243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pypa/trove-classifiers/compare/2026.4.28.13...2026.5.7.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `trove-classifiers` from 2026.4.28.13 to 2026.5.7.17\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/a1105aa00670c8fc241e0bc2149a236b8be43b7a\"\u003e\u003ccode\u003ea1105aa\u003c/code\u003e\u003c/a\u003e Add Trove classifier for Python 3.16 (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/243\"\u003e#243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pypa/trove-classifiers/compare/2026.4.28.13...2026.5.7.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `trove-classifiers` from 2026.4.28.13 to 2026.5.7.17\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/a1105aa00670c8fc241e0bc2149a236b8be43b7a\"\u003e\u003ccode\u003ea1105aa\u003c/code\u003e\u003c/a\u003e Add Trove classifier for Python 3.16 (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/243\"\u003e#243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pypa/trove-classifiers/compare/2026.4.28.13...2026.5.7.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.57.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.57.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.57.0\"\u003e0.57.0\u003c/a\u003e - 2026-05-07\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow generated prompt snapshot updates by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3134\"\u003ekoxudaxi/datamodel-code-generator#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite generated prompt snapshots directly by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3135\"\u003ekoxudaxi/datamodel-code-generator#3135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve tox python preference for generated docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3136\"\u003ekoxudaxi/datamodel-code-generator#3136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d0aa6ab9912603a5e8b7c78ff62a1893078542d4\"\u003e\u003ccode\u003ed0aa6ab\u003c/code\u003e\u003c/a\u003e docs: sync generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7bd643f3dacdd9f09093bc06a61b0eef49319451\"\u003e\u003ccode\u003e7bd643f\u003c/code\u003e\u003c/a\u003e Preserve tox python preference for generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/64f218a5711dfde954e50eb6b50c47b254fd35b4\"\u003e\u003ccode\u003e64f218a\u003c/code\u003e\u003c/a\u003e Write generated prompt snapshots directly (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3135\"\u003e#3135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/a7d1e9c47a8603ffd7668264a4e8fe02553d0f90\"\u003e\u003ccode\u003ea7d1e9c\u003c/code\u003e\u003c/a\u003e Allow generated prompt snapshot updates (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/9210c193922c52949e288e8f68e195d56acd34b4\"\u003e\u003ccode\u003e9210c19\u003c/code\u003e\u003c/a\u003e Propagate enum member descriptions for anyOf const pattern (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3133\"\u003e#3133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/928ba552f4190f0b4c2390d135dcbbb6048ddfc3\"\u003e\u003ccode\u003e928ba55\u003c/code\u003e\u003c/a\u003e Use source tree for generated prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3132\"\u003e#3132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b59971413184e9151882cb0b5906acbf3b3f4df8\"\u003e\u003ccode\u003eb599714\u003c/code\u003e\u003c/a\u003e Add manual generated docs sync trigger (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/93f2bce292f82fde15fe7ad8d4e0eeb2c7fdbb12\"\u003e\u003ccode\u003e93f2bce\u003c/code\u003e\u003c/a\u003e Fix generated docs sync prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/919f191f896af8bf62d7aafe9e19a98cf9a05efc\"\u003e\u003ccode\u003e919f191\u003c/code\u003e\u003c/a\u003e Fix serialization alias choices (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3126\"\u003e#3126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/90b0729b303be4246e4ce9babf825d0e4170b9f7\"\u003e\u003ccode\u003e90b0729\u003c/code\u003e\u003c/a\u003e Fix snake case array discriminator (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3125\"\u003e#3125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.33.0...0.57.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `trove-classifiers` from 2026.4.28.13 to 2026.5.7.17\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/a1105aa00670c8fc241e0bc2149a236b8be43b7a\"\u003e\u003ccode\u003ea1105aa\u003c/code\u003e\u003c/a\u003e Add Trove classifier for Python 3.16 (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/243\"\u003e#243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pypa/trove-classifiers/compare/2026.4.28.13...2026.5.7.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.57.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.57.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.57.0\"\u003e0.57.0\u003c/a\u003e - 2026-05-07\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow generated prompt snapshot updates by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3134\"\u003ekoxudaxi/datamodel-code-generator#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite generated prompt snapshots directly by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3135\"\u003ekoxudaxi/datamodel-code-generator#3135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve tox python preference for generated docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3136\"\u003ekoxudaxi/datamodel-code-generator#3136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSync generated docs by \u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dcg-generated-docs\"\u003e\u003ccode\u003e@​dcg-generated-docs\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3137\"\u003ekoxudaxi/datamodel-code-generator#3137\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.1...0.57.0\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d0aa6ab9912603a5e8b7c78ff62a1893078542d4\"\u003e\u003ccode\u003ed0aa6ab\u003c/code\u003e\u003c/a\u003e docs: sync generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3137\"\u003e#3137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7bd643f3dacdd9f09093bc06a61b0eef49319451\"\u003e\u003ccode\u003e7bd643f\u003c/code\u003e\u003c/a\u003e Preserve tox python preference for generated docs (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/64f218a5711dfde954e50eb6b50c47b254fd35b4\"\u003e\u003ccode\u003e64f218a\u003c/code\u003e\u003c/a\u003e Write generated prompt snapshots directly (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3135\"\u003e#3135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/a7d1e9c47a8603ffd7668264a4e8fe02553d0f90\"\u003e\u003ccode\u003ea7d1e9c\u003c/code\u003e\u003c/a\u003e Allow generated prompt snapshot updates (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/9210c193922c52949e288e8f68e195d56acd34b4\"\u003e\u003ccode\u003e9210c19\u003c/code\u003e\u003c/a\u003e Propagate enum member descriptions for anyOf const pattern (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3133\"\u003e#3133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/928ba552f4190f0b4c2390d135dcbbb6048ddfc3\"\u003e\u003ccode\u003e928ba55\u003c/code\u003e\u003c/a\u003e Use source tree for generated prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3132\"\u003e#3132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b59971413184e9151882cb0b5906acbf3b3f4df8\"\u003e\u003ccode\u003eb599714\u003c/code\u003e\u003c/a\u003e Add manual generated docs sync trigger (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3130\"\u003e#3130\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/93f2bce292f82fde15fe7ad8d4e0eeb2c7fdbb12\"\u003e\u003ccode\u003e93f2bce\u003c/code\u003e\u003c/a\u003e Fix generated docs sync prompt snapshots (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/919f191f896af8bf62d7aafe9e19a98cf9a05efc\"\u003e\u003ccode\u003e919f191\u003c/code\u003e\u003c/a\u003e Fix serialization alias choices (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3126\"\u003e#3126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/90b0729b303be4246e4ce9babf825d0e4170b9f7\"\u003e\u003ccode\u003e90b0729\u003c/code\u003e\u003c/a\u003e Fix snake case array discriminator (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3125\"\u003e#3125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.33.0...0.57.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `trove-classifiers` from 2026.4.28.13 to 2026.5.7.17\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/a1105aa00670c8fc241e0bc2149a236b8be43b7a\"\u003e\u003ccode\u003ea1105aa\u003c/code\u003e\u003c/a\u003e Add Trove classifier for Python 3.16 (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/243\"\u003e#243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pypa/trove-classifiers/compare/2026.4.28.13...2026.5.7.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `trove-classifiers` from 2026.4.28.13 to 2026.5.7.17\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/trove-classifiers/commit/a1105aa00670c8fc241e0bc2149a236b8be43b7a\"\u003e\u003ccode\u003ea1105aa\u003c/code\u003e\u003c/a\u003e Add Trove classifier for Python 3.16 (\u003ca href=\"https://redirect.github.com/pypa/trove-classifiers/issues/243\"\u003e#243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pypa/trove-classifiers/compare/2026.4.28.13...2026.5.7.17\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.57.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.57.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.57.0\"\u003e0.57.0\u003c/a\u003e - 2026-05-07\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--use-default\u003c/code\u003e no longer makes required fields nullable - Previously, \u003ccode\u003e--use-default\u003c/code\u003e turned required fields into optional nullable fields (e.g., \u003ccode\u003estatus: str | None = 'active'\u003c/code\u003e). Now required fields keep their original non-nullable type and just get the default value rendered (e.g., \u003ccode\u003estatus: str = 'active'\u003c/code\u003e). Users whose downstream code depends on these fields being \u003ccode\u003eOptional\u003c/code\u003e/nullable will need to update. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequired model-ref fields no longer render defaults without \u003ccode\u003e--use-default\u003c/code\u003e - Previously, required fields referencing models (e.g., \u003ccode\u003eshipping_address: Address\u003c/code\u003e) inconsistently rendered defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e while scalar required fields did not. Now all required fields consistently omit defaults unless \u003ccode\u003e--use-default\u003c/code\u003e is passed. Users who relied on the previous behavior where model-ref required fields had defaults rendered will see those defaults removed. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBuilt-in Jinja2 templates now use \u003ccode\u003efield.use_default_with_required\u003c/code\u003e - The built-in templates for \u003ccode\u003eBaseModel\u003c/code\u003e, \u003ccode\u003edataclass\u003c/code\u003e, \u003ccode\u003epydantic_v2/dataclass\u003c/code\u003e, and \u003ccode\u003emsgspec\u003c/code\u003e were updated to check \u003ccode\u003efield.use_default_with_required\u003c/code\u003e alongside \u003ccode\u003efield.required\u003c/code\u003e when deciding whether to render defaults. Custom templates that replicate the old default-rendering logic (e.g., \u003ccode\u003e{%- if not field.required %}\u003c/code\u003e) will still work but won't support the new \u003ccode\u003e--use-default\u003c/code\u003e behavior for required fields. To get the updated behavior, custom templates should change conditions like \u003ccode\u003enot field.required\u003c/code\u003e to \u003ccode\u003e(not field.required or field.use_default_with_required)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3054\"\u003e#3054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHarden workflow credentials by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3095\"\u003ekoxudaxi/datamodel-code-generator#3095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix release automation workflows by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3110\"\u003ekoxudaxi/datamodel-code-generator#3110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnforce shared assertions in e2e tests by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3108\"\u003ekoxudaxi/datamodel-code-generator#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix docs preview required check by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3112\"\u003ekoxudaxi/datamodel-code-generator#3112\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix required field default rendering and --use-default nullable types by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3054\"\u003ekoxudaxi/datamodel-code-generator#3054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused CLI doc schema version lookup by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3113\"\u003ekoxudaxi/datamodel-code-generator#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix byte to binary type mapping by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3114\"\u003ekoxudaxi/datamodel-code-generator#3114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate generated docs sync PRs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3117\"\u003ekoxudaxi/datamodel-code-generator#3117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport local HTTP ref paths by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3116\"\u003ekoxudaxi/datamodel-code-generator#3116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reuse discriminator literals by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3115\"\u003ekoxudaxi/datamodel-code-generator#3115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocstrings that can be single line to be formatted on a single line by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3107\"\u003ekoxudaxi/datamodel-code-generator#3107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix indefinite hang on OpenAPI schemas with cyclic model dependencies by \u003ca href=\"https://github.com/kevin-paulson-mindbridge-ai\"\u003e\u003ccode\u003e@​kevin-paulson-mindbridge-ai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3078\"\u003ekoxudaxi/datamodel-code-generator#3078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OpenAPI enum literal alias regression test by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3124\"\u003ekoxudaxi/datamodel-code-generator#3124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix pydantic model extra warnings by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3127\"\u003ekoxudaxi/datamodel-code-generator#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix snake case array discriminator by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3125\"\u003ekoxudaxi/datamodel-code-generator#3125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix serialization alias choices by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3126\"\u003ekoxudaxi/datamodel-code-generator#3126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix generated docs sync prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3129\"\u003ekoxudaxi/datamodel-code-generator#3129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd manual generated docs sync trigger by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3130\"\u003ekoxudaxi/datamodel-code-generator#3130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse source tree for generated prompt snapshots by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3132\"\u003ekoxudaxi/datamodel-code-generator#3132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate enum member descriptions for anyOf const pattern by \u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3133\"\u003ekoxudaxi/datamodel-code-generator#3133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow generated prompt snapshot updates by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3134\"\u003ekoxudaxi/datamodel-code-generator#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrite generated prompt snapshots directly by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3135\"\u003ekoxudaxi/datamodel-code-generator#3135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve tox python preference for generated docs by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3136\"\u003ekoxudaxi/datamodel-code-generator#3136\u003c/a...\n\n_Description has been truncated_","html_url":"https://github.com/apache/airflow/pull/66745","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/issues/66745","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/66745/packages"}},{"old_version":"0.33.0","new_version":"0.56.1","update_type":"minor","path":null,"pr_created_at":"2026-05-07T12:02:57.000Z","version_change":"0.33.0 → 0.56.1","issue":{"uuid":"4398598368","node_id":"PR_kwDOAgUK287ZIlGD","number":66541,"state":"open","title":"Bump the pip-dependency-updates group across 3 directories with 3 updates","user":"dependabot[bot]","labels":["python","area:task-sdk","dependencies","area:airflow-ctl"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-07T12:02:57.000Z","updated_at":"2026-05-10T22:56:16.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-dependency-updates","update_count":3,"packages":[{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [aiosqlite](https://github.com/omnilib/aiosqlite), [starlette](https://github.com/Kludex/starlette) and [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) to permit the latest version.\nUpdates `aiosqlite` to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.1\u003c/h2\u003e\n\u003cp\u003eBug fix release\u003c/p\u003e\n\u003cp\u003eNOTE: Starting with \u003ccode\u003ev0.22.0\u003c/code\u003e, the \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e object no longer\ninherits from \u003ccode\u003ethreading.Thread\u003c/code\u003e. If not using aiosqlite as a context manager,\nclients must \u003ccode\u003eawait connection.close()\u003c/code\u003e or call \u003ccode\u003econnection.stop()\u003c/code\u003e to ensure\nthe helper thread is completed and terminated correctly. A \u003ccode\u003eResourceWarning\u003c/code\u003e\nwill be emitted for any connection that is garbage collected without being\nclosed or stopped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded synchronous \u003ccode\u003estop()\u003c/code\u003e method to \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e to enable safe\ncleanup and termination of the background thread without dependence\non having an active event loop (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.22.0...v0.22.1\n     2\tAmethyst Reese\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cp\u003eFeature release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eset_authorizer\u003c/code\u003e query access controls (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWait for transaction queue to complete when closing connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit warning when connection goes out of scope without being closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on \u003ccode\u003etyping_extensions\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.21.0...v0.22.0\n     1\tAlec Berryman\n     1\tAmethyst Reese\n     1\tDavid Andreoletti\n     1\tMarkus Heidelberg\n     1\tbeerpsi\n    19\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.21.0\u003c/h2\u003e\n\u003cp\u003eMaintenance release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix: close connection correctly when BaseException raised in connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMetadata improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/9b127cecc7de843bf4f343b6da63b641866533fb\"\u003e\u003ccode\u003e9b127ce\u003c/code\u003e\u003c/a\u003e Version bump v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/5c3f61c1ea49401f2716d8f58d494e76ca766921\"\u003e\u003ccode\u003e5c3f61c\u003c/code\u003e\u003c/a\u003e Improve stop semantics for connections (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/a869d73678adbc14472e4ac2c31f4e706efe8ef3\"\u003e\u003ccode\u003ea869d73\u003c/code\u003e\u003c/a\u003e Version bump v0.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/1cd60adcab12347577150a6fa6c7d92b7b86d989\"\u003e\u003ccode\u003e1cd60ad\u003c/code\u003e\u003c/a\u003e Emit warning if connection is deleted before it is closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/611d7b4f29fc3d7df6c173b2e79b0892e9d249aa\"\u003e\u003ccode\u003e611d7b4\u003c/code\u003e\u003c/a\u003e Add set_authorizer support for fine-grained access control (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/81d00c8f1676851c8634ca98f99e0973083ea75f\"\u003e\u003ccode\u003e81d00c8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/7a26722f7e6da6a1ae0febf515b4624794173fcc\"\u003e\u003ccode\u003e7a26722\u003c/code\u003e\u003c/a\u003e Bump coverage[toml] from 7.8.0 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/445754087ec452f888cc152debf79590d8a25d86\"\u003e\u003ccode\u003e4457540\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.2.0 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/b650dad318ad72e582b7ba1143cc05f270f8ab6b\"\u003e\u003ccode\u003eb650dad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/065ffdd1291693c5e69d2f3efff17e351d9a0163\"\u003e\u003ccode\u003e065ffdd\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.15.0 to 1.19.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.20.0...v0.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` to 1.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.0.0\u003c/h2\u003e\n\u003cp\u003eStarlette 1.0 is here! 🎉\u003c/p\u003e\n\u003cp\u003eAfter nearly eight years since its creation, Starlette has reached its first stable release.\u003c/p\u003e\n\u003cp\u003eA special thank you to \u003ca href=\"https://github.com/lovelydinosaur\"\u003e\u003ccode\u003e@​lovelydinosaur\u003c/code\u003e\u003c/a\u003e, the creator of Starlette, Uvicorn, HTTPX and MkDocs, whose work helped to lay the foundation for the modern async Python ecosystem. 🙏\u003c/p\u003e\n\u003cp\u003eThank you to \u003ca href=\"https://github.com/adriangb\"\u003e\u003ccode\u003e@​adriangb\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/florimondmanca\"\u003e\u003ccode\u003e@​florimondmanca\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/aminalaee\"\u003e\u003ccode\u003e@​aminalaee\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/alex-oleshkevich\"\u003e\u003ccode\u003e@​alex-oleshkevich\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/abersheeran\"\u003e\u003ccode\u003e@​abersheeran\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/uSpike\"\u003e\u003ccode\u003e@​uSpike\u003c/code\u003e\u003c/a\u003e for helping make Starlette what it is today. And to all my sponsors - especially \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/huggingface\"\u003e\u003ccode\u003e@​huggingface\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/elevenlabs\"\u003e\u003ccode\u003e@​elevenlabs\u003c/code\u003e\u003c/a\u003e - thank you for your support!\u003c/p\u003e\n\u003cp\u003eThank you to all \u003ca href=\"https://github.com/encode/starlette/graphs/contributors\"\u003e290+ contributors\u003c/a\u003e who have shaped Starlette over the years! ❤️\u003c/p\u003e\n\u003cp\u003eRead more on the \u003ca href=\"https://marcelotryle.com/blog/2026/03/22/starlette-10-is-here/\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eCheck out the full release notes at \u003ca href=\"https://www.starlette.io/release-notes/#100-march-22-2026\"\u003ehttps://www.starlette.io/release-notes/#100-march-22-2026\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/starlette/compare/1.0.0rc1...1.0.0\"\u003ehttps://github.com/encode/starlette/compare/1.0.0rc1...1.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.0 (March 22, 2026)\u003c/h2\u003e\n\u003cp\u003eStarlette 1.0 is here!\u003c/p\u003e\n\u003cp\u003eAfter nearly eight years since its creation, Starlette has reached its first stable release.\nThank you to everyone who tested the release candidate and reported issues.\u003c/p\u003e\n\u003cp\u003eYou can read more on the \u003ca href=\"https://marcelotryle.com/blog/2026/03/22/starlette-10-is-here/\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eTrack session access and modification in \u003ccode\u003eSessionMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3166\"\u003e#3166\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle websocket denial responses in \u003ccode\u003eStreamingResponse\u003c/code\u003e and \u003ccode\u003eFileResponse\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3189\"\u003e#3189\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for field accumulation in \u003ccode\u003eFormParser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3179\"\u003e#3179\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eMove \u003ccode\u003eparser.finalize()\u003c/code\u003e inside try/except in \u003ccode\u003eMultiPartParser.parse()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/encode/starlette/pull/3153\"\u003e#3153\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.0.0rc1 (February 23, 2026)\u003c/h2\u003e\n\u003cp\u003eWe're ready! I'm thrilled to announce the first release candidate for Starlette 1.0.\u003c/p\u003e\n\u003cp\u003eStarlette was created in June 2018 by Tom Christie, and has been on ZeroVer for years. Today, it's downloaded\nalmost \u003ca href=\"https://pypistats.org/packages/starlette\"\u003e10 million times a day\u003c/a\u003e, serves as the foundation for FastAPI,\nand has inspired many other frameworks. In the age of AI, Starlette continues to play an important role as a\ndependency of the Python MCP SDK.\u003c/p\u003e\n\u003cp\u003eThis release focuses on removing deprecated features that were marked for removal in 1.0.0, along with some\nlast minute bug fixes. It's a release candidate, so we can gather feedback from the community before the final\n1.0.0 release soon.\u003c/p\u003e\n\u003cp\u003eA huge thank you to all the contributors who have helped make Starlette what it is today.\nIn particular, I'd like to recognize:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lovelydinosaur\"\u003eKim Christie\u003c/a\u003e - The original creator of Starlette, Uvicorn, and MkDocs, and the\ncurrent maintainer of HTTPX. Kim's work helped lay the foundation for the modern async Python ecosystem.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adriangb\"\u003eAdrian Garcia Badaracco\u003c/a\u003e - One of the smartest people I know, whom I have the pleasure of working with at Pydantic.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graingert\"\u003eThomas Grainger\u003c/a\u003e - My async teacher, always ready to help with questions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm\"\u003eAlex Grönholm\u003c/a\u003e - Another async mentor, always prompt to help with questions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/florimondmanca\"\u003eFlorimond Manca\u003c/a\u003e - Always present in the early days of both Starlette and Uvicorn, and helped a lot in the ecosystem.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminalaee\"\u003eAmin Alaee\u003c/a\u003e - Contributed a lot with file-related PRs.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tiangolo\"\u003eSebastián Ramírez\u003c/a\u003e - Maintains FastAPI upstream, and always in contact to help with upstream issues.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alex-oleshkevich\"\u003eAlex Oleshkevich\u003c/a\u003e - Helped a lot on templates and many discussions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/abersheeran\"\u003eabersheeran\u003c/a\u003e - My go-to person when I need help on many subjects.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI'd also like to thank my sponsors for their support. A special thanks to\n\u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/huggingface\"\u003e\u003ccode\u003e@​huggingface\u003c/code\u003e\u003c/a\u003e,\nand \u003ca href=\"https://github.com/elevenlabs\"\u003e\u003ccode\u003e@​elevenlabs\u003c/code\u003e\u003c/a\u003e for their generous sponsorship, and to all my other sponsors:\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/Kludex/starlette/commit/0e88e92b592bfa11fd92e331869a8d49ba34b541\"\u003e\u003ccode\u003e0e88e92\u003c/code\u003e\u003c/a\u003e Version 1.0.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3178\"\u003e#3178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/9ee951980bae776103715b66305f807d9e8245da\"\u003e\u003ccode\u003e9ee9519\u003c/code\u003e\u003c/a\u003e Handle websocket denial responses in streaming and file responses (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3189\"\u003e#3189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a0bcc26612c9c344737cd59fb4ef847326adf37a\"\u003e\u003ccode\u003ea0bcc26\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump black from 26.1.0 to 26.3.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3183\"\u003e#3183\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/79b3f26a9a38791af14d15c058c0e8c54cd9b11e\"\u003e\u003ccode\u003e79b3f26\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump the python-packages group with 7 updates (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3168\"\u003e#3168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/789b9269fd3f3d6ab28781624f151e44432463cd\"\u003e\u003ccode\u003e789b926\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003ebytearray\u003c/code\u003e for field accumulation in \u003ccode\u003eFormParser\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3179\"\u003e#3179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a1fd9d822dc49857e9f39ea5b0970aeed6c8f669\"\u003e\u003ccode\u003ea1fd9d8\u003c/code\u003e\u003c/a\u003e docs: fix typo in routing.md (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3176\"\u003e#3176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/c14d0f778010940ac40f97dbc23d8dbf99e87e23\"\u003e\u003ccode\u003ec14d0f7\u003c/code\u003e\u003c/a\u003e Document session cookie security flags (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3169\"\u003e#3169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/c2e28786d1e73da045fa84e622f65c314a7171c1\"\u003e\u003ccode\u003ec2e2878\u003c/code\u003e\u003c/a\u003e Move parser.finalize() inside try/except in MultiPartParser.parse() (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3153\"\u003e#3153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/89630a8658ab8aac7cca8a0d6ec4b78dcc2fcb46\"\u003e\u003ccode\u003e89630a8\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3167\"\u003e#3167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4647e532bbed7a5f60c9972ddba3f5fb4a79e1f9\"\u003e\u003ccode\u003e4647e53\u003c/code\u003e\u003c/a\u003e Track session access and modification in \u003ccode\u003eSessionMiddleware\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3166\"\u003e#3166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.45.0...1.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.56.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\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/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.0\"\u003e0.56.0\u003c/a\u003e - 2026-04-04\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/6274b70b58e6dab57a1797beb8006f9fcdbf7dbe\"\u003e\u003ccode\u003e6274b70\u003c/code\u003e\u003c/a\u003e Docs: describe --keep-model-order as deterministic dependency-aware ordering ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/3e87a9a4a712b2cb8ad6d9faaa85c86ac8838ffe\"\u003e\u003ccode\u003e3e87a9a\u003c/code\u003e\u003c/a\u003e Fix root model reuse collapse (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3089\"\u003e#3089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/51377952477da7ef39efcb2f3e256ae51ad7a1f8\"\u003e\u003ccode\u003e5137795\u003c/code\u003e\u003c/a\u003e tomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3088\"\u003e#3088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d7a1f7166624eadcd84e97b8d2ca09e8c6dde957\"\u003e\u003ccode\u003ed7a1f71\u003c/code\u003e\u003c/a\u003e Fix relative URL refs with path-only root ids (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f0960e9e2362f1dab2facb55853d2e56a3a923b4\"\u003e\u003ccode\u003ef0960e9\u003c/code\u003e\u003c/a\u003e Prefer CLI input over pyproject url (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/05901ff4ad110b750dcfd996aeaca410767240cd\"\u003e\u003ccode\u003e05901ff\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json sup...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5ba49a72dbfc69dc781a87c6adadb785d794f475\"\u003e\u003ccode\u003e5ba49a7\u003c/code\u003e\u003c/a\u003e docs: update CHANGELOG.md for 0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/52d9ef9dec52f3ad14130710eefb010f0e492160\"\u003e\u003ccode\u003e52d9ef9\u003c/code\u003e\u003c/a\u003e [codex] Refresh project usage list (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7d41fef7884579d728fe42a1e266d8b950ccd72d\"\u003e\u003ccode\u003e7d41fef\u003c/code\u003e\u003c/a\u003e Support JSON files for mapping options (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a8cd0da7a6d17bfd70c5c2623699ffc6aa818fd\"\u003e\u003ccode\u003e5a8cd0d\u003c/code\u003e\u003c/a\u003e Fix non-string OpenAPI discriminator literals (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.33.0...0.56.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.56.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\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/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.0\"\u003e0.56.0\u003c/a\u003e - 2026-04-04\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/6274b70b58e6dab57a1797beb8006f9fcdbf7dbe\"\u003e\u003ccode\u003e6274b70\u003c/code\u003e\u003c/a\u003e Docs: describe --keep-model-order as deterministic dependency-aware ordering ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/3e87a9a4a712b2cb8ad6d9faaa85c86ac8838ffe\"\u003e\u003ccode\u003e3e87a9a\u003c/code\u003e\u003c/a\u003e Fix root model reuse collapse (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3089\"\u003e#3089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/51377952477da7ef39efcb2f3e256ae51ad7a1f8\"\u003e\u003ccode\u003e5137795\u003c/code\u003e\u003c/a\u003e tomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3088\"\u003e#3088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d7a1f7166624eadcd84e97b8d2ca09e8c6dde957\"\u003e\u003ccode\u003ed7a1f71\u003c/code\u003e\u003c/a\u003e Fix relative URL refs with path-only root ids (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f0960e9e2362f1dab2facb55853d2e56a3a923b4\"\u003e\u003ccode\u003ef0960e9\u003c/code\u003e\u003c/a\u003e Prefer CLI input over pyproject url (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/05901ff4ad110b750dcfd996aeaca410767240cd\"\u003e\u003ccode\u003e05901ff\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json sup...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5ba49a72dbfc69dc781a87c6adadb785d794f475\"\u003e\u003ccode\u003e5ba49a7\u003c/code\u003e\u003c/a\u003e docs: update CHANGELOG.md for 0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/52d9ef9dec52f3ad14130710eefb010f0e492160\"\u003e\u003ccode\u003e52d9ef9\u003c/code\u003e\u003c/a\u003e [codex] Refresh project usage list (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7d41fef7884579d728fe42a1e266d8b950ccd72d\"\u003e\u003ccode\u003e7d41fef\u003c/code\u003e\u003c/a\u003e Support JSON files for mapping options (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a8cd0da7a6d17bfd70c5c2623699ffc6aa818fd\"\u003e\u003ccode\u003e5a8cd0d\u003c/code\u003e\u003c/a\u003e Fix non-string OpenAPI discriminator literals (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.33.0...0.56.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.56.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact...\n\n_Description has been truncated_","html_url":"https://github.com/apache/airflow/pull/66541","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fairflow/issues/66541","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/66541/packages"}},{"old_version":"0.45.0","new_version":"0.56.1","update_type":"minor","path":null,"pr_created_at":"2026-05-04T09:29:43.000Z","version_change":"0.45.0 → 0.56.1","issue":{"uuid":"4375423107","node_id":"PR_kwDOR0tLLM7X8qvw","number":50,"state":"open","title":"chore(deps): bump the python-non-major group across 1 directory with 26 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-04T09:29:43.000Z","updated_at":"2026-05-04T09:33:30.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-non-major","update_count":26,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"ruff","old_version":"0.14.8","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.19.0","new_version":"1.20.2","repository_url":"https://github.com/python/mypy"},{"name":"datamodel-code-generator","old_version":"0.45.0","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"presidio-analyzer","old_version":"2.2.361","new_version":"2.2.362","repository_url":"https://github.com/Microsoft/presidio"},{"name":"spacy","old_version":"3.8.11","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.29","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"onnxruntime","old_version":"1.24.2","new_version":"1.25.1","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"torch","old_version":"2.10.0","new_version":"2.11.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"pillow","old_version":"12.1.1","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"datasketch","old_version":"1.9.0","new_version":"1.10.0","repository_url":"https://github.com/ekzhu/datasketch"},{"name":"sentence-transformers","old_version":"5.2.3","new_version":"5.4.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"datasets","old_version":"4.6.0","new_version":"4.8.5","repository_url":"https://github.com/huggingface/datasets"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pymysql","old_version":"1.1.2","new_version":"1.1.3","repository_url":"https://github.com/PyMySQL/PyMySQL"},{"name":"thrift","old_version":"0.20.0","new_version":"0.22.0","repository_url":"https://github.com/apache/thrift"},{"name":"snowflake-connector-python","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/snowflakedb/snowflake-connector-python"},{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"boto3","old_version":"1.42.56","new_version":"1.43.2","repository_url":"https://github.com/boto/boto3"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"google-cloud-storage","old_version":"3.9.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"opentelemetry-sdk","old_version":"1.41.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.41.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-non-major group with 25 updates in the /apps/cli directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.15.12` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.20.2` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.45.0` | `0.56.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [presidio-analyzer](https://github.com/Microsoft/presidio) | `2.2.361` | `2.2.362` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.11` | `3.8.14` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.25` | `9.0.29` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.24.2` | `1.25.1` |\n| [torch](https://github.com/pytorch/pytorch) | `2.10.0` | `2.11.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.1.1` | `12.2.0` |\n| [datasketch](https://github.com/ekzhu/datasketch) | `1.9.0` | `1.10.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.3` | `5.4.1` |\n| [datasets](https://github.com/huggingface/datasets) | `4.6.0` | `4.8.5` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [pymysql](https://github.com/PyMySQL/PyMySQL) | `1.1.2` | `1.1.3` |\n| [thrift](https://github.com/apache/thrift) | `0.20.0` | `0.22.0` |\n| [snowflake-connector-python](https://github.com/snowflakedb/snowflake-connector-python) | `4.3.0` | `4.4.0` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.16.0` | `4.17.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.56` | `1.43.2` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.9.0` | `3.10.1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.41.0` | `1.41.1` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.41.0` | `1.41.1` |\n\n\nUpdates `pydantic` from 2.12.5 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.12.5...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\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\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\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\u003eVarious typo fixes and doc 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/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.8 to 0.15.12\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.12\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.12\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.12/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/66f93cf7ed4d36325f35a452e4afa28268fbcd28\"\u003e\u003ccode\u003e66f93cf\u003c/code\u003e\u003c/a\u003e Bump 0.15.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24815\"\u003e#24815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/476a4d02e8e3b6c157ac39979d8b698a1b6baa91\"\u003e\u003ccode\u003e476a4d0\u003c/code\u003e\u003c/a\u003e [ty] Complete support for more detailed diagnostics on possibly unbound error...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed669eab30095d6c51fe6cdef6050fb01276bcb3\"\u003e\u003ccode\u003eed669ea\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e73d952e43feb51356ee740c5a973fce81396ff6\"\u003e\u003ccode\u003ee73d952\u003c/code\u003e\u003c/a\u003e [ty] Include inferred type in \u003ccode\u003einvalid-key\u003c/code\u003e concise diagnostic for union/inte...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/80feb29b31cd98c093316df2e0407b0c70c01b55\"\u003e\u003ccode\u003e80feb29\u003c/code\u003e\u003c/a\u003e [ty] report only dead annotation-only locals as unused (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24811\"\u003e#24811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0fbf2bc27336a3d17d39af52cf89b78dcda8c7c8\"\u003e\u003ccode\u003e0fbf2bc\u003c/code\u003e\u003c/a\u003e Drop deprecated license classifier (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24808\"\u003e#24808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/43b174cc7f2fcb0080bb1d4843cd4bf6b72bbe27\"\u003e\u003ccode\u003e43b174c\u003c/code\u003e\u003c/a\u003e [ty] Infer lambda parameter types with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24317\"\u003e#24317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4f449ae4a2377569330a5ab94799d389357b5a3f\"\u003e\u003ccode\u003e4f449ae\u003c/code\u003e\u003c/a\u003e [ty] Add error context for intersection types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24772\"\u003e#24772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5b4e753acb46e96ad408e4904c15308e33efe307\"\u003e\u003ccode\u003e5b4e753\u003c/code\u003e\u003c/a\u003e [ty] Add support for goto in literal enum member inlay hint (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24792\"\u003e#24792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e7cc76275a758ce1c636ea1c2d091fd576aac794\"\u003e\u003ccode\u003ee7cc762\u003c/code\u003e\u003c/a\u003e [ty] Add error context for TypedDict assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24790\"\u003e#24790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.8...0.15.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.0 to 1.20.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.20.2\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse WAL with SQLite cache and fix close (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21154\"\u003e21154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust SQLite journal mode (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21217\"\u003e21217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrectly aggregate narrowing information on parent expressions (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21206\"\u003e21206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression related to generic callables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21208\"\u003e21208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression by avoiding widening types in some contexts (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21242\"\u003e21242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix slicing in non-strict optional mode (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21282\"\u003e21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emypyc: Fix match statement semantics for \u0026quot;or\u0026quot; pattern (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21156\"\u003e21156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emypyc: Fix issue with module dunder attributes (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21275\"\u003e21275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInitial support for Python 3.15.0a8 (Marc Mueller, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21255\"\u003e21255\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003cli\u003eNeil Schemenauer\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/145a062651b5f9996b75ef32b7040bd2e885ed82\"\u003e\u003ccode\u003e145a062\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/81cd49215c288eacb987de066f02daff2553b7c7\"\u003e\u003ccode\u003e81cd492\u003c/code\u003e\u003c/a\u003e Fix slicing with nonstrict optional (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21282\"\u003e#21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/908d3441eecbaa2a6193165317177db834d7ca1a\"\u003e\u003ccode\u003e908d344\u003c/code\u003e\u003c/a\u003e [mypyc] Set dunder attrs when adding module to sys.modules (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21275\"\u003e#21275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/ba28610fac9d2b33be210ca8dcfe4bc47b7af424\"\u003e\u003ccode\u003eba28610\u003c/code\u003e\u003c/a\u003e Initial support for Python 3.15.0a8 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21255\"\u003e#21255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/7b0e09f48dbd3717ed008a273cd17e8e960c2037\"\u003e\u003ccode\u003e7b0e09f\u003c/code\u003e\u003c/a\u003e Fix match statement semantics for \u0026quot;or\u0026quot; pattern (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21156\"\u003e#21156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/92b74f226de62f7505f5ef5cb158e8ec9c58b8b7\"\u003e\u003ccode\u003e92b74f2\u003c/code\u003e\u003c/a\u003e Avoid widening types in conditional_types (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21242\"\u003e#21242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0dcbfaa40b0e360a16baea9cf851955375d91b54\"\u003e\u003ccode\u003e0dcbfaa\u003c/code\u003e\u003c/a\u003e Fix is_overlapping_types for generic callables (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21208\"\u003e#21208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/210f518dede35292033ef0d387847406a0ccef8f\"\u003e\u003ccode\u003e210f518\u003c/code\u003e\u003c/a\u003e Correctly aggregate narrowing information on parent expressions (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21206\"\u003e#21206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c34530e53a10e385d8b0f1af4baa88a596b5ceaa\"\u003e\u003ccode\u003ec34530e\u003c/code\u003e\u003c/a\u003e Only set journal mode in coordinator (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21217\"\u003e#21217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/79a3ec6d01b56a27c00e9b3320c2b1d4d73a77f9\"\u003e\u003ccode\u003e79a3ec6\u003c/code\u003e\u003c/a\u003e Use WAL with SQLite cache, fix close (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21154\"\u003e#21154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.0...v1.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.45.0 to 0.56.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\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/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.0\"\u003e0.56.0\u003c/a\u003e - 2026-04-04\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/6274b70b58e6dab57a1797beb8006f9fcdbf7dbe\"\u003e\u003ccode\u003e6274b70\u003c/code\u003e\u003c/a\u003e Docs: describe --keep-model-order as deterministic dependency-aware ordering ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/3e87a9a4a712b2cb8ad6d9faaa85c86ac8838ffe\"\u003e\u003ccode\u003e3e87a9a\u003c/code\u003e\u003c/a\u003e Fix root model reuse collapse (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3089\"\u003e#3089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/51377952477da7ef39efcb2f3e256ae51ad7a1f8\"\u003e\u003ccode\u003e5137795\u003c/code\u003e\u003c/a\u003e tomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3088\"\u003e#3088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d7a1f7166624eadcd84e97b8d2ca09e8c6dde957\"\u003e\u003ccode\u003ed7a1f71\u003c/code\u003e\u003c/a\u003e Fix relative URL refs with path-only root ids (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f0960e9e2362f1dab2facb55853d2e56a3a923b4\"\u003e\u003ccode\u003ef0960e9\u003c/code\u003e\u003c/a\u003e Prefer CLI input over pyproject url (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/05901ff4ad110b750dcfd996aeaca410767240cd\"\u003e\u003ccode\u003e05901ff\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json sup...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5ba49a72dbfc69dc781a87c6adadb785d794f475\"\u003e\u003ccode\u003e5ba49a7\u003c/code\u003e\u003c/a\u003e docs: update CHANGELOG.md for 0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/52d9ef9dec52f3ad14130710eefb010f0e492160\"\u003e\u003ccode\u003e52d9ef9\u003c/code\u003e\u003c/a\u003e [codex] Refresh project usage list (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7d41fef7884579d728fe42a1e266d8b950ccd72d\"\u003e\u003ccode\u003e7d41fef\u003c/code\u003e\u003c/a\u003e Support JSON files for mapping options (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a8cd0da7a6d17bfd70c5c2623699ffc6aa818fd\"\u003e\u003ccode\u003e5a8cd0d\u003c/code\u003e\u003c/a\u003e Fix non-string OpenAPI discriminator literals (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.45.0...0.56.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\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\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `presidio-analyzer` from 2.2.361 to 2.2.362\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Microsoft/presidio/releases\"\u003epresidio-analyzer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2.2.362\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - GPU Device Control via Environment Variable by \u003ca href=\"https://github.com/RonShakutai\"\u003e\u003ccode\u003e@​RonShakutai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1844\"\u003emicrosoft/presidio#1844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add HuggingFaceNerRecognizer for direct NER model inference by \u003ca href=\"https://github.com/ultramancode\"\u003e\u003ccode\u003e@​ultramancode\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1834\"\u003emicrosoft/presidio#1834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Broken Links by \u003ca href=\"https://github.com/andyjessen\"\u003e\u003ccode\u003e@​andyjessen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1856\"\u003emicrosoft/presidio#1856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin dependencies to mitigate supply chain attacks by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1861\"\u003emicrosoft/presidio#1861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2024-47874 and CVE-2025-54121 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1860\"\u003emicrosoft/presidio#1860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2025-2953 and CVE-2025-3730 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1859\"\u003emicrosoft/presidio#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fixed context enhancement substring matching bug  by \u003ca href=\"https://github.com/ravi-jindal\"\u003e\u003ccode\u003e@​ravi-jindal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1827\"\u003emicrosoft/presidio#1827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix _process_names unconditionally treating all metadata as PHI by \u003ca href=\"https://github.com/Mr-Neutr0n\"\u003e\u003ccode\u003e@​Mr-Neutr0n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1855\"\u003emicrosoft/presidio#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add UK Postcode (UK_POSTCODE) recognizer by \u003ca href=\"https://github.com/tee-jagz\"\u003e\u003ccode\u003e@​tee-jagz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1858\"\u003emicrosoft/presidio#1858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin ruff and build pip installs by hash for OSSF scorecard compliance by \u003ca hre...\n\n_Description has been truncated_","html_url":"https://github.com/classifyre-com/classifyre/pull/50","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/classifyre-com%2Fclassifyre/issues/50","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/50/packages"}},{"old_version":"0.26.3","new_version":"0.56.1","update_type":"minor","path":null,"pr_created_at":"2026-05-04T05:33:52.000Z","version_change":"0.26.3 → 0.56.1","issue":{"uuid":"4374224451","node_id":"PR_kwDOI7xefs7X4umm","number":41606,"state":"closed","title":"Bump the minor-update group across 1 directory with 140 updates","user":"dependabot[bot]","labels":["rocm","ci/build","nvidia","dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-05T23:42:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-04T05:33:52.000Z","updated_at":"2026-05-05T23:42:43.000Z","time_to_close":151729,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":140,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.4.4","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"transformers","old_version":"5.5.3","new_version":"5.7.0","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"filelock","old_version":"3.16.1","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"alembic","old_version":"1.16.4","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.40.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.2.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.8","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.3","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.3","repository_url":"https://github.com/boto/botocore"},{"name":"click","old_version":"8.1.7","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.2.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.5.4","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.2.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.2.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.62.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.50.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.5.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.8.2","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.74.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.80.0"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"harfile","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.13.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.152.4","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.12.0","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.13","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librosa","old_version":"0.10.2.post1","new_version":"0.11.0","repository_url":"https://github.com/librosa/librosa"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.12.30","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.4.1.1"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.2.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.2.75"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.21.1.3"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.2.0.46"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.17.1.22"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.0.1"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.7.10.1"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.30.4"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.2.75"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.19.1","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.2.1","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.40.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.4.1","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.27.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.46.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.0","repository_url":"https://github.com/getsentry/responses"},{"name":"rpds-py","old_version":"0.20.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.17.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"safetensors","old_version":"0.4.5","new_version":"0.7.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.4.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smart-open","old_version":"7.1.0","new_version":"7.6.0","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"structlog","old_version":"25.4.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.68.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.25.1","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.28.2","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xxhash","old_version":"3.5.0","new_version":"3.7.0","repository_url":"https://github.com/ifduyue/python-xxhash"},{"name":"yarl","old_version":"1.17.1","new_version":"1.23.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 140 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.4.4` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.33.1` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.7.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.136.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.3` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.25.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.29.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.4.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.18.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.13.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.6.3` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.40.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.2.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.8` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.3` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.3` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.5` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.2.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.5.4` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.2.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.56.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.0` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.2.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.62.1` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.30.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.2` | `2.50.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.5.1` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.10.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.8.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.74.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.80.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.4.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.13.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.15.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.152.4` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.13` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [librosa](https://github.com/librosa/librosa) | `0.10.2.post1` | `0.11.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.36.0` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.12.30` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.4.1.1` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.2.75` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.21.1.3` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.2.0.46` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.17.1.22` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.0.1` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.7.10.1` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.30.4` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.19.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.2.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.9.6` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.40.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.4.1` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.27.2` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.46.3` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.20.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.1` | `0.30.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.17.0` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.4.5` | `0.7.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.4.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.1.0` | `7.6.0` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.13.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.4.0` | `25.5.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.68.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.25.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.46.0` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.28.2` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.7.0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.5.0` | `3.7.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.23.0` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.4.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\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\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\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\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.7.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eLaguna\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eLaguna is Poolside's mixture-of-experts language model family that extends standard SwiGLU MoE transformers with two key innovations. It features per-layer head counts allowing different decoder layers to have different query-head counts while sharing the same KV cache shape, and implements a sigmoid MoE router with auxiliary-loss-free load balancing that uses element-wise sigmoid of gate logits plus learned per-expert bias for router scoring.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/laguna\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLaguna XS.2 implementation (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45673\"\u003e#45673\u003c/a\u003e) by \u003ca href=\"https://github.com/joerowell\"\u003e\u003ccode\u003e@​joerowell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45673\"\u003e#45673\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDEIMv2\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eDEIMv2 (DETR with Improved Matching v2) is a real-time object detection model that extends DEIM with DINOv3 features and spans eight model sizes from X to Atto for diverse deployment scenarios. It uses a Spatial Tuning Adapter (STA) for larger variants to convert DINOv3's single-scale output into multi-scale features, while ultra-lightweight models employ pruned HGNetv2 backbones. The unified design achieves superior performance-cost trade-offs, with DEIMv2-X reaching 57.8 AP with only 50.3M parameters and DEIMv2-S being the first sub-10M model to exceed 50 AP on COCO.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/deimv2\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/papers/2509.20787\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003emodel: Add DEIMv2 to Transformers (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44339\"\u003e#44339\u003c/a\u003e) by \u003ca href=\"https://github.com/harshaljanjani\"\u003e\u003ccode\u003e@​harshaljanjani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/44339\"\u003e#44339\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAttention\u003c/h2\u003e\n\u003cp\u003eSeveral attention-related bugs were fixed across multiple models, including a cross-attention cache type error in T5Gemma2 for long inputs, incorrect cached forward behavior in Qwen3.5's gated-delta-net linear attention, and a crash in GraniteMoeHybrid when no Mamba layers are present. Attention function dispatch was also updated to align with the latest model implementations.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix cross-attention cache layer type for T5Gemma2 long inputs (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45540\"\u003e#45540\u003c/a\u003e) by \u003ca href=\"https://github.com/Beichen-Ma\"\u003e\u003ccode\u003e@​Beichen-Ma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45540\"\u003e#45540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Qwen3.5] Fix GDN linear attention multi-token cached forward (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45513\"\u003e#45513\u003c/a\u003e) by \u003ca href=\"https://github.com/kashif\"\u003e\u003ccode\u003e@​kashif\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45513\"\u003e#45513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GraniteMoeHybrid _update_mamba_mask crash on attention-only models (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45514\"\u003e#45514\u003c/a\u003e) by \u003ca href=\"https://github.com/tianhaocui\"\u003e\u003ccode\u003e@​tianhaocui\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45514\"\u003e#45514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlign latest model attention function dispatch (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45598\"\u003e#45598\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45598\"\u003e#45598\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTokenizers\u003c/h2\u003e\n\u003cp\u003eThere was a bug in AutoTokenizer that caused the wrong tokenizer class to be initialized. This caused regressions in models like DeepSeek R1.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003echange got reverted (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45680\"\u003e#45680\u003c/a\u003e) by \u003ca href=\"https://github.com/itazap\"\u003e\u003ccode\u003e@​itazap\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45680\"\u003e#45680\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGeneration\u003c/h2\u003e\n\u003cp\u003eContinuous batching generation received several fixes and improvements, including correcting KV deduplication and memory estimation for long sequences (16K+), and removing misleading warnings about \u003ccode\u003enum_return_sequences\u003c/code\u003e and other unsupported features that were incorrectly firing even when functionality worked correctly. Documentation for per-request sampling parameters was also added.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003egenerate: drop stale num_return_sequences warning on continuous batching path (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45582\"\u003e#45582\u003c/a\u003e) by \u003ca href=\"https://github.com/joaquinhuigomez\"\u003e\u003ccode\u003e@​joaquinhuigomez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45582\"\u003e#45582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/6ffbb07f93d9e44457450d1150136309b0dc966b\"\u003e\u003ccode\u003e6ffbb07\u003c/code\u003e\u003c/a\u003e v5.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/18e7fd752e6fa7dd4ff8b828ff8f3aec5b0882ae\"\u003e\u003ccode\u003e18e7fd7\u003c/code\u003e\u003c/a\u003e change got reverted (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45680\"\u003e#45680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/2dff8f76f48abd7dd31b8dc156046509887d3cf1\"\u003e\u003ccode\u003e2dff8f7\u003c/code\u003e\u003c/a\u003e v5.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93bed93e7518444cce442a89c78008fa0a21c963\"\u003e\u003ccode\u003e93bed93\u003c/code\u003e\u003c/a\u003e fixing more typos (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45689\"\u003e#45689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/a29e9675a864e2c7854a4d0f574589a8db1dac2e\"\u003e\u003ccode\u003ea29e967\u003c/code\u003e\u003c/a\u003e [docs] cb memory management (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45587\"\u003e#45587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/2d01799735d455f745b9c53d5a9d2eebdd7be569\"\u003e\u003ccode\u003e2d01799\u003c/code\u003e\u003c/a\u003e [docs] cpu offloading (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45660\"\u003e#45660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4aba7167e328965caadcdfc6834b982037889f86\"\u003e\u003ccode\u003e4aba716\u003c/code\u003e\u003c/a\u003e docs(README_zh-hans): clarify conditions for not using Transformers (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45688\"\u003e#45688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f4fc6d013864f5389b6518787438cf55359613d1\"\u003e\u003ccode\u003ef4fc6d0\u003c/code\u003e\u003c/a\u003e fix padding side issue for fast_vlm tests (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45592\"\u003e#45592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5d7ff4393ab99aa7cadf4cccd1f814dbb799f2bb\"\u003e\u003ccode\u003e5d7ff43\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ex_clip\u003c/code\u003e: 8 failed test cases (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45394\"\u003e#45394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/aadc005711da266af1f75c33185172af9d9f19bf\"\u003e\u003ccode\u003eaadc005\u003c/code\u003e\u003c/a\u003e zero_shot_object_detection ValueError fix for python 3.13 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45669\"\u003e#45669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.128.0 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.128.0...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.12.0 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.12.0...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Django] Pass correct registry to MultiProcessCollector by \u003ca href=\"https://github.com/jelly\"\u003e\u003ccode\u003e@​jelly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1152\"\u003eprometheus/client_python#1152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an AIOHTTP exporter by \u003ca href=\"https://github.com/Lexicality\"\u003e\u003ccode\u003e@​Lexicality\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1139\"\u003eprometheus/client_python#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd remove_matching() method for metric label deletion by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1121\"\u003eprometheus/client_python#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(multiprocess): avoid double-building child metric names (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1035\"\u003e#1035\u003c/a\u003e) by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1146\"\u003eprometheus/client_python#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't interleave histogram metrics in multi-process collector by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1148\"\u003eprometheus/client_python#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax registry type annotations for exposition by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1149\"\u003eprometheus/client_python#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded compression support in pushgateway by \u003ca href=\"https://github.com/ritesh-avesha\"\u003e\u003ccode\u003e@​ritesh-avesha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1144\"\u003eprometheus/client_python#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) by \u003ca href=\"https://github.com/Chadys\"\u003e\u003ccode\u003e@​Chadys\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1143\"\u003eprometheus/client_python#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1134\"\u003eprometheus/client_python#1134\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.22.1...v0.23.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.22.1...v0.23.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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/2cd1738fb880fd0e6aa9a02ec48585128388a6cd\"\u003e\u003ccode\u003e2cd1738\u003c/code\u003e\u003c/a\u003e Release 0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/daa1626eaf705318013b708954499b0a049088c8\"\u003e\u003ccode\u003edaa1626\u003c/code\u003e\u003c/a\u003e docs: add API reference for all metric types  (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1159\"\u003e#1159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/8673912276bdca7ddbca5d163eb11422b546bffb\"\u003e\u003ccode\u003e8673912\u003c/code\u003e\u003c/a\u003e Support MultiProcessCollector in RestrictedRegistry. (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1150\"\u003e#1150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/671f75c6f1f04838995fadd57cda21beee01838b\"\u003e\u003ccode\u003e671f75c\u003c/code\u003e\u003c/a\u003e Fix spaces in grouping key values for push_to_gateway (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/1cf53feae63b6ecb0bd76eee80582a0fba957e09\"\u003e\u003ccode\u003e1cf53fe\u003c/code\u003e\u003c/a\u003e Fix server shutdown documentation (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/a8541354519d04852d24688845f1d2d495eef59c\"\u003e\u003ccode\u003ea854135\u003c/code\u003e\u003c/a\u003e Migrate to Github Actions (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/f417f6ea8f058165a1934e368fed245e91aafc14\"\u003e\u003ccode\u003ef417f6e\u003c/code\u003e\u003c/a\u003e Release 0.24.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/6f0e967c1f7a408b75861d6833a8d303874be95d\"\u003e\u003ccode\u003e6f0e967\u003c/code\u003e\u003c/a\u003e Pass correct registry to MultiProcessCollector (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1152\"\u003e#1152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/c5024d310fbfcba45a5e9db62e337a3a7930ea16\"\u003e\u003ccode\u003ec5024d3\u003c/code\u003e\u003c/a\u003e Release 0.24.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/e1cdc203b1cf5f15c7b9a64d79fccc7907a62ca3\"\u003e\u003ccode\u003ee1cdc20\u003c/code\u003e\u003c/a\u003e Add Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1143\"\u003e#1143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"...\n\n_Description has been truncated_","html_url":"https://github.com/vllm-project/vllm/pull/41606","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vllm-project%2Fvllm/issues/41606","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/41606/packages"}},{"old_version":"0.33.0","new_version":"0.56.1","update_type":"minor","path":null,"pr_created_at":"2026-04-23T03:22:10.000Z","version_change":"0.33.0 → 0.56.1","issue":{"uuid":"4313262857","node_id":"PR_kwDOR5C7Fc7U1l89","number":29,"state":"closed","title":"Bump the pip-dependency-updates group across 8 directories with 3 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-27T03:28:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-23T03:22:10.000Z","updated_at":"2026-04-27T03:28:51.000Z","time_to_close":346000,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-dependency-updates","update_count":3,"packages":[{"name":"packaging","old_version":"26.0","new_version":"26.1","repository_url":"https://github.com/pypa/packaging"},{"name":"packaging","old_version":"26.0","new_version":"26.1","repository_url":"https://github.com/pypa/packaging"},{"name":"packaging","old_version":"26.0","new_version":"26.1","repository_url":"https://github.com/pypa/packaging"},{"name":"datamodel-code-generator","old_version":"0.33.0","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [packaging](https://github.com/pypa/packaging), [aiosqlite](https://github.com/omnilib/aiosqlite) and [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) to permit the latest version.\nUpdates `packaging` from 26.0 to 26.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cdel\u003ePEP 783: add handling for Emscripten wheel tags by \u003ca href=\"https://github.com/hoodmane\"\u003e\u003ccode\u003e@​hoodmane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/804\"\u003epypa/packaging#804\u003c/a\u003e\u003c/del\u003e (old name used in implementation, will be fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1099\"\u003epypa/packaging#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1065\"\u003epypa/packaging#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/944\"\u003epypa/packaging#944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1071\"\u003epypa/packaging#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1119\"\u003epypa/packaging#1119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1110\"\u003epypa/packaging#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1068\"\u003epypa/packaging#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1146\"\u003epypa/packaging#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1078\"\u003epypa/packaging#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1150\"\u003epypa/packaging#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1140\"\u003epypa/packaging#1140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026gt;V\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1141\"\u003epypa/packaging#1141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1125\"\u003epypa/packaging#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1102\"\u003epypa/packaging#1102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1092\"\u003epypa/packaging#1092\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1153\"\u003epypa/packaging#1153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1095\"\u003epypa/packaging#1095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGive preference to path over url by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1128\"\u003epypa/packaging#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1114\"\u003epypa/packaging#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026gt;\u003c/code\u003e comparison for versions with dev+local segments by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1097\"\u003epypa/packaging#1097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1093\"\u003epypa/packaging#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1109\"\u003epypa/packaging#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1121\"\u003epypa/packaging#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1096\"\u003epypa/packaging#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1090\"\u003epypa/packaging#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1124\"\u003epypa/packaging#1124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1155\"\u003epypa/packaging#1155\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1082\"\u003epypa/packaging#1082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1083\"\u003epypa/packaging#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1118\"\u003epypa/packaging#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1116\"\u003epypa/packaging#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1081\"\u003epypa/packaging#1081\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifierSet\u003c/code\u003e use \u003ccode\u003etuple\u003c/code\u003e instead of \u003ccode\u003efrozenset\u003c/code\u003e for \u003ccode\u003e_specs\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1108\"\u003epypa/packaging#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up complex \u003ccode\u003eSpecifierSet\u003c/code\u003e filtering by implementing cost-based ordering by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1105\"\u003epypa/packaging#1105\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.1 - 2026-04-14\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 783: add handling for Emscripten wheel tags in (:pull:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag in (:pull:\u003ccode\u003e1099\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package in (:pull:\u003ccode\u003e1065\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module in (:pull:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module in (:pull:\u003ccode\u003e1071\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) in (:pull:\u003ccode\u003e1119\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags in (:pull:\u003ccode\u003e1110\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e in (:pull:\u003ccode\u003e1068\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's in (:pull:\u003ccode\u003e1146\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e in (:pull:\u003ccode\u003e1078\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e in (:pull:\u003ccode\u003e1150\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026amp;lt;V.postN\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1140\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026amp;gt;V\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1141\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private in (:pull:\u003ccode\u003e1125\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII in (:pull:\u003ccode\u003e1102\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function in (:pull:\u003ccode\u003e1092\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e in (:pull:\u003ccode\u003e1153\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation in (:pull:\u003ccode\u003e1095\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eGive preference to path over url in (:pull:\u003ccode\u003e1128\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names in (:pull:\u003ccode\u003e1114\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026amp;gt;\u003c/code\u003e comparison for versions with dev+local segments in (:pull:\u003ccode\u003e1097\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e in (:pull:\u003ccode\u003e1093\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e in (:pull:\u003ccode\u003e1109\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting in (:pull:\u003ccode\u003e1121\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e in (:pull:\u003ccode\u003e1096\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output in (:pull:\u003ccode\u003e1090\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available in (:pull:\u003ccode\u003e1124\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e in (:pull:\u003ccode\u003e1155\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) in (:pull:\u003ccode\u003e1082\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property in (:pull:\u003ccode\u003e1083\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot in (:pull:\u003ccode\u003e1118\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects in (:pull:\u003ccode\u003e1116\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed in (:pull:\u003ccode\u003e1081\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/c1a88a3e035e8bfe47dbc957f4a2493e8a7b4f3c\"\u003e\u003ccode\u003ec1a88a3\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/702c25ecc297054f9597acda987a75dd6833acf5\"\u003e\u003ccode\u003e702c25e\u003c/code\u003e\u003c/a\u003e docs: update changelog for 26.1 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f4f5d46808f51709aba8341d4121f20752b3235\"\u003e\u003ccode\u003e3f4f5d4\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003eis_unsatisfiable\u003c/code\u003e on \u003ccode\u003eSpecifierSet\u003c/code\u003e using ranges (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1119\"\u003e#1119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/06c6555f44f0f7b84459c876375c5b1d52ee7fef\"\u003e\u003ccode\u003e06c6555\u003c/code\u003e\u003c/a\u003e Propagate int-max-str-digits ValueError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/905c90c1eb8c77dede11899194ca4b0f5eaf188d\"\u003e\u003ccode\u003e905c90c\u003c/code\u003e\u003c/a\u003e feat: option to validate compressed tag set sort order in `parse_wheel_filena...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/af0026cff97a8f28d165d6ac4afb58b2cdc8ffc5\"\u003e\u003ccode\u003eaf0026c\u003c/code\u003e\u003c/a\u003e docs(pylock): document select() method and PylockSelectError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/668da8662a112036e4850b68980790cb2d10dae9\"\u003e\u003ccode\u003e668da86\u003c/code\u003e\u003c/a\u003e Rename format_full_version to _format_full_version to make it visibly private...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/f294d529e2634798a98fd9cee6708307a5c1792c\"\u003e\u003ccode\u003ef294d52\u003c/code\u003e\u003c/a\u003e tests: do not reload the tags module (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1152\"\u003e#1152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/2c6c7dfa2d406e44b91f3f8d26eeed72437c9435\"\u003e\u003ccode\u003e2c6c7df\u003c/code\u003e\u003c/a\u003e feat: add handling for Emscripten wheels tags per PEP 783 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/804\"\u003e#804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/6762eea4de40da02c119d02cc77c907c6b446b86\"\u003e\u003ccode\u003e6762eea\u003c/code\u003e\u003c/a\u003e docs(markers): document \u0026amp; and | operators for combining Marker objects (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/26.0...26.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 26.0 to 26.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cdel\u003ePEP 783: add handling for Emscripten wheel tags by \u003ca href=\"https://github.com/hoodmane\"\u003e\u003ccode\u003e@​hoodmane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/804\"\u003epypa/packaging#804\u003c/a\u003e\u003c/del\u003e (old name used in implementation, will be fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1099\"\u003epypa/packaging#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1065\"\u003epypa/packaging#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/944\"\u003epypa/packaging#944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1071\"\u003epypa/packaging#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1119\"\u003epypa/packaging#1119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1110\"\u003epypa/packaging#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1068\"\u003epypa/packaging#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1146\"\u003epypa/packaging#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1078\"\u003epypa/packaging#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1150\"\u003epypa/packaging#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1140\"\u003epypa/packaging#1140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026gt;V\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1141\"\u003epypa/packaging#1141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1125\"\u003epypa/packaging#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1102\"\u003epypa/packaging#1102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1092\"\u003epypa/packaging#1092\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1153\"\u003epypa/packaging#1153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1095\"\u003epypa/packaging#1095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGive preference to path over url by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1128\"\u003epypa/packaging#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1114\"\u003epypa/packaging#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026gt;\u003c/code\u003e comparison for versions with dev+local segments by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1097\"\u003epypa/packaging#1097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1093\"\u003epypa/packaging#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1109\"\u003epypa/packaging#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1121\"\u003epypa/packaging#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1096\"\u003epypa/packaging#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1090\"\u003epypa/packaging#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1124\"\u003epypa/packaging#1124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1155\"\u003epypa/packaging#1155\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1082\"\u003epypa/packaging#1082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1083\"\u003epypa/packaging#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1118\"\u003epypa/packaging#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1116\"\u003epypa/packaging#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1081\"\u003epypa/packaging#1081\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifierSet\u003c/code\u003e use \u003ccode\u003etuple\u003c/code\u003e instead of \u003ccode\u003efrozenset\u003c/code\u003e for \u003ccode\u003e_specs\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1108\"\u003epypa/packaging#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up complex \u003ccode\u003eSpecifierSet\u003c/code\u003e filtering by implementing cost-based ordering by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1105\"\u003epypa/packaging#1105\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.1 - 2026-04-14\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 783: add handling for Emscripten wheel tags in (:pull:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag in (:pull:\u003ccode\u003e1099\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package in (:pull:\u003ccode\u003e1065\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module in (:pull:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module in (:pull:\u003ccode\u003e1071\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) in (:pull:\u003ccode\u003e1119\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags in (:pull:\u003ccode\u003e1110\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e in (:pull:\u003ccode\u003e1068\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's in (:pull:\u003ccode\u003e1146\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e in (:pull:\u003ccode\u003e1078\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e in (:pull:\u003ccode\u003e1150\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026amp;lt;V.postN\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1140\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026amp;gt;V\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1141\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private in (:pull:\u003ccode\u003e1125\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII in (:pull:\u003ccode\u003e1102\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function in (:pull:\u003ccode\u003e1092\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e in (:pull:\u003ccode\u003e1153\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation in (:pull:\u003ccode\u003e1095\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eGive preference to path over url in (:pull:\u003ccode\u003e1128\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names in (:pull:\u003ccode\u003e1114\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026amp;gt;\u003c/code\u003e comparison for versions with dev+local segments in (:pull:\u003ccode\u003e1097\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e in (:pull:\u003ccode\u003e1093\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e in (:pull:\u003ccode\u003e1109\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting in (:pull:\u003ccode\u003e1121\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e in (:pull:\u003ccode\u003e1096\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output in (:pull:\u003ccode\u003e1090\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available in (:pull:\u003ccode\u003e1124\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e in (:pull:\u003ccode\u003e1155\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) in (:pull:\u003ccode\u003e1082\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property in (:pull:\u003ccode\u003e1083\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot in (:pull:\u003ccode\u003e1118\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects in (:pull:\u003ccode\u003e1116\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed in (:pull:\u003ccode\u003e1081\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/c1a88a3e035e8bfe47dbc957f4a2493e8a7b4f3c\"\u003e\u003ccode\u003ec1a88a3\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/702c25ecc297054f9597acda987a75dd6833acf5\"\u003e\u003ccode\u003e702c25e\u003c/code\u003e\u003c/a\u003e docs: update changelog for 26.1 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f4f5d46808f51709aba8341d4121f20752b3235\"\u003e\u003ccode\u003e3f4f5d4\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003eis_unsatisfiable\u003c/code\u003e on \u003ccode\u003eSpecifierSet\u003c/code\u003e using ranges (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1119\"\u003e#1119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/06c6555f44f0f7b84459c876375c5b1d52ee7fef\"\u003e\u003ccode\u003e06c6555\u003c/code\u003e\u003c/a\u003e Propagate int-max-str-digits ValueError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/905c90c1eb8c77dede11899194ca4b0f5eaf188d\"\u003e\u003ccode\u003e905c90c\u003c/code\u003e\u003c/a\u003e feat: option to validate compressed tag set sort order in `parse_wheel_filena...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/af0026cff97a8f28d165d6ac4afb58b2cdc8ffc5\"\u003e\u003ccode\u003eaf0026c\u003c/code\u003e\u003c/a\u003e docs(pylock): document select() method and PylockSelectError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/668da8662a112036e4850b68980790cb2d10dae9\"\u003e\u003ccode\u003e668da86\u003c/code\u003e\u003c/a\u003e Rename format_full_version to _format_full_version to make it visibly private...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/f294d529e2634798a98fd9cee6708307a5c1792c\"\u003e\u003ccode\u003ef294d52\u003c/code\u003e\u003c/a\u003e tests: do not reload the tags module (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1152\"\u003e#1152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/2c6c7dfa2d406e44b91f3f8d26eeed72437c9435\"\u003e\u003ccode\u003e2c6c7df\u003c/code\u003e\u003c/a\u003e feat: add handling for Emscripten wheels tags per PEP 783 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/804\"\u003e#804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/6762eea4de40da02c119d02cc77c907c6b446b86\"\u003e\u003ccode\u003e6762eea\u003c/code\u003e\u003c/a\u003e docs(markers): document \u0026amp; and | operators for combining Marker objects (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/26.0...26.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiosqlite` to 0.22.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omnilib/aiosqlite/blob/main/CHANGELOG.md\"\u003eaiosqlite's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.22.1\u003c/h2\u003e\n\u003cp\u003eBug fix release\u003c/p\u003e\n\u003cp\u003eNOTE: Starting with \u003ccode\u003ev0.22.0\u003c/code\u003e, the \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e object no longer\ninherits from \u003ccode\u003ethreading.Thread\u003c/code\u003e. If not using aiosqlite as a context manager,\nclients must \u003ccode\u003eawait connection.close()\u003c/code\u003e or call \u003ccode\u003econnection.stop()\u003c/code\u003e to ensure\nthe helper thread is completed and terminated correctly. A \u003ccode\u003eResourceWarning\u003c/code\u003e\nwill be emitted for any connection that is garbage collected without being\nclosed or stopped.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded synchronous \u003ccode\u003estop()\u003c/code\u003e method to \u003ccode\u003eaiosqlite.Connection\u003c/code\u003e to enable safe\ncleanup and termination of the background thread without dependence\non having an active event loop (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.22.0...v0.22.1\n     2\tAmethyst Reese\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.22.0\u003c/h2\u003e\n\u003cp\u003eFeature release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003eset_authorizer\u003c/code\u003e query access controls (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWait for transaction queue to complete when closing connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEmit warning when connection goes out of scope without being closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove dependency on \u003ccode\u003etyping_extensions\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"text\"\u003e\u003ccode\u003e$ git shortlog -s v0.21.0...v0.22.0\n     1\tAlec Berryman\n     1\tAmethyst Reese\n     1\tDavid Andreoletti\n     1\tMarkus Heidelberg\n     1\tbeerpsi\n    19\tdependabot[bot]\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.21.0\u003c/h2\u003e\n\u003cp\u003eMaintenance release\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix: close connection correctly when BaseException raised in connection (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMetadata improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/9b127cecc7de843bf4f343b6da63b641866533fb\"\u003e\u003ccode\u003e9b127ce\u003c/code\u003e\u003c/a\u003e Version bump v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/5c3f61c1ea49401f2716d8f58d494e76ca766921\"\u003e\u003ccode\u003e5c3f61c\u003c/code\u003e\u003c/a\u003e Improve stop semantics for connections (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/a869d73678adbc14472e4ac2c31f4e706efe8ef3\"\u003e\u003ccode\u003ea869d73\u003c/code\u003e\u003c/a\u003e Version bump v0.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/1cd60adcab12347577150a6fa6c7d92b7b86d989\"\u003e\u003ccode\u003e1cd60ad\u003c/code\u003e\u003c/a\u003e Emit warning if connection is deleted before it is closed (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/355\"\u003e#355\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/611d7b4f29fc3d7df6c173b2e79b0892e9d249aa\"\u003e\u003ccode\u003e611d7b4\u003c/code\u003e\u003c/a\u003e Add set_authorizer support for fine-grained access control (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/349\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/81d00c8f1676851c8634ca98f99e0973083ea75f\"\u003e\u003ccode\u003e81d00c8\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/357\"\u003e#357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/7a26722f7e6da6a1ae0febf515b4624794173fcc\"\u003e\u003ccode\u003e7a26722\u003c/code\u003e\u003c/a\u003e Bump coverage[toml] from 7.8.0 to 7.10.7 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/445754087ec452f888cc152debf79590d8a25d86\"\u003e\u003ccode\u003e4457540\u003c/code\u003e\u003c/a\u003e Bump flake8 from 7.2.0 to 7.3.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/b650dad318ad72e582b7ba1143cc05f270f8ab6b\"\u003e\u003ccode\u003eb650dad\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omnilib/aiosqlite/commit/065ffdd1291693c5e69d2f3efff17e351d9a0163\"\u003e\u003ccode\u003e065ffdd\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.15.0 to 1.19.0 (\u003ca href=\"https://redirect.github.com/omnilib/aiosqlite/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/omnilib/aiosqlite/compare/v0.20.0...v0.22.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 26.0 to 26.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cdel\u003ePEP 783: add handling for Emscripten wheel tags by \u003ca href=\"https://github.com/hoodmane\"\u003e\u003ccode\u003e@​hoodmane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/804\"\u003epypa/packaging#804\u003c/a\u003e\u003c/del\u003e (old name used in implementation, will be fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1099\"\u003epypa/packaging#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1065\"\u003epypa/packaging#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/944\"\u003epypa/packaging#944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1071\"\u003epypa/packaging#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1119\"\u003epypa/packaging#1119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1110\"\u003epypa/packaging#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1068\"\u003epypa/packaging#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1146\"\u003epypa/packaging#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1078\"\u003epypa/packaging#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1150\"\u003epypa/packaging#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1140\"\u003epypa/packaging#1140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026gt;V\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1141\"\u003epypa/packaging#1141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1125\"\u003epypa/packaging#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1102\"\u003epypa/packaging#1102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1092\"\u003epypa/packaging#1092\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1153\"\u003epypa/packaging#1153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1095\"\u003epypa/packaging#1095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGive preference to path over url by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1128\"\u003epypa/packaging#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1114\"\u003epypa/packaging#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026gt;\u003c/code\u003e comparison for versions with dev+local segments by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1097\"\u003epypa/packaging#1097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1093\"\u003epypa/packaging#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1109\"\u003epypa/packaging#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1121\"\u003epypa/packaging#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1096\"\u003epypa/packaging#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1090\"\u003epypa/packaging#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1124\"\u003epypa/packaging#1124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1155\"\u003epypa/packaging#1155\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1082\"\u003epypa/packaging#1082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1083\"\u003epypa/packaging#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1118\"\u003epypa/packaging#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1116\"\u003epypa/packaging#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1081\"\u003epypa/packaging#1081\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifierSet\u003c/code\u003e use \u003ccode\u003etuple\u003c/code\u003e instead of \u003ccode\u003efrozenset\u003c/code\u003e for \u003ccode\u003e_specs\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1108\"\u003epypa/packaging#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up complex \u003ccode\u003eSpecifierSet\u003c/code\u003e filtering by implementing cost-based ordering by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1105\"\u003epypa/packaging#1105\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.1 - 2026-04-14\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 783: add handling for Emscripten wheel tags in (:pull:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag in (:pull:\u003ccode\u003e1099\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package in (:pull:\u003ccode\u003e1065\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module in (:pull:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module in (:pull:\u003ccode\u003e1071\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) in (:pull:\u003ccode\u003e1119\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags in (:pull:\u003ccode\u003e1110\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e in (:pull:\u003ccode\u003e1068\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's in (:pull:\u003ccode\u003e1146\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e in (:pull:\u003ccode\u003e1078\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e in (:pull:\u003ccode\u003e1150\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026amp;lt;V.postN\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1140\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026amp;gt;V\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1141\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private in (:pull:\u003ccode\u003e1125\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII in (:pull:\u003ccode\u003e1102\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function in (:pull:\u003ccode\u003e1092\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e in (:pull:\u003ccode\u003e1153\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation in (:pull:\u003ccode\u003e1095\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eGive preference to path over url in (:pull:\u003ccode\u003e1128\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names in (:pull:\u003ccode\u003e1114\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026amp;gt;\u003c/code\u003e comparison for versions with dev+local segments in (:pull:\u003ccode\u003e1097\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e in (:pull:\u003ccode\u003e1093\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e in (:pull:\u003ccode\u003e1109\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting in (:pull:\u003ccode\u003e1121\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e in (:pull:\u003ccode\u003e1096\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output in (:pull:\u003ccode\u003e1090\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available in (:pull:\u003ccode\u003e1124\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e in (:pull:\u003ccode\u003e1155\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) in (:pull:\u003ccode\u003e1082\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property in (:pull:\u003ccode\u003e1083\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot in (:pull:\u003ccode\u003e1118\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects in (:pull:\u003ccode\u003e1116\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed in (:pull:\u003ccode\u003e1081\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/c1a88a3e035e8bfe47dbc957f4a2493e8a7b4f3c\"\u003e\u003ccode\u003ec1a88a3\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/702c25ecc297054f9597acda987a75dd6833acf5\"\u003e\u003ccode\u003e702c25e\u003c/code\u003e\u003c/a\u003e docs: update changelog for 26.1 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f4f5d46808f51709aba8341d4121f20752b3235\"\u003e\u003ccode\u003e3f4f5d4\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003eis_unsatisfiable\u003c/code\u003e on \u003ccode\u003eSpecifierSet\u003c/code\u003e using ranges (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1119\"\u003e#1119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/06c6555f44f0f7b84459c876375c5b1d52ee7fef\"\u003e\u003ccode\u003e06c6555\u003c/code\u003e\u003c/a\u003e Propagate int-max-str-digits ValueError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/905c90c1eb8c77dede11899194ca4b0f5eaf188d\"\u003e\u003ccode\u003e905c90c\u003c/code\u003e\u003c/a\u003e feat: option to validate compressed tag set sort order in `parse_wheel_filena...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/af0026cff97a8f28d165d6ac4afb58b2cdc8ffc5\"\u003e\u003ccode\u003eaf0026c\u003c/code\u003e\u003c/a\u003e docs(pylock): document select() method and PylockSelectError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/668da8662a112036e4850b68980790cb2d10dae9\"\u003e\u003ccode\u003e668da86\u003c/code\u003e\u003c/a\u003e Rename format_full_version to _format_full_version to make it visibly private...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/f294d529e2634798a98fd9cee6708307a5c1792c\"\u003e\u003ccode\u003ef294d52\u003c/code\u003e\u003c/a\u003e tests: do not reload the tags module (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1152\"\u003e#1152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/2c6c7dfa2d406e44b91f3f8d26eeed72437c9435\"\u003e\u003ccode\u003e2c6c7df\u003c/code\u003e\u003c/a\u003e feat: add handling for Emscripten wheels tags per PEP 783 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/804\"\u003e#804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/6762eea4de40da02c119d02cc77c907c6b446b86\"\u003e\u003ccode\u003e6762eea\u003c/code\u003e\u003c/a\u003e docs(markers): document \u0026amp; and | operators for combining Marker objects (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/26.0...26.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.33.0 to 0.56.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\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/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Cont...\n\n_Description has been truncated_","html_url":"https://github.com/vijaygi-ind/airflow-2/pull/29","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vijaygi-ind%2Fairflow-2/issues/29","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/29/packages"}},{"old_version":"0.45.0","new_version":"0.56.1","update_type":"minor","path":null,"pr_created_at":"2026-04-20T08:56:24.000Z","version_change":"0.45.0 → 0.56.1","issue":{"uuid":"4294409564","node_id":"PR_kwDOR0tLLM7T4gG0","number":46,"state":"open","title":"chore(deps): bump the python-non-major group across 1 directory with 19 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-20T08:56:24.000Z","updated_at":"2026-04-20T09:42:46.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-non-major","update_count":19,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.2","repository_url":"https://github.com/pydantic/pydantic"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"ruff","old_version":"0.14.8","new_version":"0.15.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.19.0","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"datamodel-code-generator","old_version":"0.45.0","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"presidio-analyzer","old_version":"2.2.361","new_version":"2.2.362","repository_url":"https://github.com/Microsoft/presidio"},{"name":"spacy","old_version":"3.8.11","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.28","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"onnxruntime","old_version":"1.24.2","new_version":"1.24.4","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"torch","old_version":"2.10.0","new_version":"2.11.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"pillow","old_version":"12.1.1","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"datasketch","old_version":"1.9.0","new_version":"1.10.0","repository_url":"https://github.com/ekzhu/datasketch"},{"name":"sentence-transformers","old_version":"5.2.3","new_version":"5.4.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"datasets","old_version":"4.6.0","new_version":"4.8.4","repository_url":"https://github.com/huggingface/datasets"},{"name":"snowflake-connector-python","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/snowflakedb/snowflake-connector-python"},{"name":"boto3","old_version":"1.42.56","new_version":"1.42.91","repository_url":"https://github.com/boto/boto3"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"google-cloud-storage","old_version":"3.9.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-non-major group with 19 updates in the /apps/cli directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.2` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.15.11` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.20.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.45.0` | `0.56.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [presidio-analyzer](https://github.com/Microsoft/presidio) | `2.2.361` | `2.2.362` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.11` | `3.8.14` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.25` | `9.0.28` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.24.2` | `1.24.4` |\n| [torch](https://github.com/pytorch/pytorch) | `2.10.0` | `2.11.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.1.1` | `12.2.0` |\n| [datasketch](https://github.com/ekzhu/datasketch) | `1.9.0` | `1.10.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.3` | `5.4.1` |\n| [datasets](https://github.com/huggingface/datasets) | `4.6.0` | `4.8.4` |\n| [snowflake-connector-python](https://github.com/snowflakedb/snowflake-connector-python) | `4.3.0` | `4.4.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.56` | `1.42.91` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.9.0` | `3.10.1` |\n\n\nUpdates `pydantic` from 2.12.5 to 2.13.2\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.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\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\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin 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/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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.2/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\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\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin 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/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration 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/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\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\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/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\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/17a35e371bdff348c0690651d324c91fc7c9ff9e\"\u003e\u003ccode\u003e17a35e3\u003c/code\u003e\u003c/a\u003e Update jiter to v0.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13064\"\u003e#13064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/feea402b23fa23774669908c4e08a61ba1e4238e\"\u003e\u003ccode\u003efeea402\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003esimulation\u003c/code\u003e mode in Codspeed CI (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13063\"\u003e#13063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/671c9b0d4d3f9b2f1b95ca32ac85cb69e824e0bc\"\u003e\u003ccode\u003e671c9b0\u003c/code\u003e\u003c/a\u003e Add basic benchmarks for model equality (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13061\"\u003e#13061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\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\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\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\u003eVarious typo fixes and doc 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/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.8 to 0.15.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\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/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.11\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.11/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.11/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.15.11\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz\"\u003eruff-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz\"\u003eruff-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip\"\u003eruff-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip\"\u003eruff-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\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/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\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/astral-sh/ruff/commit/53554b1cfe837f2eb992a81794480699478f1116\"\u003e\u003ccode\u003e53554b1\u003c/code\u003e\u003c/a\u003e Bump 0.15.11 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24678\"\u003e#24678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/08c56c83cffbb1025cbf5bdede6c6d8be591cf47\"\u003e\u003ccode\u003e08c56c8\u003c/code\u003e\u003c/a\u003e Factor out the \u003ccode\u003emdtest\u003c/code\u003e crate (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24616\"\u003e#24616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/725fbb736d2a999971449b61190b914abd26102a\"\u003e\u003ccode\u003e725fbb7\u003c/code\u003e\u003c/a\u003e [ty] Use partially qualified names when reporting diagnostics regarding bad c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ddd6a30ff5fa27694dc1c50d0749885a1519d0a7\"\u003e\u003ccode\u003eddd6a30\u003c/code\u003e\u003c/a\u003e [ty] Do not suggest argument completion when at value of keyword argument (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9282e61d482a36da08d66bb8271afeef50b3bc45\"\u003e\u003ccode\u003e9282e61\u003c/code\u003e\u003c/a\u003e Disallow \u003ca href=\"https://github.com/disjoint\"\u003e\u003ccode\u003e@​disjoint\u003c/code\u003e\u003c/a\u003e_base on TypedDicts and Protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24671\"\u003e#24671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9986d8e3008eefe2e387312c4dc8b9c60f6f362\"\u003e\u003ccode\u003ee9986d8\u003c/code\u003e\u003c/a\u003e [ty] Reject using properties with \u003ccode\u003eNever\u003c/code\u003e setters or deleters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24510\"\u003e#24510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9cf212ff82f7b66b4a275ad6a9b1564aee1fa4a8\"\u003e\u003ccode\u003e9cf212f\u003c/code\u003e\u003c/a\u003e [ty] Normalize property setter and deleter wrappers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24509\"\u003e#24509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/12a1589de4d7120cf99441ee4c14871bdc20968d\"\u003e\u003ccode\u003e12a1589\u003c/code\u003e\u003c/a\u003e Add override mention to ASYNC109 docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dccb03d010f4442ed60624f8d2ba932706abaabb\"\u003e\u003ccode\u003edccb03d\u003c/code\u003e\u003c/a\u003e [ty] Avoid panicking on overloaded \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24661\"\u003e#24661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/61f9a0a5763fb068cd2f26c0ee9d63a277fb26c2\"\u003e\u003ccode\u003e61f9a0a\u003c/code\u003e\u003c/a\u003e [ty] Sync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24646\"\u003e#24646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.8...0.15.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.0 to 1.20.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.20.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways disable sync in SQLite cache (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21184\"\u003e21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTemporarily skip few base64 tests (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21193\"\u003e21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u003ccode\u003edict.__or__\u003c/code\u003e typeshed change (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21186\"\u003e21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing for match case with variadic tuples (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21192\"\u003e21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing \u003ccode\u003etype[T]\u003c/code\u003e in type calls (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21174\"\u003e21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression for catching empty tuple in except (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21153\"\u003e21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix reachability for frozenset and dict view narrowing (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21151\"\u003e21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing with chained comparison (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21150\"\u003e21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing to unreachable at module level (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21144\"\u003e21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow dangerous identity comparisons to \u003ccode\u003eAny\u003c/code\u003e typed variables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21142\"\u003e21142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--warn-unused-config\u003c/code\u003e should not be a strict flag (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21139\"\u003e21139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/c60e8bfcb5910974b577e443725c475e0485d269\"\u003e\u003ccode\u003ec60e8bf\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/842e4927738264949e969df0c2ee285a13594d06\"\u003e\u003ccode\u003e842e492\u003c/code\u003e\u003c/a\u003e Always disable sync in SQLite cache (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21184\"\u003e#21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e82a046356b242441fcd55c8cf922c7904ef311a\"\u003e\u003ccode\u003ee82a046\u003c/code\u003e\u003c/a\u003e Temporarily skip few base64 tests (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21193\"\u003e#21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f7fa418b6504e20c1277947e03a6db2f6d03e13e\"\u003e\u003ccode\u003ef7fa418\u003c/code\u003e\u003c/a\u003e Revert dict.\u003cstrong\u003eor\u003c/strong\u003e typeshed change (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21186\"\u003e#21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a2e8ee1afd5bbda26ad301496685295b1a7997a3\"\u003e\u003ccode\u003ea2e8ee1\u003c/code\u003e\u003c/a\u003e Fix narrowing for match case with variadic tuples (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21192\"\u003e#21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/521f88f510c2065132909928815f08502097ceea\"\u003e\u003ccode\u003e521f88f\u003c/code\u003e\u003c/a\u003e Avoid narrowing type[T] in type calls (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21174\"\u003e#21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4876e9186b927fe4777609fc9932752dcfb7047\"\u003e\u003ccode\u003ea4876e9\u003c/code\u003e\u003c/a\u003e Fix regression for catching empty tuple in except (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21153\"\u003e#21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6fccffcac0c8c24034d4f2b262ca7e5564ba9375\"\u003e\u003ccode\u003e6fccffc\u003c/code\u003e\u003c/a\u003e Fix reachability for frozenset and dict view narrowing (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21151\"\u003e#21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/de50419dc84a66f0e8606308023f81a44dee54f3\"\u003e\u003ccode\u003ede50419\u003c/code\u003e\u003c/a\u003e Fix narrowing with chained comparison (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21150\"\u003e#21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/eafcf18ff1d83923c0f749cf3056962df63ed693\"\u003e\u003ccode\u003eeafcf18\u003c/code\u003e\u003c/a\u003e Avoid narrowing to unreachable at module level (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21144\"\u003e#21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.0...v1.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.45.0 to 0.56.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\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/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.0\"\u003e0.56.0\u003c/a\u003e - 2026-04-04\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/6274b70b58e6dab57a1797beb8006f9fcdbf7dbe\"\u003e\u003ccode\u003e6274b70\u003c/code\u003e\u003c/a\u003e Docs: describe --keep-model-order as deterministic dependency-aware ordering ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/3e87a9a4a712b2cb8ad6d9faaa85c86ac8838ffe\"\u003e\u003ccode\u003e3e87a9a\u003c/code\u003e\u003c/a\u003e Fix root model reuse collapse (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3089\"\u003e#3089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/51377952477da7ef39efcb2f3e256ae51ad7a1f8\"\u003e\u003ccode\u003e5137795\u003c/code\u003e\u003c/a\u003e tomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3088\"\u003e#3088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d7a1f7166624eadcd84e97b8d2ca09e8c6dde957\"\u003e\u003ccode\u003ed7a1f71\u003c/code\u003e\u003c/a\u003e Fix relative URL refs with path-only root ids (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f0960e9e2362f1dab2facb55853d2e56a3a923b4\"\u003e\u003ccode\u003ef0960e9\u003c/code\u003e\u003c/a\u003e Prefer CLI input over pyproject url (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/05901ff4ad110b750dcfd996aeaca410767240cd\"\u003e\u003ccode\u003e05901ff\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json sup...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5ba49a72dbfc69dc781a87c6adadb785d794f475\"\u003e\u003ccode\u003e5ba49a7\u003c/code\u003e\u003c/a\u003e docs: update CHANGELOG.md for 0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/52d9ef9dec52f3ad14130710eefb010f0e492160\"\u003e\u003ccode\u003e52d9ef9\u003c/code\u003e\u003c/a\u003e [codex] Refresh project usage list (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7d41fef7884579d728fe42a1e266d8b950ccd72d\"\u003e\u003ccode\u003e7d41fef\u003c/code\u003e\u003c/a\u003e Support JSON files for mapping options (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a8cd0da7a6d17bfd70c5c2623699ffc6aa818fd\"\u003e\u003ccode\u003e5a8cd0d\u003c/code\u003e\u003c/a\u003e Fix non-string OpenAPI discriminator literals (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.45.0...0.56.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\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\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `presidio-analyzer` from 2.2.361 to 2.2.362\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Microsoft/presidio/releases\"\u003epresidio-analyzer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2.2.362\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - GPU Device Control via Environment Variable by \u003ca href=\"https://github.com/RonShakutai\"\u003e\u003ccode\u003e@​RonShakutai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1844\"\u003emicrosoft/presidio#1844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add HuggingFaceNerRecognizer for direct NER model inference by \u003ca href=\"https://github.com/ultramancode\"\u003e\u003ccode\u003e@​ultramancode\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1834\"\u003emicrosoft/presidio#1834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Broken Links by \u003ca href=\"https://github.com/andyjessen\"\u003e\u003ccode\u003e@​andyjessen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1856\"\u003emicrosoft/presidio#1856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin dependencies to mitigate supply chain attacks by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1861\"\u003emicrosoft/presidio#1861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2024-47874 and CVE-2025-54121 by ...\n\n_Description has been truncated_","html_url":"https://github.com/classifyre-com/classifyre/pull/46","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/classifyre-com%2Fclassifyre/issues/46","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/46/packages"}},{"old_version":"\u003c0.30,\u003e=0.26","new_version":"\u003e=0.26,\u003c0.57","update_type":"patch","path":"/apps/api","pr_created_at":"2026-04-18T17:40:43.000Z","version_change":"\u003c0.30,\u003e=0.26 → \u003e=0.26,\u003c0.57","issue":{"uuid":"4288729459","node_id":"PR_kwDOSGQubc7TnbKE","number":15,"state":"open","title":"Update datamodel-code-generator requirement from \u003c0.30,\u003e=0.26 to \u003e=0.26,\u003c0.57 in /apps/api","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-18T17:40:43.000Z","updated_at":"2026-04-18T20:00:42.342Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"datamodel-code-generator","old_version":"\u003c0.30,\u003e=0.26","new_version":"\u003e=0.26,\u003c0.57","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":"/apps/api","ecosystem":"pip"},"body":"Updates the requirements on [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.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/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.0\"\u003e0.56.0\u003c/a\u003e - 2026-04-04\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/6274b70b58e6dab57a1797beb8006f9fcdbf7dbe\"\u003e\u003ccode\u003e6274b70\u003c/code\u003e\u003c/a\u003e Docs: describe --keep-model-order as deterministic dependency-aware ordering ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/3e87a9a4a712b2cb8ad6d9faaa85c86ac8838ffe\"\u003e\u003ccode\u003e3e87a9a\u003c/code\u003e\u003c/a\u003e Fix root model reuse collapse (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3089\"\u003e#3089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/51377952477da7ef39efcb2f3e256ae51ad7a1f8\"\u003e\u003ccode\u003e5137795\u003c/code\u003e\u003c/a\u003e tomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3088\"\u003e#3088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d7a1f7166624eadcd84e97b8d2ca09e8c6dde957\"\u003e\u003ccode\u003ed7a1f71\u003c/code\u003e\u003c/a\u003e Fix relative URL refs with path-only root ids (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f0960e9e2362f1dab2facb55853d2e56a3a923b4\"\u003e\u003ccode\u003ef0960e9\u003c/code\u003e\u003c/a\u003e Prefer CLI input over pyproject url (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/05901ff4ad110b750dcfd996aeaca410767240cd\"\u003e\u003ccode\u003e05901ff\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json sup...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5ba49a72dbfc69dc781a87c6adadb785d794f475\"\u003e\u003ccode\u003e5ba49a7\u003c/code\u003e\u003c/a\u003e docs: update CHANGELOG.md for 0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/52d9ef9dec52f3ad14130710eefb010f0e492160\"\u003e\u003ccode\u003e52d9ef9\u003c/code\u003e\u003c/a\u003e [codex] Refresh project usage list (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7d41fef7884579d728fe42a1e266d8b950ccd72d\"\u003e\u003ccode\u003e7d41fef\u003c/code\u003e\u003c/a\u003e Support JSON files for mapping options (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a8cd0da7a6d17bfd70c5c2623699ffc6aa818fd\"\u003e\u003ccode\u003e5a8cd0d\u003c/code\u003e\u003c/a\u003e Fix non-string OpenAPI discriminator literals (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.26.0...0.56.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/CT4nk3r/universal-downloader/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/CT4nk3r%2Funiversal-downloader/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"}},{"old_version":"0.45.0","new_version":"0.56.0","update_type":"minor","path":"/apps/cli","pr_created_at":"2026-04-13T08:40:04.000Z","version_change":"0.45.0 → 0.56.0","issue":{"uuid":"4252748213","node_id":"PR_kwDOR0tLLM7R6rWf","number":38,"state":"open","title":"chore(deps): bump the python-non-major group in /apps/cli with 19 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T08:40:04.000Z","updated_at":"2026-04-20T10:06:09.564Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-non-major","update_count":19,"packages":[{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"ruff","old_version":"0.14.8","new_version":"0.15.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.19.0","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"datamodel-code-generator","old_version":"0.45.0","new_version":"0.56.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"presidio-analyzer","old_version":"2.2.361","new_version":"2.2.362","repository_url":"https://github.com/Microsoft/presidio"},{"name":"presidio-anonymizer","old_version":"2.2.361","new_version":"2.2.362","repository_url":"https://github.com/Microsoft/presidio"},{"name":"spacy","old_version":"3.8.11","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.27","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"pillow","old_version":"12.1.1","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"onnxruntime","old_version":"1.24.2","new_version":"1.24.4","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"torch","old_version":"2.10.0","new_version":"2.11.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"sentence-transformers","old_version":"5.2.3","new_version":"5.4.0","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"datasets","old_version":"4.6.0","new_version":"4.8.4","repository_url":"https://github.com/huggingface/datasets"},{"name":"gliner","old_version":"0.2.25","new_version":"0.2.26","repository_url":"https://github.com/urchade/GLiNER"},{"name":"snowflake-connector-python","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/snowflakedb/snowflake-connector-python"},{"name":"boto3","old_version":"1.42.56","new_version":"1.42.88","repository_url":"https://github.com/boto/boto3"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"google-cloud-storage","old_version":"3.9.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"}],"path":"/apps/cli","ecosystem":"pip"},"body":"Bumps the python-non-major group in /apps/cli with 19 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.15.10` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.20.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.45.0` | `0.56.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [presidio-analyzer](https://github.com/Microsoft/presidio) | `2.2.361` | `2.2.362` |\n| [presidio-anonymizer](https://github.com/Microsoft/presidio) | `2.2.361` | `2.2.362` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.11` | `3.8.14` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.25` | `9.0.27` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.1.1` | `12.2.0` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.24.2` | `1.24.4` |\n| [torch](https://github.com/pytorch/pytorch) | `2.10.0` | `2.11.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.3` | `5.4.0` |\n| [datasets](https://github.com/huggingface/datasets) | `4.6.0` | `4.8.4` |\n| [gliner](https://github.com/urchade/GLiNER) | `0.2.25` | `0.2.26` |\n| [snowflake-connector-python](https://github.com/snowflakedb/snowflake-connector-python) | `4.3.0` | `4.4.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.56` | `1.42.88` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.9.0` | `3.10.1` |\n\nUpdates `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\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\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\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\u003eVarious typo fixes and doc 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/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.8 to 0.15.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.10\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.10/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.9\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-02.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Flag annotated variable redeclarations as \u003ccode\u003eF811\u003c/code\u003e in preview mode (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24244\"\u003e#24244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Allow dunder-named assignments in non-strict mode for \u003ccode\u003eRUF067\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24089\"\u003e#24089\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/252f76102a618bff6537b6c53c316ca3837f4abf\"\u003e\u003ccode\u003e252f761\u003c/code\u003e\u003c/a\u003e Bump 0.15.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24519\"\u003e#24519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/37a1ec8bb8e30955787b0cdf6e97f7f2254dba7f\"\u003e\u003ccode\u003e37a1ec8\u003c/code\u003e\u003c/a\u003e [ty] Fix assignability of intersections with bounded typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24502\"\u003e#24502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f518cc9ca0c830773dd49c3964eb5e49d52c8aed\"\u003e\u003ccode\u003ef518cc9\u003c/code\u003e\u003c/a\u003e [ty] Allow partially stringified \u003ccode\u003etype[…]\u003c/code\u003e annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24518\"\u003e#24518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/16c4090d0a711b9c0523b932014f3daf140f35bc\"\u003e\u003ccode\u003e16c4090\u003c/code\u003e\u003c/a\u003e docs: fix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/99d97bd72f1934ac2af93e52468c10ef1c7a1a4e\"\u003e\u003ccode\u003e99d97bd\u003c/code\u003e\u003c/a\u003e [ty] Tighten up a few edge cases in \u003ccode\u003eConcatenate\u003c/code\u003e type-expression parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2714e345bdd64a5baae3844c0d25db7b0b9fe330\"\u003e\u003ccode\u003e2714e34\u003c/code\u003e\u003c/a\u003e [ty] Enable \u003ccode\u003epull-diagnostics\u003c/code\u003e by default in E2E tests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24516\"\u003e#24516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d8bc700722ab1b7272a4d724839da7c569b349d4\"\u003e\u003ccode\u003ed8bc700\u003c/code\u003e\u003c/a\u003e LSP: Add support for custom extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a45f96d65dbd4f958b07accd718f8d2af48cb956\"\u003e\u003ccode\u003ea45f96d\u003c/code\u003e\u003c/a\u003e [ty] stop special-casing str constructor (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24514\"\u003e#24514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/87a0f01cfd016e0297ef05ab638cde006bf8d947\"\u003e\u003ccode\u003e87a0f01\u003c/code\u003e\u003c/a\u003e [ruff] Treat f-string interpolation as potential side effect in RUF019 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9ba8489b8d1f1fd5fd66887a74d5f2f58f733d4\"\u003e\u003ccode\u003ee9ba848\u003c/code\u003e\u003c/a\u003e [ty] Fix excess subscript argument inference for non-generic types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24354\"\u003e#24354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.8...0.15.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.0 to 1.20.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.20.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways disable sync in SQLite cache (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21184\"\u003e21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTemporarily skip few base64 tests (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21193\"\u003e21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u003ccode\u003edict.__or__\u003c/code\u003e typeshed change (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21186\"\u003e21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing for match case with variadic tuples (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21192\"\u003e21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing \u003ccode\u003etype[T]\u003c/code\u003e in type calls (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21174\"\u003e21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression for catching empty tuple in except (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21153\"\u003e21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix reachability for frozenset and dict view narrowing (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21151\"\u003e21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing with chained comparison (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21150\"\u003e21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing to unreachable at module level (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21144\"\u003e21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow dangerous identity comparisons to \u003ccode\u003eAny\u003c/code\u003e typed variables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21142\"\u003e21142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--warn-unused-config\u003c/code\u003e should not be a strict flag (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21139\"\u003e21139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\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/c60e8bfcb5910974b577e443725c475e0485d269\"\u003e\u003ccode\u003ec60e8bf\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/842e4927738264949e969df0c2ee285a13594d06\"\u003e\u003ccode\u003e842e492\u003c/code\u003e\u003c/a\u003e Always disable sync in SQLite cache (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21184\"\u003e#21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e82a046356b242441fcd55c8cf922c7904ef311a\"\u003e\u003ccode\u003ee82a046\u003c/code\u003e\u003c/a\u003e Temporarily skip few base64 tests (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21193\"\u003e#21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f7fa418b6504e20c1277947e03a6db2f6d03e13e\"\u003e\u003ccode\u003ef7fa418\u003c/code\u003e\u003c/a\u003e Revert dict.\u003cstrong\u003eor\u003c/strong\u003e typeshed change (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21186\"\u003e#21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a2e8ee1afd5bbda26ad301496685295b1a7997a3\"\u003e\u003ccode\u003ea2e8ee1\u003c/code\u003e\u003c/a\u003e Fix narrowing for match case with variadic tuples (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21192\"\u003e#21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/521f88f510c2065132909928815f08502097ceea\"\u003e\u003ccode\u003e521f88f\u003c/code\u003e\u003c/a\u003e Avoid narrowing type[T] in type calls (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21174\"\u003e#21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4876e9186b927fe4777609fc9932752dcfb7047\"\u003e\u003ccode\u003ea4876e9\u003c/code\u003e\u003c/a\u003e Fix regression for catching empty tuple in except (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21153\"\u003e#21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6fccffcac0c8c24034d4f2b262ca7e5564ba9375\"\u003e\u003ccode\u003e6fccffc\u003c/code\u003e\u003c/a\u003e Fix reachability for frozenset and dict view narrowing (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21151\"\u003e#21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/de50419dc84a66f0e8606308023f81a44dee54f3\"\u003e\u003ccode\u003ede50419\u003c/code\u003e\u003c/a\u003e Fix narrowing with chained comparison (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21150\"\u003e#21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/eafcf18ff1d83923c0f749cf3056962df63ed693\"\u003e\u003ccode\u003eeafcf18\u003c/code\u003e\u003c/a\u003e Avoid narrowing to unreachable at module level (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21144\"\u003e#21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.0...v1.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.45.0 to 0.56.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMissing local \u003ccode\u003e$ref\u003c/code\u003e now raises \u003ccode\u003eError\u003c/code\u003e instead of \u003ccode\u003eFileNotFoundError\u003c/code\u003e - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e pointed to a non-existent local file, a raw \u003ccode\u003eFileNotFoundError\u003c/code\u003e propagated to callers. Now it raises \u003ccode\u003edatamodel_code_generator.Error\u003c/code\u003e with the message \u003ccode\u003e\u0026quot;$ref file not found: \u0026lt;path\u0026gt;\u0026quot;\u003c/code\u003e. Programmatic users catching \u003ccode\u003eFileNotFoundError\u003c/code\u003e specifically will need to catch \u003ccode\u003eError\u003c/code\u003e instead (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch failures now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead of propagating raw exceptions - HTTP errors (4xx/5xx status codes), unexpected HTML responses, and transport errors (DNS, timeout, connection) that previously resulted in downstream YAML/JSON parse errors or raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e (a subclass of \u003ccode\u003eError\u003c/code\u003e) before parsing is attempted. Users catching specific parse errors or \u003ccode\u003ehttpx\u003c/code\u003e exceptions for these scenarios will need to update their error handling (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch errors now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead of raw httpx exceptions - The \u003ccode\u003eget_body()\u003c/code\u003e function in \u003ccode\u003ehttp.py\u003c/code\u003e now catches HTTP errors and raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (a new \u003ccode\u003eError\u003c/code\u003e subclass) for HTTP status \u0026gt;= 400, network failures, and unexpected HTML responses. Code that caught raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote schema fetching will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits \u003ccode\u003eFutureWarning\u003c/code\u003e without \u003ccode\u003e--allow-remote-refs\u003c/code\u003e - Fetching remote HTTP/HTTPS \u003ccode\u003e$ref\u003c/code\u003e references without explicitly passing \u003ccode\u003e--allow-remote-refs\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e deprecation warning. In a future version, remote fetching will be disabled by default. Users relying on implicit remote ref fetching should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch errors now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e with validation of response content type - Previously, fetching a remote \u003ccode\u003e$ref\u003c/code\u003e that returned an HTML error page would silently pass the HTML through as schema content. Now it raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e if the response has \u003ccode\u003etext/html\u003c/code\u003e content type or a 4xx/5xx status code. This may cause previously-silent failures to become loud errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDefault Behavior Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplicit remote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits \u003ccode\u003eFutureWarning\u003c/code\u003e - When a \u003ccode\u003e$ref\u003c/code\u003e resolves to an HTTP(S) URL and \u003ccode\u003e--allow-remote-refs\u003c/code\u003e is not explicitly passed, the tool still fetches the remote reference but emits a \u003ccode\u003eFutureWarning\u003c/code\u003e. This may cause failures in environments running with \u003ccode\u003e-W error\u003c/code\u003e (warnings as errors) or strict warning filters. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e explicitly to suppress the warning (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e - When the parser encounters an HTTP/HTTPS \u003ccode\u003e$ref\u003c/code\u003e without \u003ccode\u003e--allow-remote-refs\u003c/code\u003e being explicitly set, a \u003ccode\u003eFutureWarning\u003c/code\u003e is emitted warning that remote fetching will be disabled by default in a future version. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to silence the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching immediately. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eType alias templates updated with \u003ccode\u003efields\u003c/code\u003e guard - All six type alias templates (\u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeStatement.jinja2\u003c/code\u003e) now wrap the main body in \u003ccode\u003e{% if fields %}...{% else %}\u003c/code\u003e blocks that fall back to \u003ccode\u003e{{ base_class }}\u003c/code\u003e when no fields are present. Users with custom copies of these templates must add the same guard or handle the empty-fields case. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType alias Jinja2 templates now require \u003ccode\u003efields\u003c/code\u003e guard and \u003ccode\u003ebase_class\u003c/code\u003e fallback - The built-in templates \u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, and their Union variants now wrap field access in \u003ccode\u003e{%- if fields %}...{%- else %}\u003c/code\u003e blocks with a \u003ccode\u003ebase_class\u003c/code\u003e fallback for empty field lists. Users with custom templates derived from the old versions will need to add similar guards. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType alias templates (\u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, and their Union variants) now handle an empty \u003ccode\u003efields\u003c/code\u003e list with a fallback to \u003ccode\u003ebase_class\u003c/code\u003e - If you have custom copies of these templates, they need to be updated to include the new \u003ccode\u003e{%- if fields %}...{%- else %}...{%- endif %}\u003c/code\u003e branching logic. Without this update, custom templates may error when \u003ccode\u003efields\u003c/code\u003e is empty. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.0\"\u003e0.56.0\u003c/a\u003e - 2026-04-04\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMissing local \u003ccode\u003e$ref\u003c/code\u003e now raises \u003ccode\u003eError\u003c/code\u003e instead of \u003ccode\u003eFileNotFoundError\u003c/code\u003e - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e pointed to a non-existent local file, a raw \u003ccode\u003eFileNotFoundError\u003c/code\u003e propagated to callers. Now it raises \u003ccode\u003edatamodel_code_generator.Error\u003c/code\u003e with the message \u003ccode\u003e\u0026quot;$ref file not found: \u0026lt;path\u0026gt;\u0026quot;\u003c/code\u003e. Programmatic users catching \u003ccode\u003eFileNotFoundError\u003c/code\u003e specifically will need to catch \u003ccode\u003eError\u003c/code\u003e instead (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch failures now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead of propagating raw exceptions - HTTP errors (4xx/5xx status codes), unexpected HTML responses, and transport errors (DNS, timeout, connection) that previously resulted in downstream YAML/JSON parse errors or raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e (a subclass of \u003ccode\u003eError\u003c/code\u003e) before parsing is attempted. Users catching specific parse errors or \u003ccode\u003ehttpx\u003c/code\u003e exceptions for these scenarios will need to update their error handling (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch errors now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead of raw httpx exceptions - The \u003ccode\u003eget_body()\u003c/code\u003e function in \u003ccode\u003ehttp.py\u003c/code\u003e now catches HTTP errors and raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (a new \u003ccode\u003eError\u003c/code\u003e subclass) for HTTP status \u0026gt;= 400, network failures, and unexpected HTML responses. Code that caught raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote schema fetching will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits \u003ccode\u003eFutureWarning\u003c/code\u003e without \u003ccode\u003e--allow-remote-refs\u003c/code\u003e - Fetching remote HTTP/HTTPS \u003ccode\u003e$ref\u003c/code\u003e references without explicitly passing \u003ccode\u003e--allow-remote-refs\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e deprecation warning. In a future version, remote fetching will be disabled by default. Users relying on implicit remote ref fetching should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch errors now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e with validation of response content type - Previously, fetching a remote \u003ccode\u003e$ref\u003c/code\u003e that returned an HTML error page would silently pass the HTML through as schema content. Now it raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e if the response has \u003ccode\u003etext/html\u003c/code\u003e content type or a 4xx/5xx status code. This may cause previously-silent failures to become loud errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDefault Behavior Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplicit remote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits \u003ccode\u003eFutureWarning\u003c/code\u003e - When a \u003ccode\u003e$ref\u003c/code\u003e resolves to an HTTP(S) URL and \u003ccode\u003e--allow-remote-refs\u003c/code\u003e is not explicitly passed, the tool still fetches the remote reference but emits a \u003ccode\u003eFutureWarning\u003c/code\u003e. This may cause failures in environments running with \u003ccode\u003e-W error\u003c/code\u003e (warnings as errors) or strict warning filters. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e explicitly to suppress the warning (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e - When the parser encounters an HTTP/HTTPS \u003ccode\u003e$ref\u003c/code\u003e without \u003ccode\u003e--allow-remote-refs\u003c/code\u003e being explicitly set, a \u003ccode\u003eFutureWarning\u003c/code\u003e is emitted warning that remote fetching will be disabled by default in a future version. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to silence the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching immediately. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eType alias templates updated with \u003ccode\u003efields\u003c/code\u003e guard - All six type alias templates (\u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeStatement.jinja2\u003c/code\u003e) now wrap the main body in \u003ccode\u003e{% if fields %}...{% else %}\u003c/code\u003e blocks that fall back to \u003ccode\u003e{{ base_class }}\u003c/code\u003e when no fields are present. Users with custom copies of these templates must add the same guard or handle the empty-fields case. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType alias Jinja2 templates now require \u003ccode\u003efields\u003c/code\u003e guard and \u003ccode\u003ebase_class\u003c/code\u003e fallback - The built-in templates \u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, and their Union variants now wrap field access in \u003ccode\u003e{%- if fields %}...{%- else %}\u003c/code\u003e blocks with a \u003ccode\u003ebase_class\u003c/code\u003e fallback for empty field lists. Users with custom templates derived from the old versions will need to add similar guards. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/52d9ef9dec52f3ad14130710eefb010f0e492160\"\u003e\u003ccode\u003e52d9ef9\u003c/code\u003e\u003c/a\u003e [codex] Refresh project usage list (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7d41fef7884579d728fe42a1e266d8b950ccd72d\"\u003e\u003ccode\u003e7d41fef\u003c/code\u003e\u003c/a\u003e Support JSON files for mapping options (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a8cd0da7a6d17bfd70c5c2623699ffc6aa818fd\"\u003e\u003ccode\u003e5a8cd0d\u003c/code\u003e\u003c/a\u003e Fix non-string OpenAPI discriminator literals (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5dcbc09a9086febf62e92f11b88215584d3a5c45\"\u003e\u003ccode\u003e5dcbc09\u003c/code\u003e\u003c/a\u003e Fix type alias template crash with reuse_model on empty fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/8c965997f005f75c244cb377b3a800b80d261474\"\u003e\u003ccode\u003e8c96599\u003c/code\u003e\u003c/a\u003e docs: update llms.txt files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/c7710792c277892f55b6954886aa1ffecb6aaf49\"\u003e\u003ccode\u003ec771079\u003c/code\u003e\u003c/a\u003e docs: update CLI reference documentation and prompt data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f6d4cbd3440a84e801566fa758ab2bf483322082\"\u003e\u003ccode\u003ef6d4cbd\u003c/code\u003e\u003c/a\u003e Add --allow-remote-refs to disable HTTP fetching of $ref by default (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7e1a5c751b7b4b07aaf7d860d93162f1a75822b7\"\u003e\u003ccode\u003e7e1a5c7\u003c/code\u003e\u003c/a\u003e Update release draft model and preserve breaking changes (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5bd8eab9f5b5f64c146e170f9fae25ea7602daea\"\u003e\u003ccode\u003e5bd8eab\u003c/code\u003e\u003c/a\u003e Add ryaml as optional YAML backend for faster parsing (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3055\"\u003e#3055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/af51cd7cae6c73dc90e55d40dac85e1ae65897df\"\u003e\u003ccode\u003eaf51cd7\u003c/code\u003e\u003c/a\u003e Update projects list with notable AI/LLM ecosystem projects (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.45.0...0.56.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\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\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `presidio-analyzer` from 2.2.361 to 2.2.362\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Microsoft/presidio/releases\"\u003epresidio-analyzer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2.2.362\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - GPU Device Control via Environment Variable by \u003ca href=\"https://github.com/RonShakutai\"\u003e\u003ccode\u003e@​RonShakutai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1844\"\u003emicrosoft/presidio#1844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add HuggingFaceNerRecognizer for direct NER model inference by \u003ca href=\"https://github.com/ultramancode\"\u003e\u003ccode\u003e@​ultramancode\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1834\"\u003emicrosoft/presidio#1834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Broken Links by \u003ca href=\"https://github.com/andyjessen\"\u003e\u003ccode\u003e@​andyjessen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1856\"\u003emicrosoft/presidio#1856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin dependencies to mitigate supply chain attacks by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1861\"\u003emicrosoft/presidio#1861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2024-47874 and CVE-2025-54121 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1860\"\u003emicrosoft/presidio#1860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2025-2953 and CVE-2025-3730 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1859\"\u003emicrosoft/presidio#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fixed context enhancement substring matching bug  by \u003ca href=\"https://github.com/ravi-jindal\"\u003e\u003ccode\u003e@​ravi-jindal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1827\"\u003emicrosoft/presidio#1827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix _process_names unconditionally treating all metadata as PHI by \u003ca href=\"https://github.com/Mr-Neutr0n\"\u003e\u003ccode\u003e@​Mr-Neutr0n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1855\"\u003emicrosoft/presidio#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add UK Postcode (UK_POSTCODE) recognizer by \u003ca href=\"https://github.com/tee-jagz\"\u003e\u003ccode\u003e@​tee-jagz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1858\"\u003emicrosoft/presidio#1858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin ruff and build pip installs by hash for OSSF scorecard compliance by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"ht...\n\n_Description has been truncated_","html_url":"https://github.com/classifyre-com/classifyre/pull/38","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/classifyre-com%2Fclassifyre/issues/38","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/38/packages"}},{"old_version":"0.54.0","new_version":"0.54.1","update_type":"patch","path":null,"pr_created_at":"2026-03-08T14:32:37.000Z","version_change":"0.54.0 → 0.54.1","issue":{"uuid":"4041408014","node_id":"PR_kwDOGp6vrM7I3OQU","number":502,"state":"closed","title":"Build: Bump datamodel-code-generator from 0.54.0 to 0.54.1","user":"dependabot[bot]","labels":["dependencies","PYTHON","OPENAPI"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-26T16:36:26.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-08T14:32:37.000Z","updated_at":"2026-04-26T16:36:28.000Z","time_to_close":4241029,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build: Bump","packages":[{"name":"datamodel-code-generator","old_version":"0.54.0","new_version":"0.54.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) from 0.54.0 to 0.54.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dismissible announce bar to docs site by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3004\"\u003ekoxudaxi/datamodel-code-generator#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update maintainer announcement to reflect open to work status by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3007\"\u003ekoxudaxi/datamodel-code-generator#3007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport isort 8 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3011\"\u003ekoxudaxi/datamodel-code-generator#3011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix --allow-population-by-field-name for pydantic v2 dataclass output by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3013\"\u003ekoxudaxi/datamodel-code-generator#3013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e--use-annotated\u003c/code\u003e \u003cem\u003eand\u003c/em\u003e \u003ccode\u003e--use-non-positive-negative-number-constrained-types\u003c/code\u003e by \u003ca href=\"https://github.com/torarvid\"\u003e\u003ccode\u003e@​torarvid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3015\"\u003ekoxudaxi/datamodel-code-generator#3015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip default_factory wrapping for non-callable type aliases by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3012\"\u003ekoxudaxi/datamodel-code-generator#3012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect relative imports with --use-exact-imports and --collapse-root-models by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3020\"\u003ekoxudaxi/datamodel-code-generator#3020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add --external-ref-mapping to import from external packages instead of generating by \u003ca href=\"https://github.com/matssun\"\u003e\u003ccode\u003e@​matssun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3006\"\u003ekoxudaxi/datamodel-code-generator#3006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump cryptography from 46.0.3 to 46.0.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/koxudaxi/datamodel-code-generator/pull/3016\"\u003ekoxudaxi/datamodel-code-generator#3016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump urllib3 from 2.6.2 to 2.6.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3017\"\u003ekoxudaxi/datamodel-code-generator#3017\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matssun\"\u003e\u003ccode\u003e@​matssun\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3006\"\u003ekoxudaxi/datamodel-code-generator#3006\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.54.0...0.54.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.54.0...0.54.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/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.54.1\"\u003e0.54.1\u003c/a\u003e - 2026-03-04\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dismissible announce bar to docs site by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3004\"\u003ekoxudaxi/datamodel-code-generator#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update maintainer announcement to reflect open to work status by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3007\"\u003ekoxudaxi/datamodel-code-generator#3007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport isort 8 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3011\"\u003ekoxudaxi/datamodel-code-generator#3011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix --allow-population-by-field-name for pydantic v2 dataclass output by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3013\"\u003ekoxudaxi/datamodel-code-generator#3013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e--use-annotated\u003c/code\u003e \u003cem\u003eand\u003c/em\u003e \u003ccode\u003e--use-non-positive-negative-number-constrained-types\u003c/code\u003e by \u003ca href=\"https://github.com/torarvid\"\u003e\u003ccode\u003e@​torarvid\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3015\"\u003ekoxudaxi/datamodel-code-generator#3015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip default_factory wrapping for non-callable type aliases by \u003ca href=\"https://github.com/butvinm\"\u003e\u003ccode\u003e@​butvinm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3012\"\u003ekoxudaxi/datamodel-code-generator#3012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect relative imports with --use-exact-imports and --collapse-root-models by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3020\"\u003ekoxudaxi/datamodel-code-generator#3020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add --external-ref-mapping to import from external packages instead of generating by \u003ca href=\"https://github.com/matssun\"\u003e\u003ccode\u003e@​matssun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3006\"\u003ekoxudaxi/datamodel-code-generator#3006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump cryptography from 46.0.3 to 46.0.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/koxudaxi/datamodel-code-generator/pull/3016\"\u003ekoxudaxi/datamodel-code-generator#3016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild(deps): Bump urllib3 from 2.6.2 to 2.6.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3017\"\u003ekoxudaxi/datamodel-code-generator#3017\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matssun\"\u003e\u003ccode\u003e@​matssun\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3006\"\u003ekoxudaxi/datamodel-code-generator#3006\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.54.0...0.54.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.54.0...0.54.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/690c535cf63fa97bbfb86950b504aee1e3431165\"\u003e\u003ccode\u003e690c535\u003c/code\u003e\u003c/a\u003e Build(deps): Bump urllib3 from 2.6.2 to 2.6.3 (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3017\"\u003e#3017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b493eb9d7aeb998b189898a92e741541d2b30035\"\u003e\u003ccode\u003eb493eb9\u003c/code\u003e\u003c/a\u003e Build(deps): Bump cryptography from 46.0.3 to 46.0.5 (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3016\"\u003e#3016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/c5c5852c8388279820209c691aa8601b562f36b7\"\u003e\u003ccode\u003ec5c5852\u003c/code\u003e\u003c/a\u003e docs: update llms.txt files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/24d7a358db5f5c57439becb101d66b6e6a5d4c96\"\u003e\u003ccode\u003e24d7a35\u003c/code\u003e\u003c/a\u003e docs: update CLI reference documentation and prompt data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7b7f1e950419bf8a29fa8a5f55fe0e1868287d71\"\u003e\u003ccode\u003e7b7f1e9\u003c/code\u003e\u003c/a\u003e feat: Add --external-ref-mapping to import from external packages instead of ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/991f0ff58cf53b4ca647db402d4a75b9377e6065\"\u003e\u003ccode\u003e991f0ff\u003c/code\u003e\u003c/a\u003e Fix incorrect relative imports with --use-exact-imports and --collapse-root-m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/69eda182d8182ff46e7c5bc721f577e44138cb94\"\u003e\u003ccode\u003e69eda18\u003c/code\u003e\u003c/a\u003e Skip default_factory wrapping for non-callable type aliases (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3012\"\u003e#3012\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a9cdec9ac8a009d04f3b21c127d936300e936d3\"\u003e\u003ccode\u003e5a9cdec\u003c/code\u003e\u003c/a\u003e docs: update llms.txt files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/875b3cf960dc903cbe478f35f25321d7c505f1c5\"\u003e\u003ccode\u003e875b3cf\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003e--use-annotated\u003c/code\u003e \u003cem\u003eand\u003c/em\u003e `--use-non-positive-negative-number-constrain...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/bff6a308715f149b15bed5d2fe52421e54a4eab4\"\u003e\u003ccode\u003ebff6a30\u003c/code\u003e\u003c/a\u003e Fix --allow-population-by-field-name for pydantic v2 dataclass output (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3013\"\u003e#3013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.54.0...0.54.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=datamodel-code-generator\u0026package-manager=pip\u0026previous-version=0.54.0\u0026new-version=0.54.1)](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/amogh-jahagirdar/iceberg/pull/502","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/amogh-jahagirdar%2Ficeberg/issues/502","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/502/packages"}},{"old_version":"0.53.0","new_version":"0.54.0","update_type":"minor","path":null,"pr_created_at":"2026-02-23T09:51:00.000Z","version_change":"0.53.0 → 0.54.0","issue":{"uuid":"3977270797","node_id":"PR_kwDOPMXLcc7FmdeA","number":279,"state":"closed","title":"chore(deps)(deps): bump the python-minor-patch group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-26T23:16:34.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-23T09:51:00.000Z","updated_at":"2026-02-26T23:16:36.000Z","time_to_close":307534,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): bump","group_name":"python-minor-patch","update_count":9,"packages":[{"name":"httpx-retries","old_version":"0.4.5","new_version":"0.4.6","repository_url":"https://github.com/will-ockmore/httpx-retries"},{"name":"tox","old_version":"4.34.1","new_version":"4.44.0","repository_url":"https://github.com/tox-dev/tox"},{"name":"ruff","old_version":"0.15.0","new_version":"0.15.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"openapi-python-client","old_version":"0.28.1","new_version":"0.28.2","repository_url":"https://github.com/openapi-generators/openapi-python-client"},{"name":"datamodel-code-generator","old_version":"0.53.0","new_version":"0.54.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"mkdocs-material","old_version":"9.7.1","new_version":"9.7.2","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocs-swagger-ui-tag","old_version":"0.7.2","new_version":"0.8.0","repository_url":"https://github.com/blueswen/mkdocs-swagger-ui-tag"},{"name":"poethepoet","old_version":"0.41.0","new_version":"0.42.0","repository_url":"https://github.com/nat-n/poethepoet"},{"name":"ty","old_version":"0.0.15","new_version":"0.0.18","repository_url":"https://github.com/astral-sh/ty"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [httpx-retries](https://github.com/will-ockmore/httpx-retries) | `0.4.5` | `0.4.6` |\n| [tox](https://github.com/tox-dev/tox) | `4.34.1` | `4.44.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.0` | `0.15.2` |\n| [openapi-python-client](https://github.com/openapi-generators/openapi-python-client) | `0.28.1` | `0.28.2` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.53.0` | `0.54.0` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.7.1` | `9.7.2` |\n| [mkdocs-swagger-ui-tag](https://github.com/blueswen/mkdocs-swagger-ui-tag) | `0.7.2` | `0.8.0` |\n| [poethepoet](https://github.com/nat-n/poethepoet) | `0.41.0` | `0.42.0` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.15` | `0.0.18` |\n\n\nUpdates `httpx-retries` from 0.4.5 to 0.4.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/will-ockmore/httpx-retries/releases\"\u003ehttpx-retries's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.6\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't recalculate \u003ccode\u003etime_to_sleep\u003c/code\u003e unecessarily (\u003ca href=\"https://redirect.github.com/will-ockmore/httpx-retries/issues/51\"\u003e#51\u003c/a\u003e by \u003ca href=\"https://github.com/jdkessinger\"\u003e\u003ccode\u003e@​jdkessinger\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/will-ockmore/httpx-retries/blob/main/CHANGELOG.md\"\u003ehttpx-retries's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.4.6] - 2026-02-18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't recalculate \u003ccode\u003etime_to_sleep\u003c/code\u003e unecessarily\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/will-ockmore/httpx-retries/commit/895e9c1b7d60099b3ff305116631e958ab5cb91e\"\u003e\u003ccode\u003e895e9c1\u003c/code\u003e\u003c/a\u003e Version 0.4.6 (\u003ca href=\"https://redirect.github.com/will-ockmore/httpx-retries/issues/54\"\u003e#54\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/will-ockmore/httpx-retries/commit/df394e591d2c617fed6e965acc5c9bd4055e2749\"\u003e\u003ccode\u003edf394e5\u003c/code\u003e\u003c/a\u003e Differences with other retry libraries guide (\u003ca href=\"https://redirect.github.com/will-ockmore/httpx-retries/issues/53\"\u003e#53\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/will-ockmore/httpx-retries/commit/2dc1c7e0b826f3ae7d1f9c84591fb92f2f0c2564\"\u003e\u003ccode\u003e2dc1c7e\u003c/code\u003e\u003c/a\u003e Don't compute time_to_sleep 2 times. (\u003ca href=\"https://redirect.github.com/will-ockmore/httpx-retries/issues/51\"\u003e#51\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/will-ockmore/httpx-retries/compare/0.4.5...0.4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tox` from 4.34.1 to 4.44.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\u003cblockquote\u003e\n\u003ch2\u003ev4.44.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(config): keep unfactored continuation lines after filtered factors (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3802\"\u003e#3802\u003c/a\u003e) by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3804\"\u003etox-dev/tox#3804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(config): add PEP 751 pylock.toml support by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3803\"\u003etox-dev/tox#3803\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.43.0...4.44.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.43.0...4.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.43.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs(infra): integrate sphinxcontrib-towncrier by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3798\"\u003etox-dev/tox#3798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(toml): add generative env_list via product dict by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3797\"\u003etox-dev/tox#3797\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(config): restore factor conditional continuations by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3799\"\u003etox-dev/tox#3799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(pip): pass config_settings to pip for sdist install by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3800\"\u003etox-dev/tox#3800\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.42.0...4.43.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.42.0...4.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.42.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix(interrupt): suppress BrokenPipeError during teardown by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3778\"\u003etox-dev/tox#3778\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(cli): add --no-capture flag for interactive programs by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3777\"\u003etox-dev/tox#3777\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(config): add platform-dependent factor support by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3779\"\u003etox-dev/tox#3779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(env): gracefully skip environments with unavailable runners by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3781\"\u003etox-dev/tox#3781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(env): restore compound factor conditionals by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3782\"\u003etox-dev/tox#3782\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(config): add default_base_python config key by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3783\"\u003etox-dev/tox#3783\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(config): add env_site_packages_dir_plat substitution by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3784\"\u003etox-dev/tox#3784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(parallel): show --list-dependencies output by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3786\"\u003etox-dev/tox#3786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(config): add open-ended generative ranges by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3788\"\u003etox-dev/tox#3788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix(config): collapse continuation lines before factor filtering by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3787\"\u003etox-dev/tox#3787\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(pkg): cache external packaging env build across envs by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3790\"\u003etox-dev/tox#3790\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(changelog): add granular towncrier categories by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3785\"\u003etox-dev/tox#3785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(cli): accept plugin CLI options during provisioning by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3791\"\u003etox-dev/tox#3791\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(env): add recreate_commands config key by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3793\"\u003etox-dev/tox#3793\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs(faq): document Debian python3-venv limitation by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3789\"\u003etox-dev/tox#3789\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(config): warn on unused config keys with -v by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3795\"\u003etox-dev/tox#3795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(cli): add --skip-env-install flag for offline env reuse by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3792\"\u003etox-dev/tox#3792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ feat(env): add virtualenv_spec for per-env version pinning by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/tox/pull/3794\"\u003etox-dev/tox#3794\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/tox/compare/4.41.0...4.42.0\"\u003ehttps://github.com/tox-dev/tox/compare/4.41.0...4.42.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.41.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/tox/blob/main/docs/changelog.rst\"\u003etox's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFeatures - 4.44.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport PEP 751 \u003ccode\u003epylock.toml\u003c/code\u003e lock files as dependency input via the \u003ccode\u003epylock\u003c/code\u003e configuration option (mutually\nexclusive with \u003ccode\u003edeps\u003c/code\u003e). Packages are filtered by extras, dependency groups, and platform markers evaluated against\nthe target Python interpreter, then installed via pip with \u003ccode\u003e--no-deps\u003c/code\u003e - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3665\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBug fixes - 4.44.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix unfactored continuation lines (e.g. \u003ccode\u003epytest \\\u003c/code\u003e, \u003ccode\u003e--remote-data \\\u003c/code\u003e) being incorrectly skipped when they follow\na filtered factor-conditional line ending with \u003ccode\u003e\\\u003c/code\u003e -- the \u003ccode\u003epending_skip\u003c/code\u003e flag now only drops terminal continuation\npieces, preserving shared arguments that are themselves continuations - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3802\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003ev4.43.0 (2026-02-20)\u003c/p\u003e\n\u003chr /\u003e\n\u003ch1\u003eFeatures - 4.43.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd TOML-native generative \u003ccode\u003eenv_list\u003c/code\u003e via \u003ccode\u003eproduct\u003c/code\u003e dict syntax -- Cartesian product of factor groups with\noptional range dicts and exclusions - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3797\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBug fixes - 4.43.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePass \u003ccode\u003econfig_settings_build_wheel\u003c/code\u003e to pip as \u003ccode\u003e--config-settings\u003c/code\u003e when installing sdist packages, ensuring the\nbuild backend receives config settings during pip's internal wheel build - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3125\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix factor-conditional continuation lines (e.g. \u003ccode\u003ecov: coverage run \\\u003c/code\u003e / \u003ccode\u003e!cov: python \\\u003c/code\u003e / \u003ccode\u003esomefile.py\u003c/code\u003e) where\ndifferent factor prefixes on consecutive continuation lines caused prefixes to be passed as literal command arguments\ninstead of being filtered - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3796\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eImproved documentation - 4.43.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eIntegrate \u003ccode\u003esphinxcontrib-towncrier\u003c/code\u003e to render draft changelog entries directly in Sphinx, replacing the manual\ntowncrier draft script - by :user:\u003ccode\u003egaborbernat\u003c/code\u003e. (:issue:\u003ccode\u003e3201\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003ev4.42.0 (2026-02-20)\u003c/p\u003e\n\u003chr /\u003e\n\u003ch1\u003eFeatures - 4.42.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePlatform-dependent commands can now be specified using factor syntax without requiring the platform name in the\nenvironment name. The current platform (\u003ccode\u003esys.platform\u003c/code\u003e value like \u003ccode\u003elinux\u003c/code\u003e, \u003ccode\u003edarwin\u003c/code\u003e, \u003ccode\u003ewin32\u003c/code\u003e) is automatically\navailable as an implicit factor, allowing configurations like \u003ccode\u003elinux: pytest\u003c/code\u003e in INI or \u003ccode\u003efactor.linux\u003c/code\u003e in TOML\nconditional expressions to work in any environment. Additionally, TOML configurations can now use \u003ccode\u003efactor.NAME\u003c/code\u003e in\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/901aa7b645b481d2fad908c840c777d30441f7b4\"\u003e\u003ccode\u003e901aa7b\u003c/code\u003e\u003c/a\u003e release 4.44.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/7b601a77e8376b9198b7203b4e644873cc543e69\"\u003e\u003ccode\u003e7b601a7\u003c/code\u003e\u003c/a\u003e ✨ feat(config): add PEP 751 pylock.toml support (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3803\"\u003e#3803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/f6a984783d8c2635e9169d4f0b5f4f7594ea8a16\"\u003e\u003ccode\u003ef6a9847\u003c/code\u003e\u003c/a\u003e 🐛 fix(config): keep unfactored continuation lines after filtered factors (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/38\"\u003e#38\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/f4855f3e3d59e7be3c6f7fbdee27650d9f2c4011\"\u003e\u003ccode\u003ef4855f3\u003c/code\u003e\u003c/a\u003e release 4.43.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/8517abca406a268e42a1b233ece37f3869a5176e\"\u003e\u003ccode\u003e8517abc\u003c/code\u003e\u003c/a\u003e 🐛 fix(pip): pass config_settings to pip for sdist install (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3800\"\u003e#3800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/413b963339b5d5b84531e916f704602de9a16188\"\u003e\u003ccode\u003e413b963\u003c/code\u003e\u003c/a\u003e 🐛 fix(config): restore factor conditional continuations (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3799\"\u003e#3799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/b11c64501e5088edce6f698fa1bfbff31ca7ee51\"\u003e\u003ccode\u003eb11c645\u003c/code\u003e\u003c/a\u003e ✨ feat(toml): add generative env_list via product dict (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3797\"\u003e#3797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/0f4da8334895480746b0d8ba8dab60bfcddde315\"\u003e\u003ccode\u003e0f4da83\u003c/code\u003e\u003c/a\u003e 📝 docs(infra): integrate sphinxcontrib-towncrier (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3798\"\u003e#3798\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/09b4f60bdb946de3f7a3b7c4e7b17f164dff9dd2\"\u003e\u003ccode\u003e09b4f60\u003c/code\u003e\u003c/a\u003e release 4.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/tox/commit/c80c62f60d7017f91c2a7d035d045170f8523362\"\u003e\u003ccode\u003ec80c62f\u003c/code\u003e\u003c/a\u003e ✨ feat(env): add virtualenv_spec for per-env version pinning (\u003ca href=\"https://redirect.github.com/tox-dev/tox/issues/3794\"\u003e#3794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/tox/compare/4.34.1...4.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.0 to 0.15.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eExpand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23385\"\u003e#23385\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eIn preview, Ruff now enables a significantly expanded default rule set of 412 rules, up from the stable default set of 59 rules. The new rules are mostly a superset of the stable defaults, with the exception of these rules, which are removed from the preview defaults:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line\"\u003e\u003ccode\u003emultiple-imports-on-one-line\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE401\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE402\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE701\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon\"\u003e\u003ccode\u003emultiple-statements-on-one-line-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE702\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-semicolon\"\u003e\u003ccode\u003euseless-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE703\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/none-comparison\"\u003e\u003ccode\u003enone-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE711\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/true-false-comparison\"\u003e\u003ccode\u003etrue-false-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE712\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-in-test\"\u003e\u003ccode\u003enot-in-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE713\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-is-test\"\u003e\u003ccode\u003enot-is-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE714\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/type-comparison\"\u003e\u003ccode\u003etype-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE721\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/lambda-assignment\"\u003e\u003ccode\u003elambda-assignment\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE731\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-variable-name\"\u003e\u003ccode\u003eambiguous-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE741\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-class-name\"\u003e\u003ccode\u003eambiguous-class-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE742\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-function-name\"\u003e\u003ccode\u003eambiguous-function-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE743\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star\"\u003e\u003ccode\u003eundefined-local-with-import-star\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF403\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF405\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-nested-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF406\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error\"\u003e\u003ccode\u003eforward-annotation-syntax-error\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF722\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you use preview and prefer the old defaults, you can restore them with configuration like:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e\r\n# ruff.toml\r\n\u003cp\u003e[lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\u003c/p\u003e\n\u003ch1\u003epyproject.toml\u003c/h1\u003e\n\u003cp\u003e[tool.ruff.lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eIf you do give them a try, feel free to share your feedback in the \u003ca href=\"https://github.com/astral-sh/ruff/discussions/23203\"\u003eGitHub discussion\u003c/a\u003e!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Also check string annotations (\u003ccode\u003ePYI041\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19023\"\u003e#19023\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\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/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.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eExpand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23385\"\u003e#23385\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eIn preview, Ruff now enables a significantly expanded default rule set of 412\nrules, up from the stable default set of 59 rules. The new rules are mostly a\nsuperset of the stable defaults, with the exception of these rules, which are\nremoved from the preview defaults:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line\"\u003e\u003ccode\u003emultiple-imports-on-one-line\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE401\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE402\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE701\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon\"\u003e\u003ccode\u003emultiple-statements-on-one-line-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE702\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-semicolon\"\u003e\u003ccode\u003euseless-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE703\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/none-comparison\"\u003e\u003ccode\u003enone-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE711\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/true-false-comparison\"\u003e\u003ccode\u003etrue-false-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE712\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-in-test\"\u003e\u003ccode\u003enot-in-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE713\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-is-test\"\u003e\u003ccode\u003enot-is-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE714\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/type-comparison\"\u003e\u003ccode\u003etype-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE721\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/lambda-assignment\"\u003e\u003ccode\u003elambda-assignment\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE731\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-variable-name\"\u003e\u003ccode\u003eambiguous-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE741\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-class-name\"\u003e\u003ccode\u003eambiguous-class-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE742\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-function-name\"\u003e\u003ccode\u003eambiguous-function-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE743\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star\"\u003e\u003ccode\u003eundefined-local-with-import-star\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF403\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF405\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-nested-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF406\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error\"\u003e\u003ccode\u003eforward-annotation-syntax-error\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF722\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you use preview and prefer the old defaults, you can restore them with\nconfiguration like:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e\n# ruff.toml\n\u003cp\u003e[lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\u003c/p\u003e\n\u003ch1\u003epyproject.toml\u003c/h1\u003e\n\u003cp\u003e[tool.ruff.lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eIf you do give them a try, feel free to share your feedback in the \u003ca href=\"https://github.com/astral-sh/ruff/discussions/23203\"\u003eGitHub\ndiscussion\u003c/a\u003e!\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9d18ee9115f9cbb4c21478baa7c1fa2b46e0759c\"\u003e\u003ccode\u003e9d18ee9\u003c/code\u003e\u003c/a\u003e Hard code workflow name and \u003ccode\u003ecancel-in-progress\u003c/code\u003e only for PRs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23431\"\u003e#23431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7cc15f024b931fe56365f40de3fab01219c092c4\"\u003e\u003ccode\u003e7cc15f0\u003c/code\u003e\u003c/a\u003e Bump 0.15.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23430\"\u003e#23430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d1b544393ae9cddd8e48ebee8dbfd54bda89f375\"\u003e\u003ccode\u003ed1b5443\u003c/code\u003e\u003c/a\u003e Add extension mapping to configuration file options (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23384\"\u003e#23384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/222574af90c5c0ca8f84c8385cf30c7c10ac2496\"\u003e\u003ccode\u003e222574a\u003c/code\u003e\u003c/a\u003e Expand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23385\"\u003e#23385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1465b5de3829549b45397e9587b83ab7ac6d26d0\"\u003e\u003ccode\u003e1465b5d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-async\u003c/code\u003e] Fix \u003ccode\u003ein_async_context\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23426\"\u003e#23426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/410902fa401afda969cc000f13be341896e6868e\"\u003e\u003ccode\u003e410902f\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Fix handling of \u003ccode\u003etyping.{io,re}\u003c/code\u003e (\u003ccode\u003eUP035\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23131\"\u003e#23131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/729610acd9e19f57526e8ca40f355626154826bb\"\u003e\u003ccode\u003e729610a\u003c/code\u003e\u003c/a\u003e [ty] Fall back to ambiguous for large control flow graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23399\"\u003e#23399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1425c185b0a47be87112762f65b5bf7e323fb950\"\u003e\u003ccode\u003e1425c18\u003c/code\u003e\u003c/a\u003e [ty] Add code folding support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/97acaaea5f993f33d3f5bb27c5db760a2f3d1e8a\"\u003e\u003ccode\u003e97acaae\u003c/code\u003e\u003c/a\u003e [ty] Fix stack overflow for self-referential \u003ccode\u003eTypeOf\u003c/code\u003e in annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23407\"\u003e#23407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1f380c82584a6dab7e8715bc7dd5ae187da1e69a\"\u003e\u003ccode\u003e1f380c8\u003c/code\u003e\u003c/a\u003e [ty] Update tests \u003ccode\u003ereveal_type\u003c/code\u003e and \u003ccode\u003eNever\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23418\"\u003e#23418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.0...0.15.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openapi-python-client` from 0.28.1 to 0.28.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openapi-generators/openapi-python-client/releases\"\u003eopenapi-python-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.28.2 (2026-02-09)\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003euv_build\u003c/code\u003e 0.10 when using \u003ccode\u003e--meta=uv\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openapi-generators/openapi-python-client/blob/main/CHANGELOG.md\"\u003eopenapi-python-client's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.28.2 (2026-02-09)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003euv_build\u003c/code\u003e 0.10 when using \u003ccode\u003e--meta=uv\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openapi-generators/openapi-python-client/commit/410784bd3b3e49c568d343b2cd5e54a7a568a0f0\"\u003e\u003ccode\u003e410784b\u003c/code\u003e\u003c/a\u003e Release 0.28.2 (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1398\"\u003e#1398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openapi-generators/openapi-python-client/commit/4385be83dc8eff2cd14da69c797832f1c46e6708\"\u003e\u003ccode\u003e4385be8\u003c/code\u003e\u003c/a\u003e chore(deps): update dependency typer to \u0026gt;0.16,\u0026lt;0.24 (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1399\"\u003e#1399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openapi-generators/openapi-python-client/commit/a9c5d33f05f27a33dd03919440692c88027eed04\"\u003e\u003ccode\u003ea9c5d33\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1393\"\u003e#1393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openapi-generators/openapi-python-client/commit/aa318d472c32c3a86e0feeda74fc33111310da95\"\u003e\u003ccode\u003eaa318d4\u003c/code\u003e\u003c/a\u003e feat: Update \u003ccode\u003euv_build\u003c/code\u003e 0.10 when using \u003ccode\u003e--meta=uv\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openapi-generators/openapi-python-client/commit/826ab55024a43cd98c97714ca6e82156686c4b3b\"\u003e\u003ccode\u003e826ab55\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v6.0.2 (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1388\"\u003e#1388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openapi-generators/openapi-python-client/commit/f955ffe7031daf98e4cb15f5be2ab588b26124da\"\u003e\u003ccode\u003ef955ffe\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1389\"\u003e#1389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openapi-generators/openapi-python-client/commit/3abea8dd28e6d432da53ce0e93b4121380d75f6b\"\u003e\u003ccode\u003e3abea8d\u003c/code\u003e\u003c/a\u003e chore(deps): lock file maintenance (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1386\"\u003e#1386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openapi-generators/openapi-python-client/commit/d43e710a488f43fc3fafa49da1e6e9758e221100\"\u003e\u003ccode\u003ed43e710\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/setup-python action to v6.2.0 (\u003ca href=\"https://redirect.github.com/openapi-generators/openapi-python-client/issues/1387\"\u003e#1387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/openapi-generators/openapi-python-client/compare/v0.28.1...v0.28.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.53.0 to 0.54.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\r\n    integer_200 = 200\r\n    integer_404 = 404\r\n    integer_500 = 500\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\r\n    OK = 200\r\n    Not_Found = 404\r\n    Server_Error = 500\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\r\n  user:\r\n    $ref: \u0026quot;#/definitions/User\u0026quot;\r\n    nullable: true\r\n    markdownDescription: \u0026quot;A user object\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix patternProperties/propertyNames key constraints lost with field_constraints by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2994\"\u003ekoxudaxi/datamodel-code-generator#2994\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.54.0\"\u003e0.54.0\u003c/a\u003e - 2026-02-14\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\r\n    integer_200 = 200\r\n    integer_404 = 404\r\n    integer_500 = 500\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\r\n    OK = 200\r\n    Not_Found = 404\r\n    Server_Error = 500\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\r\n  user:\r\n    $ref: \u0026quot;#/definitions/User\u0026quot;\r\n    nullable: true\r\n    markdownDescription: \u0026quot;A user object\u0026quot;\r\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2ea62449515940d2af05e0723f8db2fd1b3cc11e\"\u003e\u003ccode\u003e2ea6244\u003c/code\u003e\u003c/a\u003e Fix incorrect relative imports with --use-exact-imports and --collapse-root-m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/34b7d29a52765b2c6f3da920bc525bf37f0db624\"\u003e\u003ccode\u003e34b7d29\u003c/code\u003e\u003c/a\u003e fix codespeed python version (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3000\"\u003e#3000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f3ef9c619a010ed4a30c2f7f6b514053f251a8e2\"\u003e\u003ccode\u003ef3ef9c6\u003c/code\u003e\u003c/a\u003e Fix merged result in parse_item not passed back to parse_object_fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/501190398d5717a936301f550b61ecec520c8cb7\"\u003e\u003ccode\u003e5011903\u003c/code\u003e\u003c/a\u003e Fix extra underscore on enum members like replace with --capitalise-enum-memb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/907a1a8cec66c4e25ef5dfe2128d131a5a9811f2\"\u003e\u003ccode\u003e907a1a8\u003c/code\u003e\u003c/a\u003e Fix exact imports with module/class name collision (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2998\"\u003e#2998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2b659f001e744e1e95e464ab0d613fae0122bc01\"\u003e\u003ccode\u003e2b659f0\u003c/code\u003e\u003c/a\u003e Fix missing | None for nullable enum literals in TypedDict (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/992af20312420a2d8b8975fb9ee6e22430f5144f\"\u003e\u003ccode\u003e992af20\u003c/code\u003e\u003c/a\u003e Fix type loss when $ref is used with non-standard metadata fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/0f1bc0f41d758cfda02d4438cdbbd3c3b4265102\"\u003e\u003ccode\u003e0f1bc0f\u003c/code\u003e\u003c/a\u003e Fix patternProperties/propertyNames key constraints lost with field_constrain...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/24b576e5e514802f45fbfc39af29f6d53a983e49\"\u003e\u003ccode\u003e24b576e\u003c/code\u003e\u003c/a\u003e Fix missing Field import with multiple aliases on required fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2992\"\u003e#2992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b58970a43c51805241fd93ce54deb23f2391052f\"\u003e\u003ccode\u003eb58970a\u003c/code\u003e\u003c/a\u003e Fix RecursionError in _merge_ref_with_schema for circular $ref (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.53.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.7.1 to 9.7.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.2\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to \u003ccode\u003emkdocs build\u003c/code\u003e about impending MkDocs 2.0 incompatibility (doesn't affect strict mode)\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/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.2 (2026-02-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to 'mkdocs build' about impending MkDocs 2.0 incompatibility\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for pinned blog posts and author profiles\u003c/li\u003e\n\u003cli\u003eAdded support for customizing pagination for blog index pages\u003c/li\u003e\n\u003cli\u003eAdded support for customizing blog category sort order\u003c/li\u003e\n\u003cli\u003eAdded support for staying on page when switching languages\u003c/li\u003e\n\u003cli\u003eAdded support for disabling tags in table of contents\u003c/li\u003e\n\u003cli\u003eAdded support for nested tags and shadow tags\u003c/li\u003e\n\u003cli\u003eAdded support for footnote tooltips\u003c/li\u003e\n\u003cli\u003eAdded support for instant previews\u003c/li\u003e\n\u003cli\u003eAdded support for instant prefetching\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card layouts\u003c/li\u003e\n\u003cli\u003eAdded support for custom social card background images\u003c/li\u003e\n\u003cli\u003eAdded support for selectable rangs in code blocks\u003c/li\u003e\n\u003cli\u003eAdded support for custom selectors for code annotations\u003c/li\u003e\n\u003cli\u003eAdded support for configurable log level in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for processing of external links in privacy plugin\u003c/li\u003e\n\u003cli\u003eAdded support for automatic image optimization via optimize plugin\u003c/li\u003e\n\u003cli\u003eAdded support for navigation paths (breadcrumbs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/e21a119e38f7bca184e469eaeefa3d5535e5022b\"\u003e\u003ccode\u003ee21a119\u003c/code\u003e\u003c/a\u003e Updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/d5654b500a7021625d3c78f59842805c45e7b65a\"\u003e\u003ccode\u003ed5654b5\u003c/code\u003e\u003c/a\u003e Prepare 9.7.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/b18af2f74a98e0d54f7f11b4e029d7ea29166df3\"\u003e\u003ccode\u003eb18af2f\u003c/code\u003e\u003c/a\u003e Opened up version ranges in optional dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/39cdfbd87c80079cd06a6d2a953cd53f531db61d\"\u003e\u003ccode\u003e39cdfbd\u003c/code\u003e\u003c/a\u003e Added social card for blog post\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/09ee7b1913eab1988ff3a81982c39634915336e1\"\u003e\u003ccode\u003e09ee7b1\u003c/code\u003e\u003c/a\u003e Added blog post on MkDocs 2.0 (\u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8564\"\u003e#8564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/0d11a2d01174a0ab3bec97300c4432da44128253\"\u003e\u003ccode\u003e0d11a2d\u003c/code\u003e\u003c/a\u003e Documentation (\u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8560\"\u003e#8560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/8fc61b5cb00845825179d6fd3e331c789f83187b\"\u003e\u003ccode\u003e8fc61b5\u003c/code\u003e\u003c/a\u003e Updated dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/3f0eaca8da7e06db5bbb8ca41febb78459baf650\"\u003e\u003ccode\u003e3f0eaca\u003c/code\u003e\u003c/a\u003e Documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/eaba2dc24f196ecbf8e9aa87f8982be4e154920b\"\u003e\u003ccode\u003eeaba2dc\u003c/code\u003e\u003c/a\u003e Re-enable publishing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.7.1...9.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-swagger-ui-tag` from 0.7.2 to 0.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/releases\"\u003emkdocs-swagger-ui-tag's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-swagger-ui-tag-0.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupported deactivate browser cache for openapi files (\u003ca href=\"https://redirect.github.com/blueswen/mkdocs-swagger-ui-tag/issues/37\"\u003e#37\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated swagger-ui-dist source (\u003ca href=\"https://redirect.github.com/blueswen/mkdocs-swagger-ui-tag/issues/38\"\u003e#38\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated swagger-ui-dist to 5.31.2\u003c/li\u003e\n\u003cli\u003eSwitched to swagger ui builtin dark mode\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/blueswen/mkdocs-swagger-ui-tag/blob/main/CHANGELOG\"\u003emkdocs-swagger-ui-tag's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.8.0 (2026-02-22)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Supported deactivate browser cache for openapi files ([#37](https://github.com/blueswen/mkdocs-swagger-ui-tag/issues/37))\n* Updated swagger-ui-dist source ([#38](https://github.com/blueswen/mkdocs-swagger-ui-tag/issues/38))\n* Updated swagger-ui-dist to 5.31.2\n* Switched to swagger ui builtin dark mode\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.7.2 (2025-08-24)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Updated swagger-ui-dist to 5.27.1 ([#36](https://github.com/blueswen/mkdocs-swagger-ui-tag/issues/36))\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.7.1 (2025-05-04)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Updated swagger-ui-dist to 5.21.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.7.0 (2025-04-06)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Updated swagger-ui-dist to 5.20.6\n* Migrated to uv and pyproject.toml for development and building\n* Supported filename filter ([#26](https://github.com/blueswen/mkdocs-swagger-ui-tag/issues/26))\n* Compatible with bs4 4.0.0+ ([#29](https://github.com/blueswen/mkdocs-swagger-ui-tag/issues/29))\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.6.11 (2024-10-27)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Updated swagger-ui-dist to 5.17.14\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.6.10 (2024-05-01)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Updated swagger-ui-dist to 5.17.3\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.6.9 (2024-03-25)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Updated swagger-ui-dist to 5.12.0\n* Improved OAS 3.1 dark mode contrast ([#22](https://github.com/blueswen/mkdocs-swagger-ui-tag/issues/22))\n* Generate iframe ids deterministically ([#20](https://github.com/blueswen/mkdocs-swagger-ui-tag/issues/20))\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.6.8 (2024-01-22)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Updated swagger-ui-dist to 5.11.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.6.7 (2023-11-18)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Updated swagger-ui-dist to 5.10.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.6.6 (2023-10-25)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Updated swagger-ui-dist to 5.9.1\n* Updated dark mode background color to #1e2129\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003emkdocs-swagger-ui-tag 0.6.5 (2023-09-14)\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/blueswen/mkdocs-swagger-ui-tag/commit/61d6c5fbd431bb30afec30c8f89bda3a0b652e64\"\u003e\u003ccode\u003e61d6c5f\u003c/code\u003e\u003c/a\u003e Update workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/commit/972b1e20a4be16db8651d11957086b69bb69651c\"\u003e\u003ccode\u003e972b1e2\u003c/code\u003e\u003c/a\u003e Release 0.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/commit/61c545d6b2e05c9639b2e50c85cf56105fd41848\"\u003e\u003ccode\u003e61c545d\u003c/code\u003e\u003c/a\u003e Update docs and tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/commit/5fbe8cd67f852f26bb76373a638e1e74dad021d4\"\u003e\u003ccode\u003e5fbe8cd\u003c/code\u003e\u003c/a\u003e Upgrade to swagger-ui to 5.31.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/commit/a9134c04988832f8a640a1661d34a062ffe4d9ae\"\u003e\u003ccode\u003ea9134c0\u003c/code\u003e\u003c/a\u003e Update workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/commit/12c0b0e6b6a9e58669447c2adf79a1bc7a411876\"\u003e\u003ccode\u003e12c0b0e\u003c/code\u003e\u003c/a\u003e Deprecate insider version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/commit/d78d0b89a3ddbebae093ce00cac406ef79a9afe0\"\u003e\u003ccode\u003ed78d0b8\u003c/code\u003e\u003c/a\u003e Update swagger-ui-dist to 5.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/commit/1c8d227a720185298bd1cb47ffe8afcc89da6527\"\u003e\u003ccode\u003e1c8d227\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/blueswen/mkdocs-swagger-ui-tag/issues/37\"\u003e#37\u003c/a\u003e from ggrebert/nocache\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/commit/dd88b9ac1442e48c44d84f12adb9d29a0245a48f\"\u003e\u003ccode\u003edd88b9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/blueswen/mkdocs-swagger-ui-tag/issues/38\"\u003e#38\u003c/a\u003e from ggrebert/npm-registry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/commit/4199b2e660a200604e05a3c6fe64933390ee8e35\"\u003e\u003ccode\u003e4199b2e\u003c/code\u003e\u003c/a\u003e Add an option to desactive browser cache for openapi files\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/blueswen/mkdocs-swagger-ui-tag/compare/v0.7.2...v0.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `poethepoet` 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/nat-n/poethepoet/releases\"\u003epoethepoet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBetter zsh completion caaching with max hits per cache and proper TTL before refresh by \u003ca href=\"https://github.com/nat-n\"\u003e\u003ccode\u003e@​nat-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/360\"\u003enat-n/poethepoet#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOfficially Support Python 3.14 by \u003ca href=\"https://github.com/gruebel\"\u003e\u003ccode\u003e@​gruebel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/362\"\u003enat-n/poethepoet#362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd completion script for PowerShell by \u003ca href=\"https://github.com/NSPC911\"\u003e\u003ccode\u003e@​NSPC911\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/358\"\u003enat-n/poethepoet#358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\nYou must follow \u003ca href=\"https://poethepoet.natn.io/installation.html#enable-tab-completion-for-your-shell\"\u003ethe instructions to (re)install the completion script for your preferred shell environment\u003c/a\u003e to benefit from the enhancements for zsh or PowerShell\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gruebel\"\u003e\u003ccode\u003e@​gruebel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/362\"\u003enat-n/poethepoet#362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NSPC911\"\u003e\u003ccode\u003e@​NSPC911\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/358\"\u003enat-n/poethepoet#358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/nat-n/poethepoet/compare/v0.41.0...v0.42.0\"\u003ehttps://github.com/nat-n/poethepoet/compare/v0.41.0...v0.42.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/nat-n/poethepoet/commit/b1589da0a5f00f5a2a4d2deef1dbdf368d4e0697\"\u003e\u003ccode\u003eb1589da\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/0646d44bf44c8c9ec7bb65c42008283f821fe544\"\u003e\u003ccode\u003e0646d44\u003c/code\u003e\u003c/a\u003e feat: powershell completions (\u003ca href=\"https://redirect.github.com/nat-n/poethepoet/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/56293a485378748e60184c2d1cdd6250d0e65ad4\"\u003e\u003ccode\u003e56293a4\u003c/code\u003e\u003c/a\u003e chore: support Python 3.14 (\u003ca href=\"https://redirect.github.com/nat-n/poethepoet/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/804c675166d9eab6b3ae36ac482d1ec801c662f7\"\u003e\u003ccode\u003e804c675\u003c/code\u003e\u003c/a\u003e Add cache TTL and max hits to zsh completion caching (\u003ca href=\"https://redirect.github.com/nat-n/poethepoet/issues/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/nat-n/poethepoet/compare/v0.41.0...v0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ty` from 0.0.15 to 0.0.18\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/releases\"\u003ety's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.18\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-20.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport classes dynamically created via \u003ccode\u003etype(...)\u003c/code\u003e with cyclic bases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22792\"\u003e#22792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix incorrect types inferred when unpacking mixed tuples (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23437\"\u003e#23437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix stack overflow for self-referential \u003ccode\u003eTypeOf\u003c/code\u003e in annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23407\"\u003e#23407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix several server panics that could occur when computing semantic tokens for the current file (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23403\"\u003e#23403\u003c/a\u003e), \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23398\"\u003e#23398\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23401\"\u003e#23401\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd code folding support (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23393\"\u003e#23393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd warning message when running \u003ccode\u003ety server\u003c/code\u003e interactively (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23416\"\u003e#23416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExclude test-related symbols from non-first-party packages in auto-import completions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23252\"\u003e#23252\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix bug where diagnostics could disappear after opening an external file (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23447\"\u003e#23447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove spurious destination for Go-To Definition on variables defined in a loop (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23391\"\u003e#23391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse the fully qualified name when \u0026quot;baking\u0026quot; an inlay hint into the source code if the scope already contains a variable with the same name as the unqualified name (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23265\"\u003e#23265\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve TypeVars in \u003ccode\u003ecall_signature_details\u003c/code\u003e parameter types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23149\"\u003e#23149\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--output-format\u003c/code\u003e to \u003ccode\u003ety version\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23387\"\u003e#23387\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ereplace-imports-with-any\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23122\"\u003e#23122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport shellexpand for configuration paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23274\"\u003e#23274\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eType checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a new diagnostic to detect invalid class patterns in \u003ccode\u003ematch\u003c/code\u003e statements (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22939\"\u003e#22939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eSelf\u003c/code\u003e in \u003ccode\u003eClassVar\u003c/code\u003e type annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23362\"\u003e#23362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConsider synthesized methods and \u003ccode\u003eClassVar\u003c/code\u003e-qualified declarations when determining whether an abstract method has been overridden in a subclass (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23381\"\u003e#23381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a diagnostic when combining \u003ccode\u003eFinal\u003c/code\u003e and \u003ccode\u003eClassVar\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23365\"\u003e#23365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix return type of \u003ccode\u003eassert_never\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23389\"\u003e#23389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eassert_type\u003c/code\u003e diagnostic messages (\u003ca href=\"https://redirect.gith...\n\n_Description has been truncated_","html_url":"https://github.com/dougborg/katana-openapi-client/pull/279","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dougborg%2Fkatana-openapi-client/issues/279","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/279/packages"}},{"old_version":"0.36.0","new_version":"0.54.0","update_type":"minor","path":null,"pr_created_at":"2026-02-16T08:27:43.000Z","version_change":"0.36.0 → 0.54.0","issue":{"uuid":"3946524733","node_id":"PR_kwDOEWEG887ECOHe","number":2088,"state":"closed","title":"fix(deps-dev): bump datamodel-code-generator[http] from 0.36.0 to 0.54.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-09T08:29:43.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-16T08:27:43.000Z","updated_at":"2026-03-09T08:29:45.000Z","time_to_close":1814520,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"fix(deps-dev)","packages":[{"name":"datamodel-code-generator","old_version":"0.36.0","new_version":"0.54.0","repository_url":null}],"path":null,"ecosystem":"pip"},"body":"Bumps [datamodel-code-generator[http]](https://github.com/koxudaxi/datamodel-code-generator) from 0.36.0 to 0.54.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator[http]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix patternProperties/propertyNames key constraints lost with field_constraints by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2994\"\u003ekoxudaxi/datamodel-code-generator#2994\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator[http]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.54.0\"\u003e0.54.0\u003c/a\u003e - 2026-02-14\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2ea62449515940d2af05e0723f8db2fd1b3cc11e\"\u003e\u003ccode\u003e2ea6244\u003c/code\u003e\u003c/a\u003e Fix incorrect relative imports with --use-exact-imports and --collapse-root-m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/34b7d29a52765b2c6f3da920bc525bf37f0db624\"\u003e\u003ccode\u003e34b7d29\u003c/code\u003e\u003c/a\u003e fix codespeed python version (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3000\"\u003e#3000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f3ef9c619a010ed4a30c2f7f6b514053f251a8e2\"\u003e\u003ccode\u003ef3ef9c6\u003c/code\u003e\u003c/a\u003e Fix merged result in parse_item not passed back to parse_object_fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/501190398d5717a936301f550b61ecec520c8cb7\"\u003e\u003ccode\u003e5011903\u003c/code\u003e\u003c/a\u003e Fix extra underscore on enum members like replace with --capitalise-enum-memb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/907a1a8cec66c4e25ef5dfe2128d131a5a9811f2\"\u003e\u003ccode\u003e907a1a8\u003c/code\u003e\u003c/a\u003e Fix exact imports with module/class name collision (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2998\"\u003e#2998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2b659f001e744e1e95e464ab0d613fae0122bc01\"\u003e\u003ccode\u003e2b659f0\u003c/code\u003e\u003c/a\u003e Fix missing | None for nullable enum literals in TypedDict (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/992af20312420a2d8b8975fb9ee6e22430f5144f\"\u003e\u003ccode\u003e992af20\u003c/code\u003e\u003c/a\u003e Fix type loss when $ref is used with non-standard metadata fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/0f1bc0f41d758cfda02d4438cdbbd3c3b4265102\"\u003e\u003ccode\u003e0f1bc0f\u003c/code\u003e\u003c/a\u003e Fix patternProperties/propertyNames key constraints lost with field_constrain...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/24b576e5e514802f45fbfc39af29f6d53a983e49\"\u003e\u003ccode\u003e24b576e\u003c/code\u003e\u003c/a\u003e Fix missing Field import with multiple aliases on required fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2992\"\u003e#2992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b58970a43c51805241fd93ce54deb23f2391052f\"\u003e\u003ccode\u003eb58970a\u003c/code\u003e\u003c/a\u003e Fix RecursionError in _merge_ref_with_schema for circular $ref (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.36.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=datamodel-code-generator[http]\u0026package-manager=pip\u0026previous-version=0.36.0\u0026new-version=0.54.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/oscal-compass/compliance-trestle/pull/2088","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscal-compass%2Fcompliance-trestle/issues/2088","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2088/packages"}},{"old_version":"0.53.0","new_version":"0.54.0","update_type":"minor","path":null,"pr_created_at":"2026-02-16T04:43:23.000Z","version_change":"0.53.0 → 0.54.0","issue":{"uuid":"3945846718","node_id":"PR_kwDOLv-sO87EAAsV","number":367,"state":"open","title":"Bump datamodel-code-generator from 0.53.0 to 0.54.0","user":"dependabot[bot]","labels":["dependencies","maintenance"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-16T04:43:23.000Z","updated_at":"2026-02-16T04:50:58.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"datamodel-code-generator","old_version":"0.53.0","new_version":"0.54.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) from 0.53.0 to 0.54.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix patternProperties/propertyNames key constraints lost with field_constraints by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2994\"\u003ekoxudaxi/datamodel-code-generator#2994\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.54.0\"\u003e0.54.0\u003c/a\u003e - 2026-02-14\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2ea62449515940d2af05e0723f8db2fd1b3cc11e\"\u003e\u003ccode\u003e2ea6244\u003c/code\u003e\u003c/a\u003e Fix incorrect relative imports with --use-exact-imports and --collapse-root-m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/34b7d29a52765b2c6f3da920bc525bf37f0db624\"\u003e\u003ccode\u003e34b7d29\u003c/code\u003e\u003c/a\u003e fix codespeed python version (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3000\"\u003e#3000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f3ef9c619a010ed4a30c2f7f6b514053f251a8e2\"\u003e\u003ccode\u003ef3ef9c6\u003c/code\u003e\u003c/a\u003e Fix merged result in parse_item not passed back to parse_object_fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/501190398d5717a936301f550b61ecec520c8cb7\"\u003e\u003ccode\u003e5011903\u003c/code\u003e\u003c/a\u003e Fix extra underscore on enum members like replace with --capitalise-enum-memb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/907a1a8cec66c4e25ef5dfe2128d131a5a9811f2\"\u003e\u003ccode\u003e907a1a8\u003c/code\u003e\u003c/a\u003e Fix exact imports with module/class name collision (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2998\"\u003e#2998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2b659f001e744e1e95e464ab0d613fae0122bc01\"\u003e\u003ccode\u003e2b659f0\u003c/code\u003e\u003c/a\u003e Fix missing | None for nullable enum literals in TypedDict (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/992af20312420a2d8b8975fb9ee6e22430f5144f\"\u003e\u003ccode\u003e992af20\u003c/code\u003e\u003c/a\u003e Fix type loss when $ref is used with non-standard metadata fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/0f1bc0f41d758cfda02d4438cdbbd3c3b4265102\"\u003e\u003ccode\u003e0f1bc0f\u003c/code\u003e\u003c/a\u003e Fix patternProperties/propertyNames key constraints lost with field_constrain...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/24b576e5e514802f45fbfc39af29f6d53a983e49\"\u003e\u003ccode\u003e24b576e\u003c/code\u003e\u003c/a\u003e Fix missing Field import with multiple aliases on required fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2992\"\u003e#2992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b58970a43c51805241fd93ce54deb23f2391052f\"\u003e\u003ccode\u003eb58970a\u003c/code\u003e\u003c/a\u003e Fix RecursionError in _merge_ref_with_schema for circular $ref (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.53.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=datamodel-code-generator\u0026package-manager=pip\u0026previous-version=0.53.0\u0026new-version=0.54.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ansys/pyhps-data-transfer/pull/367","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansys%2Fpyhps-data-transfer/issues/367","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/367/packages"}},{"old_version":"0.53.0","new_version":"0.54.0","update_type":"minor","path":null,"pr_created_at":"2026-02-15T20:32:24.000Z","version_change":"0.53.0 → 0.54.0","issue":{"uuid":"3944862862","node_id":"PR_kwDOFjuGLM7D83E7","number":426,"state":"closed","title":"Build: Bump datamodel-code-generator from 0.53.0 to 0.54.0","user":"dependabot[bot]","labels":["dependencies","PYTHON","OPENAPI"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-17T07:01:15.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-15T20:32:24.000Z","updated_at":"2026-02-17T07:01:16.000Z","time_to_close":124131,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build: Bump","packages":[{"name":"datamodel-code-generator","old_version":"0.53.0","new_version":"0.54.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) from 0.53.0 to 0.54.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix patternProperties/propertyNames key constraints lost with field_constraints by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2994\"\u003ekoxudaxi/datamodel-code-generator#2994\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.54.0\"\u003e0.54.0\u003c/a\u003e - 2026-02-14\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2ea62449515940d2af05e0723f8db2fd1b3cc11e\"\u003e\u003ccode\u003e2ea6244\u003c/code\u003e\u003c/a\u003e Fix incorrect relative imports with --use-exact-imports and --collapse-root-m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/34b7d29a52765b2c6f3da920bc525bf37f0db624\"\u003e\u003ccode\u003e34b7d29\u003c/code\u003e\u003c/a\u003e fix codespeed python version (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3000\"\u003e#3000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f3ef9c619a010ed4a30c2f7f6b514053f251a8e2\"\u003e\u003ccode\u003ef3ef9c6\u003c/code\u003e\u003c/a\u003e Fix merged result in parse_item not passed back to parse_object_fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/501190398d5717a936301f550b61ecec520c8cb7\"\u003e\u003ccode\u003e5011903\u003c/code\u003e\u003c/a\u003e Fix extra underscore on enum members like replace with --capitalise-enum-memb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/907a1a8cec66c4e25ef5dfe2128d131a5a9811f2\"\u003e\u003ccode\u003e907a1a8\u003c/code\u003e\u003c/a\u003e Fix exact imports with module/class name collision (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2998\"\u003e#2998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2b659f001e744e1e95e464ab0d613fae0122bc01\"\u003e\u003ccode\u003e2b659f0\u003c/code\u003e\u003c/a\u003e Fix missing | None for nullable enum literals in TypedDict (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/992af20312420a2d8b8975fb9ee6e22430f5144f\"\u003e\u003ccode\u003e992af20\u003c/code\u003e\u003c/a\u003e Fix type loss when $ref is used with non-standard metadata fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/0f1bc0f41d758cfda02d4438cdbbd3c3b4265102\"\u003e\u003ccode\u003e0f1bc0f\u003c/code\u003e\u003c/a\u003e Fix patternProperties/propertyNames key constraints lost with field_constrain...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/24b576e5e514802f45fbfc39af29f6d53a983e49\"\u003e\u003ccode\u003e24b576e\u003c/code\u003e\u003c/a\u003e Fix missing Field import with multiple aliases on required fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2992\"\u003e#2992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b58970a43c51805241fd93ce54deb23f2391052f\"\u003e\u003ccode\u003eb58970a\u003c/code\u003e\u003c/a\u003e Fix RecursionError in _merge_ref_with_schema for circular $ref (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.53.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=datamodel-code-generator\u0026package-manager=pip\u0026previous-version=0.53.0\u0026new-version=0.54.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/wangjunyou/iceberg/pull/426","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/wangjunyou%2Ficeberg/issues/426","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/426/packages"}},{"old_version":"0.53.0","new_version":"0.54.0","update_type":"minor","path":null,"pr_created_at":"2026-02-15T14:32:24.000Z","version_change":"0.53.0 → 0.54.0","issue":{"uuid":"3944200204","node_id":"PR_kwDOGp6vrM7D62J7","number":474,"state":"closed","title":"Build: Bump datamodel-code-generator from 0.53.0 to 0.54.0","user":"dependabot[bot]","labels":["dependencies","PYTHON","OPENAPI"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-02-18T18:03:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-15T14:32:24.000Z","updated_at":"2026-02-18T18:03:39.000Z","time_to_close":271873,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build: Bump","packages":[{"name":"datamodel-code-generator","old_version":"0.53.0","new_version":"0.54.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) from 0.53.0 to 0.54.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix patternProperties/propertyNames key constraints lost with field_constraints by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2994\"\u003ekoxudaxi/datamodel-code-generator#2994\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.54.0\"\u003e0.54.0\u003c/a\u003e - 2026-02-14\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2ea62449515940d2af05e0723f8db2fd1b3cc11e\"\u003e\u003ccode\u003e2ea6244\u003c/code\u003e\u003c/a\u003e Fix incorrect relative imports with --use-exact-imports and --collapse-root-m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/34b7d29a52765b2c6f3da920bc525bf37f0db624\"\u003e\u003ccode\u003e34b7d29\u003c/code\u003e\u003c/a\u003e fix codespeed python version (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3000\"\u003e#3000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f3ef9c619a010ed4a30c2f7f6b514053f251a8e2\"\u003e\u003ccode\u003ef3ef9c6\u003c/code\u003e\u003c/a\u003e Fix merged result in parse_item not passed back to parse_object_fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/501190398d5717a936301f550b61ecec520c8cb7\"\u003e\u003ccode\u003e5011903\u003c/code\u003e\u003c/a\u003e Fix extra underscore on enum members like replace with --capitalise-enum-memb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/907a1a8cec66c4e25ef5dfe2128d131a5a9811f2\"\u003e\u003ccode\u003e907a1a8\u003c/code\u003e\u003c/a\u003e Fix exact imports with module/class name collision (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2998\"\u003e#2998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2b659f001e744e1e95e464ab0d613fae0122bc01\"\u003e\u003ccode\u003e2b659f0\u003c/code\u003e\u003c/a\u003e Fix missing | None for nullable enum literals in TypedDict (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/992af20312420a2d8b8975fb9ee6e22430f5144f\"\u003e\u003ccode\u003e992af20\u003c/code\u003e\u003c/a\u003e Fix type loss when $ref is used with non-standard metadata fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/0f1bc0f41d758cfda02d4438cdbbd3c3b4265102\"\u003e\u003ccode\u003e0f1bc0f\u003c/code\u003e\u003c/a\u003e Fix patternProperties/propertyNames key constraints lost with field_constrain...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/24b576e5e514802f45fbfc39af29f6d53a983e49\"\u003e\u003ccode\u003e24b576e\u003c/code\u003e\u003c/a\u003e Fix missing Field import with multiple aliases on required fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2992\"\u003e#2992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b58970a43c51805241fd93ce54deb23f2391052f\"\u003e\u003ccode\u003eb58970a\u003c/code\u003e\u003c/a\u003e Fix RecursionError in _merge_ref_with_schema for circular $ref (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.53.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=datamodel-code-generator\u0026package-manager=pip\u0026previous-version=0.53.0\u0026new-version=0.54.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/amogh-jahagirdar/iceberg/pull/474","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/amogh-jahagirdar%2Ficeberg/issues/474","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/474/packages"}},{"old_version":"0.53.0","new_version":"0.54.0","update_type":"minor","path":null,"pr_created_at":"2026-02-15T09:12:30.000Z","version_change":"0.53.0 → 0.54.0","issue":{"uuid":"3943587274","node_id":"PR_kwDOFn2Qr87D40u3","number":435,"state":"closed","title":"Build: Bump datamodel-code-generator from 0.53.0 to 0.54.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-08T09:12:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-15T09:12:30.000Z","updated_at":"2026-03-08T09:12:43.000Z","time_to_close":1814412,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Build: Bump","packages":[{"name":"datamodel-code-generator","old_version":"0.53.0","new_version":"0.54.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"}],"path":null,"ecosystem":"pip"},"body":"Bumps [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) from 0.53.0 to 0.54.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.54.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix patternProperties/propertyNames key constraints lost with field_constraints by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2994\"\u003ekoxudaxi/datamodel-code-generator#2994\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.54.0\"\u003e0.54.0\u003c/a\u003e - 2026-02-14\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnum member names from oneOf/anyOf const constructs now use \u003ccode\u003etitle\u003c/code\u003e field when provided - Previously, when creating enums from \u003ccode\u003eoneOf\u003c/code\u003e/\u003ccode\u003eanyOf\u003c/code\u003e constructs with \u003ccode\u003econst\u003c/code\u003e values, the \u003ccode\u003etitle\u003c/code\u003e field was incorrectly ignored and enum member names were generated using the pattern \u003ccode\u003e{type}_{value}\u003c/code\u003e (e.g., \u003ccode\u003einteger_200\u003c/code\u003e). Now, when a \u003ccode\u003etitle\u003c/code\u003e is specified, it is correctly used as the enum member name (e.g., \u003ccode\u003eOK\u003c/code\u003e instead of \u003ccode\u003einteger_200\u003c/code\u003e). Users who have code depending on the previously generated enum member names will need to update their references. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2975\"\u003e#2975\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    integer_200 = 200\n    integer_404 = 404\n    integer_500 = 500\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eclass StatusCode(IntEnum):\n    OK = 200\n    Not_Found = 404\n    Server_Error = 500\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eField names matching Python builtins are now automatically sanitized - When a field name matches a Python builtin type AND the field's type annotation uses that same builtin (e.g., \u003ccode\u003eint: int\u003c/code\u003e, \u003ccode\u003elist: list[str]\u003c/code\u003e, \u003ccode\u003edict: dict[str, Any]\u003c/code\u003e), the field is now renamed with a trailing underscore (e.g., \u003ccode\u003eint_\u003c/code\u003e) and an alias is added to preserve the original JSON field name. This prevents Python syntax issues and shadowing of builtin types. Previously, such fields were generated as-is (e.g., \u003ccode\u003eint: int | None = None\u003c/code\u003e), which could cause code that shadows Python builtins. After this change, the same field becomes \u003ccode\u003eint_: int | None = Field(None, alias='int')\u003c/code\u003e. This affects fields named: \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003efloat\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003estr\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, \u003ccode\u003elist\u003c/code\u003e, \u003ccode\u003edict\u003c/code\u003e, \u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003efrozenset\u003c/code\u003e, \u003ccode\u003etuple\u003c/code\u003e, and other Python builtins when their type annotation uses the matching builtin type. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2968\"\u003e#2968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e$ref with non-standard metadata fields no longer triggers schema merging - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e was combined with non-standard fields like \u003ccode\u003emarkdownDescription\u003c/code\u003e, \u003ccode\u003eif\u003c/code\u003e, \u003ccode\u003ethen\u003c/code\u003e, \u003ccode\u003eelse\u003c/code\u003e, or other extras not in the whitelist, the generator would merge schemas and potentially create duplicate models (e.g., \u003ccode\u003eUserWithExtra\u003c/code\u003e alongside \u003ccode\u003eUser\u003c/code\u003e). Now, only whitelisted schema-affecting extras (currently just \u003ccode\u003econst\u003c/code\u003e) trigger merging. This means:\n\u003cul\u003e\n\u003cli\u003eFewer merged/duplicate models will be generated\u003c/li\u003e\n\u003cli\u003eReferences are preserved directly instead of being expanded\u003c/li\u003e\n\u003cli\u003eField types may change from inline merged types to direct references\nExample schema:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"yaml\"\u003e\u003ccode\u003eproperties:\n  user:\n    $ref: \u0026quot;#/definitions/User\u0026quot;\n    nullable: true\n    markdownDescription: \u0026quot;A user object\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\nBefore: Could generate a merged \u003ccode\u003eUserWithMarkdownDescription\u003c/code\u003e model\nAfter: Directly uses \u003ccode\u003eUser | None\u003c/code\u003e reference (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnum member names no longer get underscore suffix with \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e - Previously, enum values like \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003eindex\u003c/code\u003e would generate \u003ccode\u003eREPLACE_\u003c/code\u003e, \u003ccode\u003eCOUNT_\u003c/code\u003e, \u003ccode\u003eINDEX_\u003c/code\u003e when using \u003ccode\u003e--capitalise-enum-members\u003c/code\u003e. Now they correctly generate \u003ccode\u003eREPLACE\u003c/code\u003e, \u003ccode\u003eCOUNT\u003c/code\u003e, \u003ccode\u003eINDEX\u003c/code\u003e. The underscore suffix is only added when \u003ccode\u003e--use-subclass-enum\u003c/code\u003e is also used AND the lowercase name conflicts with builtin type methods. Users relying on the previous naming (e.g., referencing \u003ccode\u003eMyEnum.REPLACE_\u003c/code\u003e in code) will need to update to use the new names without trailing underscores. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2999\"\u003e#2999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFields using \u003ccode\u003e$ref\u003c/code\u003e with inline keywords now include merged metadata - When a schema property uses \u003ccode\u003e$ref\u003c/code\u003e alongside additional keywords (e.g., \u003ccode\u003econst\u003c/code\u003e, \u003ccode\u003eenum\u003c/code\u003e, \u003ccode\u003ereadOnly\u003c/code\u003e, constraints), the generator now correctly merges metadata (description, title, constraints, defaults, readonly/writeOnly) from the referenced schema into the field definition. Previously, this metadata was lost. For example, a field like \u003ccode\u003etype: Type\u003c/code\u003e may now become \u003ccode\u003etype: Type = Field(..., description='Type of this object.', title='type')\u003c/code\u003e when the referenced schema includes those attributes. This also affects \u003ccode\u003eadditionalProperties\u003c/code\u003e and OpenAPI parameter schemas. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor ruff check+format to use sequential subprocess calls by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2967\"\u003ekoxudaxi/datamodel-code-generator#2967\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix title ignored when creating enums from merging \u003ccode\u003eallOf\u003c/code\u003e's or \u003ccode\u003eanyOf\u003c/code\u003e's objects by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2975\"\u003ekoxudaxi/datamodel-code-generator#2975\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix aliased imports not applied to base classes and non-matching fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2981\"\u003ekoxudaxi/datamodel-code-generator#2981\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix handling of falsy default values for enums in set-default-enum-member option by \u003ca href=\"https://github.com/kkinugasa\"\u003e\u003ccode\u003e@​kkinugasa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2977\"\u003ekoxudaxi/datamodel-code-generator#2977\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use_union_operator with Python builtin type field names by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2968\"\u003ekoxudaxi/datamodel-code-generator#2968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport $recursiveRef/$dynamicRef in JSON Schema and OpenAPI by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2982\"\u003ekoxudaxi/datamodel-code-generator#2982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAddress review feedback for recursive/dynamic ref support by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2985\"\u003ekoxudaxi/datamodel-code-generator#2985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError in _merge_ref_with_schema for circular $ref by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2983\"\u003ekoxudaxi/datamodel-code-generator#2983\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing Field import with multiple aliases on required fields by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/2992\"\u003ekoxudaxi/datamodel-code-generator#2992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2ea62449515940d2af05e0723f8db2fd1b3cc11e\"\u003e\u003ccode\u003e2ea6244\u003c/code\u003e\u003c/a\u003e Fix incorrect relative imports with --use-exact-imports and --collapse-root-m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/34b7d29a52765b2c6f3da920bc525bf37f0db624\"\u003e\u003ccode\u003e34b7d29\u003c/code\u003e\u003c/a\u003e fix codespeed python version (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3000\"\u003e#3000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f3ef9c619a010ed4a30c2f7f6b514053f251a8e2\"\u003e\u003ccode\u003ef3ef9c6\u003c/code\u003e\u003c/a\u003e Fix merged result in parse_item not passed back to parse_object_fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2997\"\u003e#2997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/501190398d5717a936301f550b61ecec520c8cb7\"\u003e\u003ccode\u003e5011903\u003c/code\u003e\u003c/a\u003e Fix extra underscore on enum members like replace with --capitalise-enum-memb...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/907a1a8cec66c4e25ef5dfe2128d131a5a9811f2\"\u003e\u003ccode\u003e907a1a8\u003c/code\u003e\u003c/a\u003e Fix exact imports with module/class name collision (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2998\"\u003e#2998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/2b659f001e744e1e95e464ab0d613fae0122bc01\"\u003e\u003ccode\u003e2b659f0\u003c/code\u003e\u003c/a\u003e Fix missing | None for nullable enum literals in TypedDict (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2991\"\u003e#2991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/992af20312420a2d8b8975fb9ee6e22430f5144f\"\u003e\u003ccode\u003e992af20\u003c/code\u003e\u003c/a\u003e Fix type loss when $ref is used with non-standard metadata fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2993\"\u003e#2993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/0f1bc0f41d758cfda02d4438cdbbd3c3b4265102\"\u003e\u003ccode\u003e0f1bc0f\u003c/code\u003e\u003c/a\u003e Fix patternProperties/propertyNames key constraints lost with field_constrain...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/24b576e5e514802f45fbfc39af29f6d53a983e49\"\u003e\u003ccode\u003e24b576e\u003c/code\u003e\u003c/a\u003e Fix missing Field import with multiple aliases on required fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2992\"\u003e#2992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/b58970a43c51805241fd93ce54deb23f2391052f\"\u003e\u003ccode\u003eb58970a\u003c/code\u003e\u003c/a\u003e Fix RecursionError in _merge_ref_with_schema for circular $ref (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/2983\"\u003e#2983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.53.0...0.54.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=datamodel-code-generator\u0026package-manager=pip\u0026previous-version=0.53.0\u0026new-version=0.54.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/bryanck/iceberg/pull/435","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryanck%2Ficeberg/issues/435","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/435/packages"}}]}