Override loader to pass through kwargs for argcomplete testing
| 21 | |
| 22 | |
| 23 | class ArgcompleteApp(Application): |
| 24 | """Override loader to pass through kwargs for argcomplete testing""" |
| 25 | |
| 26 | argcomplete_kwargs: t.Dict[str, t.Any] |
| 27 | |
| 28 | def __init__(self, *args, **kwargs): |
| 29 | # For subcommands, inherit argcomplete_kwargs from parent app |
| 30 | parent = kwargs.get("parent") |
| 31 | super().__init__(*args, **kwargs) |
| 32 | if parent: |
| 33 | argcomplete_kwargs = getattr(parent, "argcomplete_kwargs", None) |
| 34 | if argcomplete_kwargs: |
| 35 | self.argcomplete_kwargs = argcomplete_kwargs |
| 36 | |
| 37 | def _create_loader(self, argv, aliases, flags, classes): |
| 38 | loader = KVArgParseConfigLoader( |
| 39 | argv, aliases, flags, classes=classes, log=self.log, subcommands=self.subcommands |
| 40 | ) |
| 41 | loader._argcomplete_kwargs = self.argcomplete_kwargs # type: ignore[attr-defined] |
| 42 | return loader |
| 43 | |
| 44 | |
| 45 | class SubApp1(ArgcompleteApp): |
no outgoing calls
searching dependent graphs…