bokeh.command.subcommand#

为定义Bokeh命令行应用程序的子命令提供了一个基类。

class Subcommand(parser: ArgumentParser)[源代码]#

子命令的抽象基类

子类应该实现一个invoke(self, args)方法,该方法接受一组argparse处理过的参数作为输入。

子类还应定义以下类属性:

  • name 这个子命令的名称

  • help 一个用于argparse的帮助字符串,用于此子命令

  • args 传递给 parser.add_argument 的参数

args 的格式应该是一个由以下形式的元组组成的序列:

('argname', Argument(
    metavar='ARGNAME',
    nargs='+',
))

Example

一个简单的子命令“foo”可能看起来像这样:

class Foo(Subcommand):

    name = "foo"
    help = "performs the Foo action"
    args = (
        ('--yell', Argument(
            action='store_true',
            help="Make it loud",
        )),
    )

    def invoke(self, args):
        if args.yell:
            print("FOO!")
        else:
            print("foo")

然后执行 bokeh foo --yell 将在控制台打印 FOO!

__init__(parser: ArgumentParser) None[source]#

使用其解析器初始化子命令

Parameters:

parser (Parser) – 一个 Argparse Parser 实例,用于配置此子命令的参数。

此方法将自动添加self.args中描述的所有参数。子类可以在self.parser上执行任何额外的自定义操作。

abstract invoke(args: Namespace) bool | None[源代码]#

接管主程序流程以执行子命令。

此方法必须由子类实现。 子类重写的方法返回不同的类型: bool: 构建 None: 文件输出(由HTML、SVG和JSON子类化。PNG重写了FileOutput.invoke方法),信息,初始化,样本数据,秘密,服务,静态

Parameters:

args (argparse.Namespace) – 用于解析子命令的命令行参数

Raises:

NotImplementedError