(parser, names, no_names=None,
default=True, dest=None, description=None)
| 54 | |
| 55 | |
| 56 | def add_boolean_option(parser, names, no_names=None, |
| 57 | default=True, dest=None, description=None): |
| 58 | group = parser.add_argument_group(description=description) |
| 59 | if not isinstance(names, (list, tuple)): |
| 60 | names = [names] |
| 61 | if dest is None: |
| 62 | dest = names[0].strip("-").replace("-", "_") |
| 63 | |
| 64 | def add_dashes(x): |
| 65 | return x if x.startswith("-") else "--"+x |
| 66 | |
| 67 | opts = [add_dashes(x) for x in names] |
| 68 | group.add_argument( |
| 69 | *opts, help=("(this is the default)" if default else None), |
| 70 | dest=dest, action='store_true') |
| 71 | if no_names is None: |
| 72 | def add_no(x): |
| 73 | x = x.lstrip("-") |
| 74 | return ("no_"+x) if "_" in x else ("no-"+x) |
| 75 | no_names = [add_no(x) for x in names] |
| 76 | opts = [add_dashes(x) for x in no_names] |
| 77 | group.add_argument( |
| 78 | *opts, help=(None if default else "(this is the default)"), |
| 79 | dest=dest, action='store_false') |
| 80 | parser.set_defaults(**{dest: default}) |
| 81 | |
| 82 | |
| 83 | def require_prebuilt_dist(func): |
no test coverage detected