コード例 #1
0
def main(args=None):
    """Merges commands offered by pyct and bokeh and provides help for both"""
    from bokeh.command.subcommands import all as bokeh_commands

    try:
        import pyct.cmd
        pyct_commands = ['copy-examples', 'examples']
    except Exception:
        pass

    parser = argparse.ArgumentParser(
        prog="panel",
        epilog="See '<command> --help' to read about a specific subcommand.")

    parser.add_argument('-v',
                        '--version',
                        action='version',
                        version=__version__)

    subs = parser.add_subparsers(help="Sub-commands")

    for cmd in pyct_commands:
        cmd = cmd.replace('-', '_')
        fn = getattr(pyct.cmd, cmd)
        subs.add_parser(cmd, help=fn.__doc__)

    for cls in bokeh_commands:
        subs.add_parser(cls.name, help=cls.help)

    if len(sys.argv) == 1:
        all_commands = sorted([c.name for c in bokeh_commands] + pyct_commands)
        die("ERROR: Must specify subcommand, one of: %s" %
            nice_join(all_commands))

    if sys.argv[1] in ('--help', '-h'):
        args = parser.parse_args(sys.argv[1:])
        args.invoke(args)
        sys.exit()

    if len(sys.argv) > 1 and any(sys.argv[1] == c.name
                                 for c in bokeh_commands):
        if sys.argv[1] == 'serve' and not any(
                arg.startswith('--index') for arg in sys.argv):
            sys.argv = sys.argv + ['--index=%s' % INDEX_HTML]
        sys.argv = transform_cmds(sys.argv)
        bokeh_entry_point()
    elif sys.argv[1] in pyct_commands:
        try:
            import pyct.cmd
        except ImportError:
            print(
                "install pyct to enable this command (e.g. `conda install -c pyviz pyct` or `pip install pyct[cmd]`)"
            )
            sys.exit(1)
        pyct.cmd.substitute_main('panel', cmds=pyct_commands, args=args)
    else:
        parser.parse_args(sys.argv[1:])
        sys.exit(1)
コード例 #2
0
def main(args=None):
    """Merges commands offered by pyct and bokeh and provides help for both"""
    from bokeh.command.subcommands import all as bokeh_commands
    bokeh_commands = bokeh_commands + [OAuthSecret]

    try:
        import pyct.cmd
        pyct_commands = ['copy-examples', 'examples']
    except Exception:
        pass

    parser = argparse.ArgumentParser(
        prog="panel",
        epilog="See '<command> --help' to read about a specific subcommand.")

    parser.add_argument('-v',
                        '--version',
                        action='version',
                        version=__version__)

    subs = parser.add_subparsers(help="Sub-commands")

    for cmd in pyct_commands:
        cmd = cmd.replace('-', '_')
        fn = getattr(pyct.cmd, cmd)
        subs.add_parser(cmd, help=fn.__doc__)

    for cls in bokeh_commands:
        if cls is BkServe:
            subparser = subs.add_parser(Serve.name, help=Serve.help)
            subcommand = Serve(parser=subparser)
            subparser.set_defaults(invoke=subcommand.invoke)
        else:
            subs.add_parser(cls.name, help=cls.help)

    if len(sys.argv) == 1:
        all_commands = sorted([c.name for c in bokeh_commands] + pyct_commands)
        die("ERROR: Must specify subcommand, one of: %s" %
            nice_join(all_commands))

    if sys.argv[1] in ('--help', '-h'):
        args = parser.parse_args(sys.argv[1:])
        args.invoke(args)
        sys.exit()

    if len(sys.argv) > 1 and any(sys.argv[1] == c.name
                                 for c in bokeh_commands):
        sys.argv = transform_cmds(sys.argv)
        if sys.argv[1] == 'serve':
            args = parser.parse_args(sys.argv[1:])
            try:
                ret = args.invoke(args)
            except Exception as e:
                die("ERROR: " + str(e))
        elif sys.argv[1] == 'oauth-secret':
            ret = OAuthSecret(parser).invoke(args)
        else:
            ret = bokeh_entry_point()
    elif sys.argv[1] in pyct_commands:
        try:
            import pyct.cmd
        except ImportError:
            print(
                "install pyct to enable this command (e.g. `conda install -c pyviz pyct` or `pip install pyct[cmd]`)"
            )
            sys.exit(1)
        pyct.cmd.substitute_main('panel', cmds=pyct_commands, args=args)
    else:
        parser.parse_args(sys.argv[1:])
        sys.exit(1)

    if ret is False:
        sys.exit(1)
    elif ret is not True and isinstance(ret, int) and ret != 0:
        sys.exit(ret)