From d9c3928e542faabaf8a9cb3d235029939cb65f09 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Sun, 1 Dec 2019 11:07:59 +0100 Subject: utilz --- cli/cli.py | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100755 cli/cli.py (limited to 'cli/cli.py') diff --git a/cli/cli.py b/cli/cli.py new file mode 100755 index 0000000..4a1e8e5 --- /dev/null +++ b/cli/cli.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python + +# -------------------------------------------------------- +# VFRAME Synthetic Data cli +# -------------------------------------------------------- + +import click + +from app.settings import app_cfg +from app.utils import logger_utils +from app.utils.click_factory import ClickSimple + +# -------------------------------------------------------- +# Entrypoint +# -------------------------------------------------------- + +if __name__ == '__main__': + + import sys + import argparse + + # argparse: intercept group + argv_tmp = sys.argv + sys.argv = sys.argv[:2] + ap = argparse.ArgumentParser('\033[1m\033[94mMEGAPIXELS\033[0m') + ap.add_argument('group', choices=app_cfg.CLICK_GROUPS.keys()) + args = ap.parse_args() + sys.argv = argv_tmp + sys.argv.pop(1) # remove group + + # special cases: Flask, DB + if args.group == 'flask': + + from flask.cli import FlaskGroup + from app.server.web import create_app + cli = FlaskGroup(create_app=create_app) + + elif args.group == 'db': + + import re + from alembic.config import main + sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) + + else: + + # click: parse rest of argv + cc = ClickSimple.create(app_cfg.CLICK_GROUPS[args.group]) + @click.group(cls=cc, chain=False, no_args_is_help=True) + @click.option('-v', '--verbose', 'opt_verbosity', count=True, default=4, + show_default=True, + help='Verbosity: -v DEBUG, -vv INFO, -vvv WARN, -vvvv ERROR, -vvvvv CRITICAL') + @click.pass_context + def cli(ctx, opt_verbosity): + """\033[1m\033[94mMEGAPIXELS\033[0m + """ + ctx.opts = {} + logger_utils.Logger.create(verbosity=opt_verbosity) # init logger + + + # ------------------------------------------------------------ + # entrypoint + # ------------------------------------------------------------ + + cli() \ No newline at end of file -- cgit v1.2.3-70-g09d2