veditor.utils.argparse_utils module

veditor.utils.argparse_utils.ListParamProcessorCreate(type: object = <class 'str'>)[source]

Create a ListParamProcessor

Parameters

type (object) – type of each element in list.

Returns

Processor which receives list arguments.

Return type

ListParamProcessor (argparse.Action)

Examples

>>> import argparse
>>> from veditor.utils import ListParamProcessorCreate
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument("--list_params", action=ListParamProcessorCreate())
>>> args = parser.parse_args(args=["--list_params", "[あ, い, う]"])
>>> args.list_params
['あ', 'い', 'う']
class veditor.utils.argparse_utils.DictParamProcessor(option_strings, dest, nargs=None, const=None, default=None, type=None, choices=None, required=False, help=None, metavar=None)[source]

Bases: argparse.Action

Receive an argument as a dictionary.

Raises

ValueError – You must give one argument for each one keyword.

Examples

>>> import argparse
>>> from veditor.utils import DictParamProcessor
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument("--dict_params", action=DictParamProcessor)
>>> args = parser.parse_args(args=["--dict_params", "foo = [a, b, c]", "--dict_params", "bar=d"])
>>> args.dict_params
{'foo': ['a', 'b', 'c'], 'bar': 'd'}
>>> args = parser.parse_args(args=["--dict_params", "foo=a, bar=b"])
ValueError: too many values to unpack (expected 2)

Note

If you run from the command line, execute as follows:

$ python app.py --dict_params "foo = [a, b, c]" --dict_params bar=c
class veditor.utils.argparse_utils.KwargsParamProcessor(option_strings, dest, nargs=None, const=None, default=None, type=None, choices=None, required=False, help=None, metavar=None)[source]

Bases: argparse.Action

Set a new argument.

Examples

>>> import argparse
>>> from veditor.utils import KwargsParamProcessor
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument("--kwargs", action=KwargsParamProcessor)
>>> args = parser.parse_args(args=["--kwargs", "foo=a", "--kwargs", "bar=b"])
>>> (args.kwargs, args.foo, args.bar)
(None, 'a', 'b')

Note

If you run from the command line, execute as follows:

$ python app.py --kwargs foo=a --kwargs bar=b