bokeh.command.subcommand#

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

class Subcommand(parser: ArgumentParser)[source]#

子命令的抽象基类

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

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

  • name 此子命令的名称

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

  • args 传递给 parser.add_argument 的参数

args 的格式应该是一个元组序列,形式如下

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

示例

一个简单的子命令 “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]#

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

参数:

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

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

abstract invoke(args: Namespace) bool | None[source]#

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

此方法必须由子类实现。 子类重写的方法返回不同的类型:bool: Build None: FileOutput (由 HTML、SVG 和 JSON 子类化。PNG 重写 FileOutput.invoke 方法), Info, Init, Sampledata, Secret, Serve, Static

参数:

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

Raises:

NotImplementedError