diff options
Diffstat (limited to '_action/count.py')
-rw-r--r-- | _action/count.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/_action/count.py b/_action/count.py new file mode 100644 index 0000000..4130e4f --- /dev/null +++ b/_action/count.py @@ -0,0 +1,19 @@ +# coding: utf-8 + +import argparse + + +class CountAction(argparse.Action): + """argparse action for counting up and down + + parser = argparse.ArgumentParser() + parser.add_argument('--verbose', '-v', action=CountAction, const=1, nargs=0) + parser.add_argument('--quiet', '-q', action=CountAction, dest='verbose', + const=-1, nargs=0) + """ + def __call__(self, parser, namespace, values, option_string=None): + try: + val = getattr(namespace, self.dest) + self.const + except TypeError: # probably None + val = self.const + setattr(namespace, self.dest, val) |