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
  • !13341

Adds isBooleanSchemaTrue/False getters and setters

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Administrator requested to merge github/fork/spacether/feat_adds_boolschema_property into master Sep 02, 2022
  • Overview 1
  • Commits 30
  • Pipelines 0
  • Changes 518

Created by: spacether

  • Adds isBooleanSchemaTrue/False getters and setters to be able to detect if a CodegenProperty or CodegenModel was defined using a true or false Boolean schema (openapi 3.1.0 feature)
  • Adds the DefaultCodegen method getSchemaFromBooleanOrSchema to handle boolean schemas in the future
  • python-experimental: uses that data to only define additional_properties when it was explicitly included in the source schema
  • python-experimental: updates type hints and .propName and ["propName"]
    • Missing mixin NoneFrozenDictTupleStrDecimalBoolMixin added to ComposedSchema
    • KeyErrors are now thrown on "propName" access if it does not exist
    • AttributeError now thrown on .propName access if it is not required
    • property type hints removed from optional parameters because that feature broke hasattr checks
    • get_item Unset type hints removed from optional parameters because that feature broke KeyError raising
    • get_item_oapg added with a schemas.unset default value, can be used for safe typed retrieval of optional/required/additional properties

These will be needed for processing of schemas where boolean True or False is used in place of a schema in openapi specs.

Uses this info to more more accurately set model.aditionalProperties and property.additionalProperties for python-experimental.

  • when additionalProperties is unset, it remains unset in python-experimental
  • when additionalProperties is true, it is converted to an instance of codegenProperty with getIsBooleanSchemaTrue() ==true
  • when additionalProperties is false, it is converted to an instance of codegenProperty with getIsBooleanSchemaFalse() ==true
  • when additionalProperties is a schema, it is converted to an instance of codegenProperty
  • this update is needed to be able to build unevaluatedProperties functionality in the future

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.
  • Run the following to build the project and update samples:
    ./mvnw clean package 
    ./bin/generate-samples.sh
    ./bin/utils/export_docs_generators.sh
    Commit all changed files. 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 (6.1.0) (minor release - breaking changes with fallbacks), 7.0.x (breaking changes without fallbacks)
  • If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/spacether/feat_adds_boolschema_property