summaryrefslogtreecommitdiff
path: root/src/click/core.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/click/core.py')
-rw-r--r--src/click/core.py20
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)