summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthäus G. Chajdas <dev@anteru.net>2021-01-23 13:34:39 +0100
committerMatthäus G. Chajdas <dev@anteru.net>2021-01-23 13:42:31 +0100
commit8283ea766b5f576789de12e26b867818fe956994 (patch)
tree845125617d83d5a33ec7361d50876408ae3347f2
parent20723deae4f457a649939ee6bb2f8a5361510b11 (diff)
downloadpygments-git-argparse.tar.gz
Update based on review feedback.argparse
* Extract "is_only_option" method * Check -L argument to be a "known good" argument
-rw-r--r--pygments/cmdline.py17
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