Skip to content

Commit 61b6c54

Browse files
Release 0.25.0 (#1267)
> [!IMPORTANT] > Merging this pull request will create this release ## Breaking Changes - Raise minimum httpx version to 0.23 ### Removed ability to set an array as a multipart body Previously, when defining a request's body as `multipart/form-data`, the generator would attempt to generate code for both `object` schemas and `array` schemas. However, most arrays could not generate valid multipart bodies, as there would be no field names (required to set the `Content-Disposition` headers). The code to generate any body for `multipart/form-data` where the schema is `array` has been removed, and any such bodies will be skipped. This is not _expected_ to be a breaking change in practice, since the code generated would probably never work. If you have a use-case for `multipart/form-data` with an `array` schema, please [open a new discussion](https://github.com/openapi-generators/openapi-python-client/discussions) with an example schema and the desired functional Python code. ### Change default multipart array serialization Previously, any arrays of values in a `multipart/form-data` body would be serialized as an `application/json` part. This matches the default behavior specified by OpenAPI and supports arrays of files (`binary` format strings). However, because this generator doesn't yet support specifying `encoding` per property, this may result in now-incorrect code when the encoding _was_ explicitly set to `application/json` for arrays of scalar values. PR #938 fixes #692. Thanks @micha91 for the fix, @ratgen and @FabianSchurig for testing, and @davidlizeng for the original report... many years ago 😅. Co-authored-by: knope-bot[bot] <152252888+knope-bot[bot]@users.noreply.github.com>
1 parent 5c51ae4 commit 61b6c54

5 files changed

+28
-33
lines changed

.changeset/raise_minimum_httpx_version_to_023.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/removed_ability_to_set_an_array_as_a_multipart_body.md

Lines changed: 0 additions & 15 deletions
This file was deleted.

.changeset/repeat_array_fields_in_multipart_instead_of_serializing_as_json.md

Lines changed: 0 additions & 12 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,33 @@ Programmatic usage of this project (e.g., importing it as a Python module) and t
1313

1414
The 0.x prefix used in versions for this project is to indicate that breaking changes are expected frequently (several times a year). Breaking changes will increment the minor number, all other changes will increment the patch number. You can track the progress toward 1.0 [here](https://github.com/openapi-generators/openapi-python-client/projects/2).
1515

16+
## 0.25.0 (2025-06-06)
17+
18+
### Breaking Changes
19+
20+
- Raise minimum httpx version to 0.23
21+
22+
#### Removed ability to set an array as a multipart body
23+
24+
Previously, when defining a request's body as `multipart/form-data`, the generator would attempt to generate code
25+
for both `object` schemas and `array` schemas. However, most arrays could not generate valid multipart bodies, as
26+
there would be no field names (required to set the `Content-Disposition` headers).
27+
28+
The code to generate any body for `multipart/form-data` where the schema is `array` has been removed, and any such
29+
bodies will be skipped. This is not _expected_ to be a breaking change in practice, since the code generated would
30+
probably never work.
31+
32+
If you have a use-case for `multipart/form-data` with an `array` schema, please [open a new discussion](https://github.com/openapi-generators/openapi-python-client/discussions) with an example schema and the desired functional Python code.
33+
34+
#### Change default multipart array serialization
35+
36+
Previously, any arrays of values in a `multipart/form-data` body would be serialized as an `application/json` part.
37+
This matches the default behavior specified by OpenAPI and supports arrays of files (`binary` format strings).
38+
However, because this generator doesn't yet support specifying `encoding` per property, this may result in
39+
now-incorrect code when the encoding _was_ explicitly set to `application/json` for arrays of scalar values.
40+
41+
PR #938 fixes #692. Thanks @micha91 for the fix, @ratgen and @FabianSchurig for testing, and @davidlizeng for the original report... many years ago 😅.
42+
1643
## 0.24.3 (2025-03-31)
1744

1845
### Features

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ dependencies = [
1818
"typing-extensions>=4.8.0,<5.0.0",
1919
]
2020
name = "openapi-python-client"
21-
version = "0.24.3"
21+
version = "0.25.0"
2222
description = "Generate modern Python clients from OpenAPI"
2323
keywords = [
2424
"OpenAPI",

0 commit comments

Comments
 (0)