Wed, 31 Jan 2018 14:54:58 +0200
fixed python3.6ism
#!/usr/bin/env python3 from flask import Flask, render_template, redirect, request, abort from ldcheck import load_config, load_colours, find_ldconfig_ldr_paths from ldcheck import read_ldraw from testsuite import load_tests, check_model, problem_text app = Flask('LDCheck') @app.route('/', methods = ['GET', 'POST']) def web_front(): if request.method == 'POST': # check if the post request has the file part if 'file' not in request.files or not request.files['file'].filename: return redirect(request.url) file = request.files['file'] config = load_config('ldcheck.cfg') for ldconfig_ldr_path in find_ldconfig_ldr_paths(config): with ldconfig_ldr_path.open() as ldconfig_ldr: load_colours(ldconfig_ldr) try: model = read_ldraw( file.stream, name = file.filename, config = config, ) except: abort(400) test_suite = load_tests() report = check_model(model, test_suite) # Amend human-readable messages into the report for problem in report['problems']: object = model.body[problem['body-index']] problem['message'] = problem_text(problem, test_suite) problem['ldraw-code'] = object.textual_representation() else: report = None return render_template('webfront.html', report = report, ) @app.route('/static/<path:path>') def static_file(path): from flask import send_from_directory from os import path return send_from_directory(path.join('static', path)) if __name__ == '__main__': from argparse import ArgumentParser parser = ArgumentParser() parser.add_argument('-p', '--port', type = int, default = 5000) parser.add_argument('-d', '--debug', action = 'store_true') args = parser.parse_args() app.run(port = args.port, debug = args.debug)