All Var-typed props are implicitly Optional #3
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.
For compatibility with existing Component wraps, if the type is Var and a default is not provided, mark it as Optional and set a default of None.
Fix _rename_props inheritance for pydantic-v2.
This one might be slightly controversial, but the team doesn't like the newly added boilerplate of
Optional[Var[...]] = None
for most Component props. And if we enforce that in the framework, a lot of existing code outside of the reflex repo will break and have to change.Reflex ships the
pyi
files that provide the correct annotations for these props, so we can still work with static type checking (and generate theOptional[Var[...]] = None
annotation there). We can also ship thepyi_generator.py
script as a module to allow downstream users to generate their own stub files for components that they wrap.This will allow us to keep the delta smaller in the
pydantic-v2
branch and reduce the perceived boilerplate from including the full annotation.