Skip to content

Commit

Permalink
Merge pull request #58 from simaoafonso-pwt/tcsh-suppress
Browse files Browse the repository at this point in the history
  • Loading branch information
casperdcl authored Nov 23, 2021
2 parents 3aca487 + 5358dda commit eb60f65
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 13 deletions.
12 changes: 7 additions & 5 deletions examples/customcomplete.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,9 @@


def process(args):
print("received <input_txt>=%r --input-file=%r --output-name=%r" %
(args.input_txt, args.input_file, args.output_name))
print(
"received <input_txt>=%r [<suffix>=%r] --input-file=%r --output-name=%r --hidden-opt=%r" %
(args.input_txt, args.suffix, args.input_file, args.output_name, args.hidden_opt))


def get_main_parser():
Expand All @@ -39,7 +40,7 @@ def get_main_parser():

parser = subparsers.add_parser("process", help="parse files")
# `*.txt` file tab completion
parser.add_argument("input_txt", nargs="?").complete = TXT_FILE
parser.add_argument("input_txt", nargs='?').complete = TXT_FILE
# file tab completion builtin shortcut
parser.add_argument("-i", "--input-file").complete = shtab.FILE
parser.add_argument(
Expand All @@ -50,8 +51,9 @@ def get_main_parser():
).complete = shtab.DIRECTORY
# directory tab completion builtin shortcut

main_parser.add_argument('suffix', choices=['json', 'csv'], default='json',
help="Output format")
parser.add_argument("suffix", choices=['json', 'csv'], default='json', nargs='?',
help="Output format")
parser.add_argument("--hidden-opt", action='store_true', help=argparse.SUPPRESS)
parser.set_defaults(func=process)
return main_parser

Expand Down
17 changes: 9 additions & 8 deletions shtab/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -624,14 +624,15 @@ def recurse_parser(cparser, positional_idx, requirements=None):

for optional in cparser._get_optional_actions():
log.debug('%s| Optional: %s', log_prefix, optional.dest)
# Mingle all optional arguments for all subparsers
for optional_str in optional.option_strings:
log.debug('%s| | %s', log_prefix, optional_str)
if optional_str.startswith('--'):
optionals_double.add(optional_str[2:])
elif optional_str.startswith('-'):
optionals_single.add(optional_str[1:])
specials.extend(get_specials(optional, 'n', optional_str))
if optional.help != SUPPRESS:
# Mingle all optional arguments for all subparsers
for optional_str in optional.option_strings:
log.debug('%s| | %s', log_prefix, optional_str)
if optional_str.startswith('--'):
optionals_double.add(optional_str[2:])
elif optional_str.startswith('-'):
optionals_single.add(optional_str[1:])
specials.extend(get_specials(optional, 'n', optional_str))

for positional in cparser._get_positional_actions():
if positional.help != SUPPRESS:
Expand Down

0 comments on commit eb60f65

Please sign in to comment.