From d761768c609ffb0276946c87e8612807fa253417 Mon Sep 17 00:00:00 2001 From: Xiaozhe Yao Date: Thu, 27 Sep 2018 22:01:54 +0800 Subject: [PATCH] fix #6 --- cvpm/server.py | 11 +++++++++-- cvpm/solver.py | 1 + dashboard/tpl/runner.tpl | 10 ++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 dashboard/tpl/runner.tpl diff --git a/cvpm/server.py b/cvpm/server.py index fed8abfb7..fb844fd3c 100644 --- a/cvpm/server.py +++ b/cvpm/server.py @@ -3,7 +3,6 @@ import os import socket import traceback - import gevent.pywsgi from flask import Flask, g, request from werkzeug.datastructures import ImmutableMultiDict @@ -19,6 +18,8 @@ server.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER +def str2bool(v): + return str(v).lower() in ("true", "false", "yes","t","1") def _isPortOpen(port): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) @@ -59,16 +60,22 @@ def infer(): if request.method == 'POST': results = {} config = ImmutableMultiDict(request.form) + config = config.to_dict() if 'file' not in request.files: return json.dumps({"error": "no file part!", "code": "400"}), 400 file = request.files['file'] if file and allowed_file(file.filename, 'infer'): filename = secure_filename(file.filename) + # make sure the UPLOAD_FOLDER exists + if not os.path.isdir(server.config['UPLOAD_FOLDER']): + os.makedirs(server.config['UPLOAD_FOLDER']) file_abs_path = os.path.join(server.config['UPLOAD_FOLDER'], filename) file.save(file_abs_path) try: - results = server.solver.infer(file_abs_path, config.to_dict()) + results = server.solver.infer(file_abs_path, config) + if str2bool(config['delete_after_process']): + os.remove(file_abs_path) return json.dumps(results), 200 except Exception as e: traceback.print_exc() diff --git a/cvpm/solver.py b/cvpm/solver.py index 4b4300141..2f64b4cc7 100644 --- a/cvpm/solver.py +++ b/cvpm/solver.py @@ -56,4 +56,5 @@ def train(self, train_x, train_y, **kwargs): pass def start(self, port=None): + print('Server will run on port: ' + str(port)) run_server(self, port) diff --git a/dashboard/tpl/runner.tpl b/dashboard/tpl/runner.tpl new file mode 100644 index 000000000..e4f0464ad --- /dev/null +++ b/dashboard/tpl/runner.tpl @@ -0,0 +1,10 @@ +#coding:utf-8 +import os +import sys +os.chdir(sys.path[0]) + +from {{Package}}.{{Filename}} import {{Classname}} + +solver = {{Classname}}() + +solver.start({{Port}}) \ No newline at end of file