Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • O openapi-generator
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,476
    • Issues 3,476
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 402
    • Merge requests 402
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • OpenAPI Tools
  • openapi-generator
  • Merge requests
  • !4628

[Python] Add 'supportLargeModel' tag to handle unusually large OAS data type

  • Review changes

  • Download
  • Email patches
  • Plain diff
Closed Administrator requested to merge github/fork/CiscoM31/bugfix/issue4600 into master Nov 27, 2019
  • Overview 0
  • Commits 2
  • Pipelines 0
  • Changes 6

Created by: sebastien-rosset

This PR fixes #4600 (closed) by introducing a new supportLargeModel tag. Some languages have limitations such as max 255 arguments per function (Java, Python < 3.7) or 256 arguments (Eiffel).

This can be a problem for some of the generated code when the OAS data types are unusually large. For example, the Python model.mustache template generates a init function. The function arguments are the properties defined in the data type. However, because the OpenAPI spec does not set a max limit for the number of properties in a data type, this means a data type could have a list of 300 properties. But until version 3.7, python functions cannot have more than 255 arguments.

This PR includes modifications for Python, and potentially in the future it could be done for other languages. This is because every language has its own set of limits. If the code generator is invoked without the supportLargeModel tag, the generator is exactly the same as before. This ensures this does not break any backward compatibility.

PR checklist

  • Read the contribution guidelines.
  • If contributing template-only or documentation-only changes which will change sample output, build the project before.
  • Run the shell script(s) under ./bin/ (or Windows batch scripts under.\bin\windows) to update Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the code or mustache templates for a language ({LANG}) (e.g. php, ruby, python, etc).
  • File the PR against the correct branch: master, 4.3.x, 5.0.x. Default: master.
  • Copy the technical committee to review the pull request if your PR is targeting a particular programming language.
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/CiscoM31/bugfix/issue4600