diff options
Diffstat (limited to 'src/click/core.py')
-rw-r--r-- | src/click/core.py | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/src/click/core.py b/src/click/core.py index 52b3022..6cdba37 100644 --- a/src/click/core.py +++ b/src/click/core.py @@ -2192,6 +2192,9 @@ class Parameter: :param call: If the default is a callable, call it. Disable to return the callable instead. + .. versionchanged:: 8.0.2 + Type casting is no longer performed when getting a default. + .. versionchanged:: 8.0.1 Type casting can fail in resilient parsing mode. Invalid defaults will not prevent showing help text. @@ -2207,20 +2210,10 @@ class Parameter: if value is None: value = self.default - if callable(value): - if not call: - # Don't type cast the callable. - return value - + if call and callable(value): value = value() - try: - return self.type_cast_value(ctx, value) - except BadParameter: - if ctx.resilient_parsing: - return value - - raise + return value def add_to_parser(self, parser: OptionParser, ctx: Context) -> None: raise NotImplementedError() @@ -2305,8 +2298,7 @@ class Parameter: return False def process_value(self, ctx: Context, value: t.Any) -> t.Any: - if value is not None: - value = self.type_cast_value(ctx, value) + value = self.type_cast_value(ctx, value) if self.required and self.value_is_missing(value): raise MissingParameter(ctx=ctx, param=self) |