Skip to content

Commit 953e2cb

Browse files
make build_usage / build_man: do not show options with SUPPRESS
1 parent 405dc51 commit 953e2cb

File tree

1 file changed

+30
-22
lines changed

1 file changed

+30
-22
lines changed

scripts/make.py

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from collections import OrderedDict
1010
from datetime import datetime, timezone
1111
import time
12+
import argparse # do not change to jsonargparse, shall not require 3rd party pkgs
1213

1314

1415
def format_metavar(option):
@@ -100,17 +101,18 @@ def generate_level(self, prefix, parser, Archiver, extra_choices=None):
100101
return is_subcommand
101102

102103
def write_usage(self, parser, fp):
103-
if any(len(o.option_strings) for o in parser._actions):
104+
actions = [o for o in parser._actions if getattr(o, "help", None) != argparse.SUPPRESS]
105+
if any(len(o.option_strings) for o in actions):
104106
fp.write(" [options]")
105-
for option in parser._actions:
107+
for option in actions:
106108
if option.option_strings:
107109
continue
108110
fp.write(" " + format_metavar(option))
109111
fp.write("\n\n")
110112

111113
def write_options(self, parser, fp):
112-
def is_positional_group(group):
113-
return any(not o.option_strings for o in group._group_actions)
114+
def is_positional_group(actions):
115+
return any(not o.option_strings for o in actions)
114116

115117
# HTML output:
116118
# A table using some column-spans
@@ -121,17 +123,18 @@ def is_positional_group(group):
121123
# (no of columns used, columns, ...)
122124
rows.append((1, ".. class:: borg-common-opt-ref\n\n:ref:`common_options`"))
123125
else:
124-
if not group._group_actions:
126+
actions = [o for o in group._group_actions if getattr(o, "help", None) != argparse.SUPPRESS]
127+
if not actions:
125128
continue
126129
group_header = "**%s**" % group.title
127130
if group.description:
128131
group_header += " — " + group.description
129132
rows.append((1, group_header))
130-
if is_positional_group(group):
131-
for option in group._group_actions:
133+
if is_positional_group(actions):
134+
for option in actions:
132135
rows.append((3, "", "``%s``" % option.metavar, option.help or ""))
133136
else:
134-
for option in group._group_actions:
137+
for option in actions:
135138
if option.metavar:
136139
option_fmt = "``%s " + option.metavar + "``"
137140
else:
@@ -218,18 +221,19 @@ def write_row_separator():
218221
)
219222

220223
def write_options_group(self, group, fp, with_title=True, base_indent=4):
221-
def is_positional_group(group):
222-
return any(not o.option_strings for o in group._group_actions)
224+
def is_positional_group(actions):
225+
return any(not o.option_strings for o in actions)
223226

224227
indent = " " * base_indent
228+
actions = [o for o in group._group_actions if getattr(o, "help", None) != argparse.SUPPRESS]
225229

226-
if is_positional_group(group):
227-
for option in group._group_actions:
230+
if is_positional_group(actions):
231+
for option in actions:
228232
fp.write(option.metavar + "\n")
229233
fp.write(textwrap.indent(option.help or "", " " * base_indent) + "\n")
230234
return
231235

232-
if not group._group_actions:
236+
if not actions:
233237
return
234238

235239
if with_title:
@@ -238,7 +242,7 @@ def is_positional_group(group):
238242

239243
opts = OrderedDict()
240244

241-
for option in group._group_actions:
245+
for option in actions:
242246
if option.metavar:
243247
option_fmt = "%s " + option.metavar
244248
else:
@@ -503,34 +507,38 @@ def ref_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
503507
fd.write(man_page)
504508

505509
def write_usage(self, write, parser):
506-
if any(len(o.option_strings) for o in parser._actions):
510+
actions = [o for o in parser._actions if getattr(o, "help", None) != argparse.SUPPRESS]
511+
if any(len(o.option_strings) for o in actions):
507512
write(" [options] ", end="")
508-
for option in parser._actions:
513+
for option in actions:
509514
if option.option_strings:
510515
continue
511516
write(format_metavar(option), end=" ")
512517

513518
def write_options(self, write, parser):
514519
for group in parser._action_groups:
515-
if group.title == "Common options" or not group._group_actions:
520+
actions = [o for o in group._group_actions if getattr(o, "help", None) != argparse.SUPPRESS]
521+
if group.title == "Common options" or not actions:
516522
continue
517523
title = "arguments" if group.title == "positional arguments" else group.title
518524
self.write_heading(write, title, "+")
519525
self.write_options_group(write, group)
520526

521527
def write_options_group(self, write, group):
522-
def is_positional_group(group):
523-
return any(not o.option_strings for o in group._group_actions)
528+
def is_positional_group(actions):
529+
return any(not o.option_strings for o in actions)
524530

525-
if is_positional_group(group):
526-
for option in group._group_actions:
531+
actions = [o for o in group._group_actions if getattr(o, "help", None) != argparse.SUPPRESS]
532+
533+
if is_positional_group(actions):
534+
for option in actions:
527535
write(option.metavar)
528536
write(textwrap.indent(option.help or "", " " * 4))
529537
return
530538

531539
opts = OrderedDict()
532540

533-
for option in group._group_actions:
541+
for option in actions:
534542
if option.metavar:
535543
option_fmt = "%s " + option.metavar
536544
else:

0 commit comments

Comments
 (0)