fix: resolve Enum default value resolution when parameter callbacks are present#1870
Closed
Hootsworth wants to merge 1 commit into
Closed
fix: resolve Enum default value resolution when parameter callbacks are present#1870Hootsworth wants to merge 1 commit into
Hootsworth wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
This PR resolves a silent bug in Typer where an
Enumoption with a custom parameter callback resolves toNoneinstead of its default Enum member value when the option is not explicitly passed in the CLI.Type of Change
Related Issues
Fixes silent default value loss on Enum options when callbacks are present.
Changes Made
typer/main.py: Updatedgenerate_enum_convertorto immediately return the value if it is already an instance of the targetEnumclass (which is the case when Click passes the default Enum member when the option is omitted).tests/test_types.py: Addedtest_enum_with_callbackto verify that Enum options with default values and custom callbacks correctly resolve to their default Enum members when omitted on the CLI.Testing
test_enum_with_callbackto the test suite.