bokeh.command.subcommand

Provides a base class for defining subcommands of the Bokeh command line application.

class bokeh.command.subcommand.Subcommand(parser)

Abstract base class for subcommands

Subclasses should implement an invoke(self, args) method that accepts a set of argparse processed arguments as input.

Subclasses should also define the following class attributes:

  • name a name for this subcommand
  • help a help string for argparse to use for this subcommand
  • args the parameters to pass to parser.add_argument

The format of the args should be a sequence of tuples of the form:

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

Example

A simple subcommand “foo” might look like this:

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")

Then executing bokeh foo --yell would print FOO! at the console.

invoke(args)

Takes over main program flow to perform the subcommand.

This method must be implemented by subclasses.

Parameters:args (seq) – command line arguments for the subcommand to parse
Raises:NotImplementedError