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) – 要使用此子命令的 args 配置的 Argparse Parser 实例。

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

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

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

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

参数:

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

引发:

NotImplementedError