import asyncio import glob from flask import Blueprint, request, send_file from radar.plot_original import final_plot_v1, ALL_MODEL_NAMES from radar.plot_prod import final_plot_v2 import threading plot_v1 = final_plot_v1 plot_v2 = final_plot_v2 all_model_names = ALL_MODEL_NAMES globed_all_files = glob.glob("./radar/data/**/**.txt", recursive=True) radar_module = Blueprint("Radar", __name__) @radar_module.route("/metadata") def get_all_files(): return globed_all_files @radar_module.route("/metadata/models") def get_all_models(): return all_model_names @radar_module.route('/render/v1') def render_v1(): """ wind_type: Any, year: Any, H: Any, model_name: Any """ wind_type = request.args.get('wind_type') year = request.args.get('year') H = request.args.get('H') model_name = request.args.get('model_name') station = request.args.get('station') buf = plot_v1(wind_type, int(year), int(H), model_name, station) return send_file(buf, mimetype='image/png') @radar_module.route('/render/v2') def render_v2(): """ year: Any, station: Any, model_name: Any """ year = request.args.get('year') station = request.args.get('station') model_name = request.args.get('model_name') # async_plot_v2 = asyncio.coroutine(plot_v2) buffer = plot_v2(int(year), station, model_name) return send_file(buffer, mimetype='image/png')