This repository has been archived by the owner on Aug 19, 2023. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Greetings!
I'm proposing a new feature in this PR.
The Issue
We don't have control over the class whenever using an external library and thus need to use FieldEncoders.
The issue arises when writing the FieldEncoder for a complex external object. Precisely when writing the JSON schema.
For example, when loading a protobuf object, one can parse using the ParseDict helper function. When it comes to defining the JSON schema, one would want to create something similar to this structure:
Where the definitions live in "definitions", but returning that in the FieldEncoder would give errors as:
Solution
These errors happen because when compiling the JSON schema for an internal JsonSchemaMixin sub-class we don't propagate the "definitions" created using the FieldEncoder.
This way I propose handling this as another case on the
_get_field_definitions
method.