提供一个基类,用于定义Bokeh命令行应用程序的子命令。
Subcommand
子命令的抽象基类
子类应该实现 invoke(self, args) 方法,该方法接受一组argparse处理的参数作为输入。
invoke(self, args)
子类还应定义以下类属性:
name 此子命令的名称
name
help argparse用于此子命令的帮助字符串
help
args the parameters to pass to parser.add_argument
args
parser.add_argument
的格式 args 应该是以下形式的元组序列:
('argname', dict( metavar='ARGNAME', nargs='+', ))
示例
一个简单的子命令“foo”可能如下所示:
class Foo(Subcommand): name = "foo" help = "performs the Foo action" args = ( ('--yell', dict( action='store_true', help="Make it loud", )), ) def invoke(self, args): if args.yell: print("FOO!") else: print("foo")
然后执行 bokeh foo --yell 将打印 FOO! 在控制台上。
bokeh foo --yell
FOO!
__init__
使用子命令的解析器初始化子命令
parser (Parser) -- 一个Argparse Parser 实例来配置此子命令的参数。
Parser
此方法将自动添加中描述的所有参数 self.args . 子类可以对 self.parser .
self.args
self.parser
invoke
接管主程序流以执行子命令。
此方法必须由子类实现。 子类overwriten方法返回不同的类型:bool:Build None:FileOutput(由HTML、SVG和JSON子类化。PNG覆盖FileOutput.invoke文件输出方法),Info,Init,Sampledata,Secret,Serve,Static
args (argparse.Namespace) -- 要分析的子命令的命令行参数
NotImplementedError --