Skip to content

0.4.0 - 2020-05-30

Compare
Choose a tag to compare
@dbanty dbanty released this 30 May 21:36

Breaking Changes

  • Classes generated to be included within lists will now be named like Item. For example, if a property named "statuses" is an array of enum values, previously the Enum class declared would be called "Statuses". Now it will be called "StatusesItem". If a "title" attribute was used in the OpenAPI document, that should still be respected and used instead of the generated name. You can restore previous names by adding "StatusesItem" to the class_overrides section of a config file.
  • Clients now require httpx ^0.13.0 (up from ^0.12.1). See httpx release notes for details.

Additions

  • Support for binary format strings (file payloads)
  • Support for multipart/form bodies
  • Support for any supported property within a list (array), including other lists.
  • Support for Union types ("anyOf" in OpenAPI document)
  • Support for more basic response types (integer, number, boolean)
  • Support for duplicate enums. Instead of erroring, enums with the same name (title) but differing values will have a number appended to the end. So if you have two conflicting enums named MyEnum, one of them will now be named MyEnum1. Note that the order in which these are processed and therefore named is entirely dependent on the order they are read from the OpenAPI document, so changes to the document could result in swapping the names of conflicting Enums.

Changes

  • The way most imports are handled was changed which should lead to fewer unused imports in generated files.
  • Better error messages
    • Most error messages will contain some useful information about why it failed instead of a stack trace
    • Client will still be generated if there are recoverable errors, excluding endpoints that had those errors
  • Output from isort and black when generating will now be suppressed

Fixes

  • Defaults within models dataclasses for Dict or List properties will now be properly declared as a field with the default_factory parameter to prevent errors related to mutable defaults.