diff --git a/optuna_dashboard/app.py b/optuna_dashboard/app.py
index 2a0ea9b7..ff579f92 100644
--- a/optuna_dashboard/app.py
+++ b/optuna_dashboard/app.py
@@ -25,10 +25,11 @@ def catch_api_internal_error(view):
return response_body
except Exception as e:
response.status = 500
- response.content_type = 'application/json'
- stacktrace = '\n'.join(traceback.format_tb(e.__traceback__))
+ response.content_type = "application/json"
+ stacktrace = "\n".join(traceback.format_tb(e.__traceback__))
_logger.error(f"Exception: {e}\n{stacktrace}")
return json.dumps({"reason": "internal server error"})
+
return decorated
@@ -52,29 +53,29 @@ def create_app(storage):
def dashboard():
response.content_type = "text/html"
return """
-
-
-
- Optuna Dashboard
-
-
-
-
-
-
-
-
-
-
- """
+
+
+
+ Optuna Dashboard
+
+
+
+
+
+
+
+
+
+
+"""
@app.get("/api/studies")
@catch_api_internal_error
@@ -84,22 +85,22 @@ def create_app(storage):
serializer.serialize_study_summary(summary)
for summary in storage.get_all_study_summaries()
]
- return json.dumps({
- "study_summaries": summaries,
- })
+ return json.dumps(
+ {
+ "study_summaries": summaries,
+ }
+ )
@app.post("/api/studies")
@catch_api_internal_error
def create_study():
- response.content_type = 'application/json'
+ response.content_type = "application/json"
study_name = request.json.get("study_name", None)
direction = request.json.get("direction", None)
if study_name is None or direction not in ("minimize", "maximize"):
response.status = 400
- return {
- "reason": "You need to set study_name and direction"
- }
+ return {"reason": "You need to set study_name and direction"}
study_id = storage.create_new_study(study_name)
if direction.lower() == "maximize":
@@ -107,9 +108,9 @@ def create_app(storage):
summary = get_study_summary(storage, study_id)
response.status = 201
- return json.dumps({
- "study_summary": serializer.serialize_study_summary(summary)
- })
+ return json.dumps(
+ {"study_summary": serializer.serialize_study_summary(summary)}
+ )
@app.get("/api/studies/")
@catch_api_internal_error
@@ -117,9 +118,7 @@ def create_app(storage):
response.content_type = "application/json"
summary = get_study_summary(storage, study_id)
trials = storage.get_all_trials(study_id)
- return json.dumps(serializer.serialize_study_detail(
- summary, trials
- ))
+ return json.dumps(serializer.serialize_study_detail(summary, trials))
@app.get("/static/")
def send_static(filename):
diff --git a/optuna_dashboard/serializer.py b/optuna_dashboard/serializer.py
index 4b7fe3d5..ad9eee8d 100644
--- a/optuna_dashboard/serializer.py
+++ b/optuna_dashboard/serializer.py
@@ -27,7 +27,7 @@ def serialize_study_summary(summary: StudySummary) -> Dict[str, Any]:
}
if summary.datetime_start is not None:
- serialized["datetime_start"] = summary.datetime_start.isoformat(),
+ serialized["datetime_start"] = (summary.datetime_start.isoformat(),)
if summary.best_trial: # Make undefined if None
serialized["best_trial"] = serialize_frozen_trial(summary.best_trial)
@@ -35,7 +35,9 @@ def serialize_study_summary(summary: StudySummary) -> Dict[str, Any]:
return serialized
-def serialize_study_detail(summary: StudySummary, trials: List[FrozenTrial]) -> Dict[str, Any]:
+def serialize_study_detail(
+ summary: StudySummary, trials: List[FrozenTrial]
+) -> Dict[str, Any]:
serialized = {
"name": summary.study_name,
"direction": summary.direction.name.lower(),
@@ -44,13 +46,9 @@ def serialize_study_detail(summary: StudySummary, trials: List[FrozenTrial]) ->
serialized["datetime_start"] = summary.datetime_start.isoformat()
if summary.best_trial is not None:
- serialized["best_trial"] = serialize_frozen_trial(
- summary.best_trial)
+ serialized["best_trial"] = serialize_frozen_trial(summary.best_trial)
- serialized["trials"] = [
- serialize_frozen_trial(trial)
- for trial in trials
- ]
+ serialized["trials"] = [serialize_frozen_trial(trial) for trial in trials]
return serialized