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))
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))
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), })
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)