0.6.0-alpha.1
Pre-release
Pre-release
Breaking Changes
- Reorganized api calls in generated clients.
async_api
will no longer be generated. Each path operation will now have it's own module under its tag. For example, if there was a generated functionapi.my_tag.my_function()
it is replaced withapi.my_tag.my_function.sync()
. The async version can be called withasyncio()
instead ofsync()
. (#167) - Removed support for mutable default values (e.g. dicts, lists). They may be added back in a future version given enough demand, but the existing implementation was not up to this project's standards. (#170)
- Removed generated
errors
module (and theApiResponseError
therein). Instead of raising an exception on failure, thesync()
andasyncio()
functions for a path operation will returnNone
. This means all return types are nowOptional
, so mypy will require you to handle potential errors (or explicitly ignore them). - Moved
models.types
generated module up a level, so justtypes
. Client
andAuthenticatedClient
are now declared using theattrs
package instead of builtindataclass
Additions
- Every generated API module will have a
sync_detailed()
andasyncio_detailed()
function which work like their non-detailed counterparts, but return atypes.Response[T]
instead of anOptional[T]
(where T is the parsed body type).types.Response
containsstatus_code
,content
(bytes of returned content),headers
, andparsed
(the parsed return type you would get from the non-detailed function). (#115) - It's now possible to include custom headers and cookies in requests, as well as set a custom timeout. This can be done either by directly setting those parameters on a
Client
(e.g.my_client.headers = {"Header": "Value"}
) or using a fluid api (e.g.my_endpoint.sync(my_client.with_cookies({"MyCookie": "cookie"}).with_timeout(10.0))
). - Unsupported content types or no responses at all will no longer result in an endpoint being completely skipped. Instead, only the
detailed
versions of the endpoint will be generated, where the resultingResponse.parsed
is alwaysNone
. (#141)
Changes
- The format of any errors/warnings has been spaced out a bit.