Skip to content

Releases: openapi-generators/openapi-python-client

0.24.1 (2025-03-15)

15 Mar 19:19
4262321
Compare
Choose a tag to compare

Features

  • allow Ruff to 0.10 (#1220)
  • allow Ruff 0.11 (#1222)
  • Allow any Mapping in generated from_dict functions (#1211)

Fixes

Always parse $ref as a reference

If additional attributes were included with a $ref (for example title or description), the property could be
interpreted as a new type instead of a reference, usually resulting in Any in the generated code.
Now, any sibling properties to $ref will properly be ignored, as per the OpenAPI specification.

Thanks @nkrishnaswami!

0.24.0 (2025-03-03)

08 Mar 19:59
d46544c
Compare
Choose a tag to compare

Breaking Changes

Support $ref in responses

Previously, using a $ref to define a response was ignored, the code to call the endpoint was still generated, but
the response would not be parsed. Now, responses defined with $ref will be used to generate the response model, which
will parse the response at runtime.

If a $ref is incorrect or uses a feature that is not supported by the generator, these endpoints will start failing to
generate.

Features

Make config available in custom templates

The configuration options object is now exposed as a variable called config in Jinja2 templates.

Add docstrings_on_attributes config setting

Setting this option to true changes the docstring behavior in model classes: for any attribute that have a non-empty description, instead of describing the attribute as part of the class's docstring, the description will appear in an individual docstring for that attribute.

0.23.1 (2025-01-13)

22 Jan 16:00
ca3a42a
Compare
Choose a tag to compare

Features

0.23.0 (2024-12-24)

24 Dec 23:49
99ae3a9
Compare
Choose a tag to compare

Breaking Changes

Delete fewer files with --overwrite

--overwrite will no longer delete the entire output directory before regenerating. Instead, it will only delete
specific, known directories within that directory. Right now, that is only the generated models and api directories.

Other generated files, like README.md, will be overwritten. Extra files and directories outside of those listed above
will be left untouched, so you can any extra modules or files around while still updating pyproject.toml automatically.

Closes #1105.

Features

  • Support httpx 0.28 (#1172)

Add generate_all_tags config option

You can now, optionally, generate duplicate endpoint functions/modules using every tag for an endpoint,
not just the first one, by setting generate_all_tags: true in your configuration file.

Fixes

  • Support Typer 0.14 and 0.15 (#1173)

Fix minimum attrs version

The minimum attrs dependency version was incorrectly set to 21.3.0. This has been corrected to 22.2.0, the minimum
supported version since openapi-python-client 0.19.1.

Closes #1084, thanks @astralblue!

Fix compatibility with Pydantic 2.10+

#1176 by @Viicos

Set defer_build to models that we know will fail to build, and call model_rebuild
in the __init__.py file.

0.22.0 (2024-11-23)

09 Dec 17:45
72f3f5a
Compare
Choose a tag to compare

Breaking Changes

Drop support for Python 3.8

Python 3.8 is no longer supported. "New" 3.9 syntax, like generics on builtin collections, is used both in the generator
and the generated code.

type is now a reserved field name

Because type is used in type annotations now, it is no longer a valid field name. Fields which were previously named
type will be renamed to type_.

Features

  • Support Ruff 0.8 (#1169)

0.21.7 (2024-10-28)

23 Nov 01:38
b6c66ca
Compare
Choose a tag to compare

Fixes

  • allow required fields list to be specified as empty (#651) (#1149)
  • import cast for required const properties, since it's used in the template (#1153)

0.21.6 (2024-10-20)

20 Oct 23:41
4c019d9
Compare
Choose a tag to compare

Features

  • update Ruff to >=0.2,<0.8 (#1137)
  • Add UUID string format. Thanks @estyrke! (#1140)
  • Support OpenAPI 3.1 prefixItems property for arrays. Thanks @estyrke! (#1141)

Add literal_enums config setting

Instead of the default Enum classes for enums, you can now generate Literal sets wherever enum appears in the OpenAPI spec by setting literal_enums: true in your config file.

literal_enums: true

Thanks to @emosenkis for PR #1114 closes #587, #725, #1076, and probably many more.
Thanks also to @eli-bl, @expobrain, @theorm, @chrisguillory, and anyone else who helped getting to this design!

Fixes

  • Typo in docstring (#1128)

Use literal value instead of HTTPStatus enum when checking response statuses

Python 3.13 renamed some of the HTTPStatus enum members, which means clients generated with Python 3.13 may not work
with older versions of Python. This change stops using the HTTPStatus enum directly when checking response statuses.

Statuses will still be checked for validity at generation time, and transformed into HTTPStatus after being checked
at runtime.

This may cause some linters to complain.

0.21.5 (2024-09-07)

07 Sep 22:09
90e0954
Compare
Choose a tag to compare

Features

Improved property-merging behavior with allOf

When using allOf to extend a base object type, openapi-python-client is now able to handle some kinds of modifications to an existing property that would have previously caused an error:

  • Overriding attributes that do not affect validation, such as description.
  • Combining properties that this generator ignores, like maxLength or pattern.
  • Combining a generic numeric type with int (resulting in int).
  • Adding a format to a string.
  • Combining any with a specific type (resulting in that specific type).
  • Adding or overriding a default

Note

pattern and max_length are no longer fields on StringProperty, which may impact custom templates.

This also fixes a bug where properties of inline objects (as opposed to references) were not using the
merge logic, but were simply overwriting previous definitions of the same property.

Fixes

  • Allow default values for properties of Any type

Produce valid code for an object that has no properties at all

Fixed by PR #1109. Thanks @eli-bl!

0.21.4 (2024-08-25)

25 Aug 06:41
04b30a9
Compare
Choose a tag to compare

Fixes

Correctly resolve references to a type that is itself just a single allOf reference

PR #1103 fixed issue #1091. Thanks @eli-bl!

Allow OpenAPI 3.1-style exclusiveMinimum and exclusiveMaximum

Fixed by PR #1092. Thanks @mikkelam!

Add missing cast import when using const

Fixed by PR #1072. Thanks @dorcohe!

Support const booleans and floats

Fixed in PR #1086. Thanks @flxdot!

0.21.3 (2024-08-18)

18 Aug 22:02
aa9f280
Compare
Choose a tag to compare

Features

  • update Ruff to >=0.2,<0.7 (#1097)