This repository was archived by the owner on Aug 5, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Update dependency openapi-python-client to v0.21.2 #8
Open
renovate
wants to merge
1
commit into
main
Choose a base branch
from
renovate/openapi-python-client-0.x
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2dafbd3
to
870fbd4
Compare
870fbd4
to
0f35c58
Compare
0f35c58
to
bc819a6
Compare
bc819a6
to
77f8b63
Compare
77f8b63
to
134ad02
Compare
134ad02
to
55a8b5d
Compare
55a8b5d
to
1369496
Compare
1369496
to
64a7739
Compare
64a7739
to
2a3b7c5
Compare
2a3b7c5
to
4f181c2
Compare
4f181c2
to
ed23316
Compare
ed23316
to
83e6bca
Compare
83e6bca
to
6cb375a
Compare
6cb375a
to
526df43
Compare
526df43
to
c0c7fb5
Compare
c0c7fb5
to
2dfc3f7
Compare
2dfc3f7
to
3b2ed1e
Compare
3b2ed1e
to
12178c3
Compare
12178c3
to
1725d19
Compare
Signed-off-by: Renovate Bot <bot@renovateapp.com>
1725d19
to
a41536d
Compare
# for free
to subscribe to this conversation on GitHub.
Already have an account?
#.
Labels
None yet
0 participants
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==0.11.5
->==0.21.2
Release Notes
openapi-generators/openapi-python-client (openapi-python-client)
v0.21.2
Compare Source
Features
v0.21.1
Compare Source
Features
Support request body refs
You can now define and reuse bodies via refs, with a document like this:
Thanks to @kigawas and @supermihi for initial implementations and @RockyMM for the initial request.
Closes #633, closes #664, resolves #595.
Fixes
v0.21.0
Compare Source
Breaking Changes
Removed the
update
commandThe
update
command is no more, you can (mostly) replace its usage with some new flags on thegenerate
command.If you had a package named
my-api-client
in the current working directory, theupdate
command previously would update themy_api_client
module within it. You can now almost perfectly replicate this behavior usingopenapi-python-client generate --meta=none --output-path=my-api-client/my_api_client --overwrite
.The only difference is that
my-api-client
would have runpost_hooks
in themy-api-client
directory,but
generate
will runpost_hooks
in theoutput-path
directory.Alternatively, you can now also run
openapi-python-client generate --meta=<your-meta-type> --overwrite
to regeneratethe entire client, if you don't care about keeping any changes you've made to the generated client.
Please comment on discussion #824
(or a new discussion, as appropriate) to aid in designing future features that fill any gaps this leaves for you.
Features
Added an
--output-path
option togenerate
Rather than changing directories before running
generate
you can now specify an output directory with--output-path
.Note that the project name will not be appended to the
--output-path
, whatever path you specify is where thegenerated code will be placed.
Added an
--overwrite
flag togenerate
You can now tell
openapi-python-client
to overwrite an existing directory, rather than deleting it yourself beforerunning
generate
.v0.20.0
Compare Source
Breaking Changes
const
values in responses are now validated at runtimePrior to this version,
const
values returned from servers were assumed to always be correct. Now, if a server returnsan unexpected value, the client will raise a
ValueError
. This should enable better usage withoneOf
.PR #1024. Thanks @peter-greenatlas!
Switch YAML parsing to 1.2
This change switches the YAML parsing library to
ruamel.yaml
which follows the YAML 1.2 specification.There are breaking changes from YAML 1.1 to 1.2,
though they will not affect most use cases.
PR #1042 fixes #1041. Thanks @rtaycher!
Features
Fixes
Fix nullable and required properties in multipart bodies
Fixes #926.
v0.19.1
Compare Source
Features
Add config option to override content types
You can now define a
content_type_overrides
field in yourconfig.yml
:This allows
openapi-python-client
to generate code for content types it doesn't recognize.PR #1010 closes #810. Thanks @gaarutyunov!
Fixes
Add aliases to
Client
for pyrightThis should resolve incompatibilities between the generated
Client
class and the pyright type checker.PR #1009 closes #909. Thanks @patrick91!
v0.19.0
Compare Source
Breaking Changes
Update PDM metadata syntax
Metadata generated for PDM will now use the new
distribution = true
syntax instead ofpackage-type = "library"
.New packages generated with
--meta pdm
will require PDM2.12.0
or later to build.Features
Add response content to
UnexpectedStatus
exceptionThe error message for
UnexpectedStatus
exceptions will now include the UTF-8 decoded (ignoring errors) body of the response.PR #989 implements #840. Thanks @harabat!
Fixes
Allow hyphens in path parameters
Before now, path parameters which were invalid Python identifiers were not allowed, and would fail generation with an
"Incorrect path templating" error. In particular, this meant that path parameters with hyphens were not allowed.
This has now been fixed!
PR #986 fixed issue #976. Thanks @harabat!
v0.18.0
Compare Source
Breaking Changes
For custom templates, changed type of endpoint parameters
This does not affect projects that are not using
--custom-template-path
The type of these properties on
Endpoint
has been changed fromDict[str, Property]
toList[Property]
:path_parameters
query_parameters
header_parameters
cookie_parameters
If your templates are very close to the default templates, you can probably just remove
.values()
anywhere it appears.The type of
iter_all_parameters()
is also different, you probably wantlist_all_parameters()
instead.Updated generated config for Ruff v0.2
This only affects projects using the
generate
command, not theupdate
command. Thepyproject.toml
file generated which configures Ruff for linting and formatting has been updated to the 0.2 syntax, which means it will no longer work with Ruff 0.1.Updated naming strategy for conflicting properties
While fixing #922, some naming strategies were updated. These should mostly be backwards compatible, but there may be
some small differences in generated code. Make sure to check your diffs before pushing updates to consumers!
Features
support httpx 0.27 (#974)
Fixes
Allow parameters with names differing only by case
If you have two parameters to an endpoint named
mixedCase
andmixed_case
, previously, this was a conflict and the endpoint would not be generated.Now, the generator will skip snake-casing the parameters and use the names as-is. Note that this means if neither of the parameters was snake case, neither will be in the generated code.
Fixes #922 reported by @macmoritz & @benedikt-bartscher.
Fix naming conflicts with properties in models with mixed casing
If you had an object with two properties, where the names differed only by case, conflicting properties would be generated in the model, which then failed the linting step (when using default config). For example, this:
Would generate a class like this:
Now, neither of the properties will be forced into snake case, and the generated code will look like this:
v0.17.3
Compare Source
Fixes
Remove spurious field_dict.update({}) for types without properties (#969)
Fix invalid type check for nested unions
Nested union types (unions of unions) were generating
isinstance()
checks that were not valid (at least for Python 3.9).Thanks to @codebutler for PR #959 which fixes #958 and #967.
v0.17.2
Compare Source
Features
Add
--meta=pdm
option for generating PEP621 + PDM metadataThe default metadata is still
--meta=poetry
, which generates apyproject.toml
file with Poetry-specific metadata.This change adds the
--meta=pdm
option which includes PDM-specific metadata, but alsostandard PEP621
metadata. This may be useful as a starting point for other dependency managers & build tools (like Hatch).
Add original OpenAPI
data
attribute toResponse
objectPR #767
In custom templates, you can now access a
response.data
attribute that contains the original OpenAPI definition of theresponse (Response Object or Reference Object).
Include the
UP
rule for generated Ruff configThis enables pyupgrade-like improvements which should replace some
.format()
calls with f-strings.Fixes
Fix Ruff formatting for
--meta=none
PR #940 fixes issue #939. Thanks @satwell!
Due to the lack of
pyproject.toml
, Ruff was not getting configured properly when--meta=none
.As a result, it didn't clean up common generation issues like duplicate imports, which would then cause errors from
linters.
This is now fixed by changing the default
post_hook
toruff check . --fix --extend-select=I
when--meta=none
.Using
generate --meta=none
should now be almost identical to the code generated byupdate
.v0.17.1
Compare Source
Features
Export
Unset
types from generatedtypes.py
(#927)Generate properties for some boolean enums
If a schema has both
type = "boolean"
andenum
defined, a normal boolean property will now be created.Previously, the generator would error.
Note that the generate code will not correctly limit the values to the enum values. To work around this, use the
OpenAPI 3.1
const
instead ofenum
to generate PythonLiteral
types.Thanks for reporting #922 @macmoritz!
Fixes
Do not stop generation for invalid enum values
This generator only supports
enum
values that are strings or integers.Previously, this was handled at the parsing level, which would cause the generator to fail if there were any unsupported values in the document.
Now, the generator will correctly keep going, skipping only endpoints which contained unsupported values.
Thanks for reporting #922 @macmoritz!
Fix lists within unions
Fixes #756 and #928. Arrays within unions (which, as of 0.17 includes nullable arrays) would generate invalid code.
Thanks @kgutwin and @diesieben07!
Simplify type checks for non-required unions
v0.17.0
Compare Source
Breaking Changes
Removed query parameter nullable/required special case
In previous versions, setting either
nullable: true
orrequired: false
on a query parameter would act like both were set, resulting in a type signature likeUnion[None, Unset, YourType]
. This special case has been removed, query parameters will now act like all other types of parameters.Renamed body types and parameters
PR #900 addresses #822.
Where previously there would be one body parameter per supported content type, now there is a single
body
parameter which takes a union of all the possible inputs. This correctly models the fact that only one body can be sent (and ever would be sent) in a request.For example, when calling a generated endpoint, code which used to look like this:
Will now look like this:
Note that both the input parameter name and the class name have changed. This should result in simpler code when there is only a single body type and now produces correct code when there are multiple body types.
Features
OpenAPI 3.1 support
The generator will now attempt to generate code for OpenAPI documents with versions 3.1.x (previously, it would exit immediately on seeing a version other than 3.0.x). The following specific OpenAPI 3.1 features are now supported:
null
as a typetype: [string, null]
)const
(definesLiteral
types)The generator does not currently validate that the OpenAPI document is valid for a specific version of OpenAPI, so it may be possible to generate code for documents that include both removed 3.0 syntax (e.g.,
nullable
) and new 3.1 syntax (e.g.,null
as a type).Thanks to everyone who helped make this possible with discussions and testing, including:
Support multiple possible
requestBody
PR #900 addresses #822.
It is now possible in some circumstances to generate valid code for OpenAPI documents which have multiple possible
requestBody
values. Previously, invalid code could have been generated with no warning (only one body could actually be sent).Only one content type per "category" is currently supported at a time. The categories are:
application/json
application/octet-stream
application/x-www-form-urlencoded
multipart/form-data
Fixes
Always use correct content type for requests
In previous versions, a request body that was similar to a known content type would use that content type in the request. For example
application/json
would be used forapplication/vnd.api+json
. This was incorrect and could result in invalid requests being sent.Now, the content type defined in the OpenAPI document will always be used.
v0.16.1
Compare Source
Features
Support httpx 0.26 (#913)
v0.16.0
Compare Source
Breaking Changes
Switch from Black to Ruff for formatting
black
is no longer a runtime dependency, so if you have them set in custompost_hooks
in a config file, you'll need to make sure they're being installed manually.ruff
is now installed and used by default instead.Use Ruff instead of isort + autoflake at runtime
isort
andautoflake
are no longer runtime dependencies, so if you have them set in custompost_hooks
in a config file, you'll need to make sure they're being installed manually.ruff
is now installed and used by default instead.Features
Support all
text/*
content types in responsesWithin an API response, any content type which starts with
text/
will now be treated the same astext/html
already was—they will return theresponse.text
attribute from the httpx Response.Thanks to @fdintino for the initial implementation, and thanks for the discussions from @kairntech, @rubenfiszel, and @antoneladestito.
Closes #797 and #821.
Support
application/octet-stream
request bodiesEndpoints that accept
application/octet-stream
request bodies are now supported using the sameFile
type as octet-stream responses.Thanks to @kgutwin for the implementation and @rtaycher for the discussion!
PR #899 closes #588
Fixes
Remove useless
pass
statements from generated codev0.15.2
Compare Source
Features
support httpx 0.25 (#854)
Support content-type with attributes (#655, #809, #858). Thanks @sherbang!
v0.15.1
Compare Source
Features
Upgrade internal Pydantic use to v2. Thanks @KristinnVikar! (#779)
Fixes
Naming conflicts when properties are named "field" or "define" (#781, #793). Thanks @david-dotorigin
v0.15.0
Compare Source
Breaking Changes
Minimum httpx version raised to 0.20
Some features of generated clients already failed at runtime when using httpx < 0.20, but now the minimum version is enforced at generation time.
Connections from clients no longer automatically close (PR #775)
Client
andAuthenticatedClient
now reuse an internalhttpx.Client
(orAsyncClient
)—keeping connections open between requests. This will improve performance overall, but may cause resource leaking if clients are not closed properly. The new clients are intended to be used via context managers—though for compatibility they don't have to be used with context managers. If not using a context manager, connections will probably leak. Note that once a client is closed (by leaving the context manager), it can no longer be used—and attempting to do so will raise an exception.APIs should now be called like:
v0.14.1
Compare Source
Fixes
v0.14.0
Compare Source
Breaking Changes
Features
Unset
(e.g., using if statements to check type) [#714, #752]. Thanks @taasan & @mcclurem! (#752)Fixes
v0.13.4
Compare Source
Features
v0.13.3
Compare Source
Features
Fixes
v0.13.2
Compare Source
Features
Fixes
required
field in parameters included with$ref
(#737)v0.13.1
Compare Source
Features
http_timeout
config to set timeout getting document via--url
[#718]. Thanks @Kircheneer!v0.13.0
Compare Source
Breaking Changes
post_hooks
in package directory instead of current directory if meta=none [#696, #697]. Thanks @brenmous and @wallagib!Fixes
Client.get_headers
function [#713]. Thanks @rtaycher!v0.12.3
Compare Source
Features
raise_on_unexpected_status
flag to generatedClient
[#593]. Thanks @JamesHinshelwood, @ramnes, @gwenshap, @theFong!use_path_prefixes_for_title_model_names
config option for simpler model names [#559, #560]. Thanks @rtaycher!+json
[#706, #709]. Thanks @XioNoX and @mtovt!v0.12.2
Compare Source
Fixes
v0.12.1
Compare Source
Fixes
v0.11.6
Compare Source
Features
Fixes
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.