diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..d99f2f3 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "[python]": { + "editor.defaultFormatter": "ms-python.black-formatter" + }, + "python.formatting.provider": "none" +} \ No newline at end of file diff --git a/app/app.db b/app/app.db index b9e05e9..cacd22d 100644 Binary files a/app/app.db and b/app/app.db differ diff --git a/app/results/main_select.py b/app/results/main_select.py index bcfb67d..045eb42 100644 --- a/app/results/main_select.py +++ b/app/results/main_select.py @@ -15,6 +15,7 @@ from flask import ( send_file, url_for, ) +from dotenv import dotenv_values from flask_login import current_user, login_required results = Blueprint("results", __name__, template_folder="templates") @@ -84,6 +85,7 @@ def best(file_name): message=f"This best results file ({file_name}) has not been " "created yet! or...", error=str(e), + back=url_for("results.select"), ) info = file_name.split("_") model = info[3].split(".")[0] @@ -103,14 +105,22 @@ def set_compare(): def report(file_name): os.chdir(current_user.benchmark.folder) back = request.args.get("url") or "" + back_name = request.args.get("url_name") or "" with open(os.path.join(Folders.results, file_name)) as f: data = json.load(f) try: summary = process_data(file_name, current_app.config["COMPARE"], data) except Exception as e: - return render_template("error.html", message=str(e)) + return render_template( + "error.html", message=str(e), back=url_for("results.select") + ) return render_template( - "report.html", data=data, file=file_name, summary=summary, back=back + "report.html", + data=data, + file=file_name, + summary=summary, + back=back, + back_name=back_name, ) @@ -177,3 +187,35 @@ def download(file_name): os.chdir(current_app.root_path) shutil.copyfile(src, dest) return send_file(dest, as_attachment=True) + + +@results.route("/dataset_report/") +@login_required +def dataset_report(dataset): + # Get info of the results obtained for a dataset + os.chdir(current_user.benchmark.folder) + app_config = dotenv_values(".env") + dt = Datasets() + data = dt.get_attributes(dataset) + names = Files.get_all_results(hidden=False) + results = {} + for name in names: + try: + with open(os.path.join(Folders.results, name)) as f: + data = json.load(f) + for result in data["results"]: + if dataset == result["dataset"]: + results[name] = result + except Exception as e: + return render_template( + "error.html", + message=f"Couldn't process file ({name})", + error=str(e), + back=url_for("results.dataset_report", dataset=dataset), + ) + return render_template( + "dataset.html", + dataset_name=dataset, + results=results, + app_config=app_config, + ) diff --git a/app/results/templates/_table_report.html b/app/results/templates/_table_report.html index 457cd25..6bd2d7c 100644 --- a/app/results/templates/_table_report.html +++ b/app/results/templates/_table_report.html @@ -4,9 +4,9 @@ {% endif %} @@ -85,7 +85,7 @@ data-field="time" data-sortable="true" data-sorter="remove_plus">Time - hyperparameters + Hyperparameters - {% endblock %} diff --git a/app/results/templates/report_tables.html b/app/results/templates/report_tables.html new file mode 100644 index 0000000..5d951bc --- /dev/null +++ b/app/results/templates/report_tables.html @@ -0,0 +1,17 @@ +{% extends "base.html" %} +{% block styles %} + {{ super() }} + + + +{% endblock %} +{% block content %}{% endblock %} +{% block jscript %} + {{ super() }} + + + +{% endblock %} diff --git a/app/results/templates/select.html b/app/results/templates/select.html index a8cef6c..c71fc24 100644 --- a/app/results/templates/select.html +++ b/app/results/templates/select.html @@ -1,21 +1,9 @@ -{% extends "base.html" %} -{% block styles %} - {{ super() }} - - - -{% endblock %} +{% extends "report_tables.html" %} {% block content %} {% include "_table_select.html" %} {% endblock %} {% block jscript %} {{ super() }} - - - {% endblock %}