Anaconda Enterprise: Documentation

# 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`