Create a config loader for use with argparse. Parameters ---------- classes : optional, list The classes to scan for *container* config-traits and decide for their "multiplicity" when adding them as *argparse* arguments. argv : optional, list
(
self,
argv: list[str] | None = None,
aliases: dict[str, str] | None = None,
flags: dict[str, str] | None = None,
log: t.Any = None,
classes: list[type[t.Any]] | None = None,
subcommands: SubcommandsDict | None = None,
*parser_args: t.Any,
**parser_kw: t.Any,
)
| 800 | parser_class = ArgumentParser |
| 801 | |
| 802 | def __init__( |
| 803 | self, |
| 804 | argv: list[str] | None = None, |
| 805 | aliases: dict[str, str] | None = None, |
| 806 | flags: dict[str, str] | None = None, |
| 807 | log: t.Any = None, |
| 808 | classes: list[type[t.Any]] | None = None, |
| 809 | subcommands: SubcommandsDict | None = None, |
| 810 | *parser_args: t.Any, |
| 811 | **parser_kw: t.Any, |
| 812 | ) -> None: |
| 813 | """Create a config loader for use with argparse. |
| 814 | |
| 815 | Parameters |
| 816 | ---------- |
| 817 | classes : optional, list |
| 818 | The classes to scan for *container* config-traits and decide |
| 819 | for their "multiplicity" when adding them as *argparse* arguments. |
| 820 | argv : optional, list |
| 821 | If given, used to read command-line arguments from, otherwise |
| 822 | sys.argv[1:] is used. |
| 823 | *parser_args : tuple |
| 824 | A tuple of positional arguments that will be passed to the |
| 825 | constructor of :class:`argparse.ArgumentParser`. |
| 826 | **parser_kw : dict |
| 827 | A tuple of keyword arguments that will be passed to the |
| 828 | constructor of :class:`argparse.ArgumentParser`. |
| 829 | aliases : dict of str to str |
| 830 | Dict of aliases to full traitlets names for CLI parsing |
| 831 | flags : dict of str to str |
| 832 | Dict of flags to full traitlets names for CLI parsing |
| 833 | log |
| 834 | Passed to `ConfigLoader` |
| 835 | |
| 836 | Returns |
| 837 | ------- |
| 838 | config : Config |
| 839 | The resulting Config object. |
| 840 | """ |
| 841 | classes = classes or [] |
| 842 | super(CommandLineConfigLoader, self).__init__(log=log) |
| 843 | self.clear() |
| 844 | if argv is None: |
| 845 | argv = sys.argv[1:] |
| 846 | self.argv = argv |
| 847 | self.aliases = aliases or {} |
| 848 | self.flags = flags or {} |
| 849 | self.classes = classes |
| 850 | self.subcommands = subcommands # only used for argcomplete currently |
| 851 | |
| 852 | self.parser_args = parser_args |
| 853 | self.version = parser_kw.pop("version", None) |
| 854 | kwargs = dict(argument_default=argparse.SUPPRESS) # noqa: C408 |
| 855 | kwargs.update(parser_kw) |
| 856 | self.parser_kw = kwargs |
| 857 | |
| 858 | def load_config( |
| 859 | self, |