(Based on https://github.com/OpenAPITools/openapi-generator/pull/7900 so credits go to @spacether)
This PR makes these generator changes
-
python
becomespython-legacy
-
python-experimental
becomespython
We are switching the python-experimental generator in as our stable python generator because it has significantly better composed schema support, many new features, and uses python3 only.
Some python (python-experimental) features
- support for composed schema oneOf, anyOf, allOf
- types checked when receiving data, sending data, and instantiating models
- python module loading is quicker
- payloads can be deserialized containing 2 or more discriminators
- models can contain instances of themself
- example code in the api docs includes example model instances with example values set in the model
- definition of endpoint reponse_types and Model properties now uses classes rather than string class names for referenced schemas
- support for signed http messages see test_http_signature.py thanks to @sebastien-rosset
Also I improved string regex handling in python-legacy. For python-legacy using the openapi (v3) spec sample tests of models have been regenerated and for non composed models, python-legacy now has auto-written tests that test instantiating a model instance with optional, and optional + required arguments. The regex fix was needed to get these tests passing.
- see this sample test
PR checklist
-
Read the contribution guidelines. -
Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community. -
If contributing template-only or documentation-only changes which will change sample output, build the project beforehand. -
Run the shell script ./bin/generate-samples.sh
to update all Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master. These must match the expectations made by your contribution. You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example./bin/generate-samples.sh bin/configs/java*
. For Windows users, please run the script in Git BASH. -
File the PR against the correct branch: master
-
Copy the technical committee to review the pull request if your PR is targeting a particular programming language.
Core Team
@wing328 (2015/07)