diff options
author | Matthäus G. Chajdas <dev@anteru.net> | 2021-01-23 13:34:39 +0100 |
---|---|---|
committer | Matthäus G. Chajdas <dev@anteru.net> | 2021-01-23 13:42:31 +0100 |
commit | 8283ea766b5f576789de12e26b867818fe956994 (patch) | |
tree | 845125617d83d5a33ec7361d50876408ae3347f2 /pygments | |
parent | 20723deae4f457a649939ee6bb2f8a5361510b11 (diff) | |
download | pygments-git-argparse.tar.gz |
Update based on review feedback.argparse
* Extract "is_only_option" method
* Check -L argument to be a "known good" argument
Diffstat (limited to 'pygments')
-rw-r--r-- | pygments/cmdline.py | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/pygments/cmdline.py b/pygments/cmdline.py index ad893e36..db6de0cd 100644 --- a/pygments/cmdline.py +++ b/pygments/cmdline.py @@ -145,23 +145,30 @@ def main_inner(parser, argns): 'Chajdas and contributors.' % __version__) return 0 + def is_only_option(opt): + return not any(v for (k, v) in vars(argns).items() if k != opt) + # handle ``pygmentize -L`` if argns.L is not None: - if any(v for (k, v) in vars(argns).items() if k != 'L'): + if not is_only_option('L'): parser.print_help(sys.stderr) return 2 # print version main(['', '-V']) - largs = argns.L + allowed_types = {'lexer', 'formatter', 'filter', 'style'} + largs = [arg.rstrip('s') for arg in argns.L] + if any(arg not in allowed_types for arg in largs): + parser.print_help(sys.stderr) + return 0 if not largs: - largs = ['lexer', 'formatter', 'filter', 'style'] + largs = allowed_types for arg in largs: - _print_list(arg.rstrip('s')) + _print_list(arg) return 0 # handle ``pygmentize -H`` if argns.H: - if any(v for (k, v) in vars(argns).items() if k != 'H'): + if not is_only_option('H'): parser.print_help(sys.stderr) return 2 what, name = argns.H |