From 7f6154fb823d6de10748eba7fb785d3c163163d3 Mon Sep 17 00:00:00 2001 From: moririn2528 Date: Thu, 17 Aug 2023 15:23:57 +0900 Subject: [PATCH] add is_preferential flag to study summary API --- optuna_dashboard/_serializer.py | 1 + python_tests/test_serializers.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/optuna_dashboard/_serializer.py b/optuna_dashboard/_serializer.py index 04190f59..4a804af8 100644 --- a/optuna_dashboard/_serializer.py +++ b/optuna_dashboard/_serializer.py @@ -108,6 +108,7 @@ def serialize_study_summary(summary: StudySummary) -> dict[str, Any]: "study_name": summary.study_name, "directions": [d.name.lower() for d in summary.directions], "user_attrs": serialize_attrs(summary.user_attrs), + "is_preferential": summary.system_attrs.get(_SYSTEM_ATTR_PREFERENTIAL_STUDY, False), } if summary.datetime_start is not None: diff --git a/python_tests/test_serializers.py b/python_tests/test_serializers.py index 7a038b08..a75db32d 100644 --- a/python_tests/test_serializers.py +++ b/python_tests/test_serializers.py @@ -3,6 +3,7 @@ from __future__ import annotations import optuna from optuna_dashboard._serializer import serialize_attrs from optuna_dashboard._serializer import serialize_study_detail +from optuna_dashboard._serializer import serialize_study_summary from optuna_dashboard._storage import get_study_summaries from optuna_dashboard.preferential import create_study @@ -41,3 +42,22 @@ def test_get_study_detail_is_not_preferential() -> None: study_summary = study_summaries[0] study_detail = serialize_study_detail(study_summary, [], study.trials, [], [], [], False) assert not study_detail["is_preferential"] + + +def test_get_study_summary_is_preferential() -> None: + storage = optuna.storages.InMemoryStorage() + create_study(storage=storage) + study_summaries = get_study_summaries(storage) + assert len(study_summaries) == 1 + + study_summary = serialize_study_summary(study_summaries[0]) + assert study_summary["is_preferential"] + + +def test_get_study_summary_is_not_preferential() -> None: + storage = optuna.storages.InMemoryStorage() + optuna.create_study(storage=storage) + study_summaries = get_study_summaries(storage) + assert len(study_summaries) == 1 + study_summary = serialize_study_summary(study_summaries[0]) + assert not study_summary["is_preferential"]