From 0e6e8d3c9fa513f488f614b2c635e2783b8377c7 Mon Sep 17 00:00:00 2001 From: jaseg <136313+jaseg@users.noreply.github.com> Date: Thu, 16 Feb 2023 22:53:49 +0100 Subject: [PATCH] core.py: Make error messages more verbose Especially the option one is hard to debug without this information since the stacktrace points at the command wrapper instead of the actual source line of the bad option declaration decorator. --- src/click/core.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/click/core.py b/src/click/core.py index 6164cf3e8..fa0a074a3 100644 --- a/src/click/core.py +++ b/src/click/core.py @@ -2655,7 +2655,9 @@ def _parse_decls( if name is None: if not expose_value: return None, opts, secondary_opts - raise TypeError("Could not determine name for option") + raise TypeError( + f"Could not determine name for option with declarations {decls!r}" + ) if not opts and not secondary_opts: raise TypeError( @@ -2995,7 +2997,7 @@ def _parse_decls( if not decls: if not expose_value: return None, [], [] - raise TypeError("Could not determine name for argument") + raise TypeError("Argument is marked as exposed, but does not have a name.") if len(decls) == 1: name = arg = decls[0] name = name.replace("-", "_").lower()