| 35 | group = parser.getgroup(class="st">"sqlalchemy") |
| 36 | |
| 37 | def make_option(name, **kw): |
| 38 | callback_ = kw.pop(class="st">"callback", None) |
| 39 | if callback_: |
| 40 | |
| 41 | class CallableAction(argparse.Action): |
| 42 | def __call__( |
| 43 | self, parser, namespace, values, option_string=None |
| 44 | ): |
| 45 | callback_(option_string, values, parser) |
| 46 | |
| 47 | kw[class="st">"action"] = CallableAction |
| 48 | |
| 49 | zeroarg_callback = kw.pop(class="st">"zeroarg_callback", None) |
| 50 | if zeroarg_callback: |
| 51 | |
| 52 | class CallableAction(argparse.Action): |
| 53 | def __init__( |
| 54 | self, |
| 55 | option_strings, |
| 56 | dest, |
| 57 | default=False, |
| 58 | required=False, |
| 59 | help=None, class="cm"># noqa |
| 60 | ): |
| 61 | super().__init__( |
| 62 | option_strings=option_strings, |
| 63 | dest=dest, |
| 64 | nargs=0, |
| 65 | const=True, |
| 66 | default=default, |
| 67 | required=required, |
| 68 | help=help, |
| 69 | ) |
| 70 | |
| 71 | def __call__( |
| 72 | self, parser, namespace, values, option_string=None |
| 73 | ): |
| 74 | zeroarg_callback(option_string, values, parser) |
| 75 | |
| 76 | kw[class="st">"action"] = CallableAction |
| 77 | |
| 78 | group.addoption(name, **kw) |
| 79 | |
| 80 | plugin_base.setup_options(make_option) |
| 81 | |