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
./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.