未提供项目描述
项目描述
这是一个非常简单的 Python 包,它允许通过函数装饰器创建argparse的子命令。
用法
创建一个SubDec对象:
import argparse_subdec
# Create the object to collect subcommands via decorators
sd = argparse_subdec.SubDec()
现在,我们可以定义我们的子命令了。我们通过使用对sd的方法调用来装饰函数来定义子命令,如下所示:
@sd.add_argument('--option', default='123')
@sd.add_argument('--another')
def foo(args):
print(f'foo subcommand: --option={args.option!r} and --another={args.another!r}')
您可以使用将在子解析器中使用的任何方法名称。在上面的示例中,我们使用了可能最常用的add_argument 。在创建子解析器时,sd将重播这些对foo子命令创建的子解析器的调用。
在下面的示例中,我们定义了第二个子命令,名为 foo-bar:
@sd.cmd(prefix_chars=':')
@sd.add_argument('positional_arg', type=int)
def foo_bar(args):
print(f'foo-bar subcommand: {args.positional_arg!r}')
请注意,我们使用了一个特殊的装饰器sd.cmd,它使sd在为foo-bar创建子解析器时将 其所有参数传递给add_parser()。
一旦定义了子命令,我们必须调用sd.create_parsers()以有效地创建子解析器:
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers()
sd.create_parsers(subparsers)
以下是我们如何调用子命令的示例:
args = parser.parse_args(['foo', '--another', 'hello'])
args.fn(args) # The subcommand function is assigned to ``args.fn`` by default
# Outputs: foo subcommand: --option='123' and --another='hello'
有关 API 的更多详细信息,请查看subdec模块。
安装
通过点子:
pip install argparse-subdec
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
argparse-subdec-0.2.1.tar.gz
(9.6 kB
查看哈希)
内置分布
argparse_subdec-0.2.1-py3-none-any.whl
(10.4 kB
查看哈希)