Beispiel #1
0
def get_options_from_config(config_filename):
    if not os.path.exists(config_filename):
        print('config file not found {}'.format(config_filename))
        exit(1)

    with io.open(config_filename) as config_file:
        return GenerateOptions.from_yaml(yaml.load(config_file))
Beispiel #2
0
def get_options_from_config(config_filename: str) -> GenerateOptions:
    if not os.path.exists(config_filename):
        print(f'config file not found {config_filename}')
        exit(1)

    with open(config_filename) as config_file:
        return GenerateOptions.from_yaml(yaml.load(config_file))
Beispiel #3
0
def data() -> str:
    metric_names = frozenset(flask.g.config.widget_metrics)
    diff = flask.request.form['diff'].encode('UTF-8')

    metric_config = GenerateOptions.from_yaml(
        yaml.load(open('generate_config.yaml').read()),
    )
    parsers = get_metric_parsers_from_args(
        metric_config.metric_package_names, skip_defaults=False,
    )
    metrics = get_metrics(BLANK_COMMIT, diff, parsers, metric_config.exclude)
    metrics = tuple(
        metric for metric in metrics
        if metric.value and metric.name in metric_names
    )

    commit_deltas = sorted(
        CommitDelta.from_data(
            metric.name, Delta('javascript:;', metric.value),
            color_overrides=flask.g.config.color_overrides,
        )
        for metric in metrics
    )
    return json.dumps({
        'metrics': render_template('widget.mako', commit_deltas=commit_deltas),
    })
Beispiel #4
0
def main(argv: Optional[Sequence[str]] = None) -> 'NoReturn':
    parser = argparse.ArgumentParser()
    parser.add_argument('database_path', type=str)
    parser.add_argument('-p', '--port', type=int, default=5000)
    mutex = parser.add_mutually_exclusive_group()
    mutex.add_argument(
        '--debug', action='store_true',
        help=(
            'Run in debug mode (stacktraces + single process). '
            'Not suggested for production.'
        ),
    )
    mutex.add_argument(
        '--processes', type=int, default=5,
        help='Number of processes, does not apply to --debug',
    )
    args = parser.parse_args(argv)

    if not os.path.exists(args.database_path):
        print(f'Not found: {args.database_path}')
        print('Use git-code-debt-generate to create a database.')
        raise SystemExit(1)

    create_metric_config_if_not_exists()
    with open('metric_config.yaml') as f:
        contents = yaml.load(f)
    AppContext.config = Config.from_data(contents)

    AppContext.database_path = args.database_path
    kwargs = {'port': args.port, 'debug': args.debug}
    if not args.debug:
        kwargs['processes'] = args.processes
        kwargs['threaded'] = False

    app.run('0.0.0.0', **kwargs)
    raise SystemExit(1)