Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[python] Renames python generators #7965

Merged
merged 11 commits into from
Nov 18, 2020
Merged

Conversation

wing328
Copy link
Member

@wing328 wing328 commented Nov 17, 2020

(Based on #7900 so credits go to @spacether)

This PR makes these generator changes

  • python becomes python-legacy
  • python-experimental becomes python

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.

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.shto 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) ❤️
@jimschubert (2016/05) ❤️
@cbornet (2016/05)
@ackintosh (2018/02) ❤️
@jmini (2018/04) ❤️
@etherealjoy (2019/06)
@spacether (2020/05)

@wing328 wing328 changed the title Spacether renames python generators4 [python] Renames python generators Nov 17, 2020
@wing328 wing328 added this to the 5.0.0 milestone Nov 17, 2020
@wing328 wing328 marked this pull request as ready for review November 17, 2020 16:45
Copy link
Contributor

@spacether spacether left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Loooks good to me!

@wing328 wing328 merged commit 3bf8ca7 into master Nov 18, 2020
@wing328 wing328 deleted the spacether-renames_python_generators4 branch November 22, 2020 08:42
@ulgens
Copy link
Contributor

ulgens commented Nov 28, 2020

What happened to the other generators? 😢

Only the urllib3 library is supported in the refactored python client generator at the moment. Please fall back to python-legacy client generator for the time being. We welcome contributions to add back asyncio, tornado support to the pyhton client generator.

@wing328
Copy link
Member Author

wing328 commented Nov 29, 2020

@ulgens when the python generator was refactored, we focused on urllib3 to start with and then rolled it out to the community for feedback. We welcome contributions to add back asyncio, tornado support.

If you need some good starting points to add back the support, please let me know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants