Skip to main content

未提供项目描述

项目描述

这是一个非常简单的 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 查看哈希)

已上传 source

内置分布

argparse_subdec-0.2.1-py3-none-any.whl (10.4 kB 查看哈希

已上传 py3