aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorWolfgang Müller2021-05-01 16:14:49 +0200
committerWolfgang Müller2021-05-01 17:41:47 +0200
commitc69598f4f8deb98071c9908f84efba94a1a02321 (patch)
tree0e6bdfd292fc09c397998be03e22d29e9d2e8549
parentc4f5dbab6e377fe7ee6040c3d5038157b58db621 (diff)
downloadquarg-c69598f4f8deb98071c9908f84efba94a1a02321.tar.gz
actions: Have ParseEnum print a list of possible values on error
This will save the user a look at the program's manual and makes using the program more convenient.
-rw-r--r--quarg/actions.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/quarg/actions.py b/quarg/actions.py
index 9361ac2..70cde03 100644
--- a/quarg/actions.py
+++ b/quarg/actions.py
@@ -13,7 +13,9 @@ class ParseEnum(argparse.Action, metaclass=ABCMeta):
def __call__(self, parser, namespace, value, option_string=None):
key = value.upper()
if key not in self.enumclass.__members__:
- errx(f'Not a valid {self.enumclass.describe()}: {value}')
+ possible = ', '.join([e.name.lower() for e in self.enumclass])
+ desc = self.enumclass.describe()
+ errx(f'Not a valid {desc}: {value}\nPossible {desc}s are: {possible}')
saved = getattr(namespace, self.dest) or []
saved.append(self.enumclass[key])