From f3dbdb57f325fe7d06628256f371ab0848297c6b Mon Sep 17 00:00:00 2001 From: keisuke-umezawa Date: Thu, 2 Mar 2023 23:36:18 +0900 Subject: [PATCH 1/2] Separete tell api into complete and fail --- optuna_dashboard/ts/action.ts | 45 +++++++++++++++---- .../ts/components/ObjectiveForm.tsx | 4 +- optuna_dashboard/ts/components/TrialTable.tsx | 4 +- 3 files changed, 41 insertions(+), 12 deletions(-) diff --git a/optuna_dashboard/ts/action.ts b/optuna_dashboard/ts/action.ts index e8f2aa35..46089d33 100644 --- a/optuna_dashboard/ts/action.ts +++ b/optuna_dashboard/ts/action.ts @@ -444,16 +444,44 @@ export const actionCreator = () => { }) } - const tellTrial = ( + const makeTrialFail = (studyId: number, trialId: number): void => { + const state = "Fail" + const message = `id=${trialId}, state=${state}` + tellTrialAPI(trialId, state) + .then(() => { + const index = studyDetails[studyId].trials.findIndex( + (t) => t.trial_id === trialId + ) + if (index === -1) { + enqueueSnackbar(`Unexpected error happens. Please reload the page.`, { + variant: "error", + }) + return + } + setTrialStateValues(studyId, index, state) + enqueueSnackbar(`Successfully updated trial (${message})`, { + variant: "success", + }) + }) + .catch((err) => { + const reason = err.response?.data.reason + enqueueSnackbar( + `Failed to update trial (${message}). Reason: ${reason}`, + { + variant: "error", + } + ) + console.log(err) + }) + } + + const makeTrialComplete = ( studyId: number, trialId: number, - state: TrialStateFinished, - values?: number[] + values: number[] ): void => { - const message = - values === undefined - ? `id=${trialId}, state=${state}` - : `id=${trialId}, state=${state}, values=${values}` + const state = "Complete" + const message = `id=${trialId}, state=${state}, values=${values}` tellTrialAPI(trialId, state, values) .then(() => { const index = studyDetails[studyId].trials.findIndex( @@ -498,7 +526,8 @@ export const actionCreator = () => { saveTrialNote, uploadArtifact, deleteArtifact, - tellTrial, + makeTrialComplete, + makeTrialFail, } } diff --git a/optuna_dashboard/ts/components/ObjectiveForm.tsx b/optuna_dashboard/ts/components/ObjectiveForm.tsx index ae8b2ae8..0e61ce09 100644 --- a/optuna_dashboard/ts/components/ObjectiveForm.tsx +++ b/optuna_dashboard/ts/components/ObjectiveForm.tsx @@ -69,7 +69,7 @@ export const ObjectiveForm: FC<{ if (filtered.length !== directions.length) { return } - action.tellTrial(trial.study_id, trial.trial_id, "Complete", filtered) + action.makeTrialComplete(trial.study_id, trial.trial_id, filtered) } const getObjectiveName = (i: number): string => { @@ -264,7 +264,7 @@ export const ObjectiveForm: FC<{ variant="outlined" color="error" onClick={() => { - action.tellTrial(trial.study_id, trial.trial_id, "Fail") + action.makeTrialFail(trial.study_id, trial.trial_id) }} > Fail Trial diff --git a/optuna_dashboard/ts/components/TrialTable.tsx b/optuna_dashboard/ts/components/TrialTable.tsx index 3ea8e14a..32206e8a 100644 --- a/optuna_dashboard/ts/components/TrialTable.tsx +++ b/optuna_dashboard/ts/components/TrialTable.tsx @@ -295,7 +295,7 @@ export const TrialTable: FC<{ return } - action.tellTrial(studyId, trialId, "Complete", objectiveValues) + action.makeTrialComplete(studyId, trialId, objectiveValues) } const handleFailTrial = (e: MouseEvent): void => { @@ -304,7 +304,7 @@ export const TrialTable: FC<{ } const studyId = studyDetail.id const trialId = trials[index].trial_id - action.tellTrial(studyId, trialId, "Fail") + action.makeTrialFail(studyId, trialId) } return ( From 41a4349b83ffcaea97aaf5464af9bde2689db099 Mon Sep 17 00:00:00 2001 From: keisuke-umezawa Date: Sat, 4 Mar 2023 11:30:34 +0900 Subject: [PATCH 2/2] Delete state variable --- optuna_dashboard/ts/action.ts | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/optuna_dashboard/ts/action.ts b/optuna_dashboard/ts/action.ts index 46089d33..9f8db581 100644 --- a/optuna_dashboard/ts/action.ts +++ b/optuna_dashboard/ts/action.ts @@ -445,9 +445,8 @@ export const actionCreator = () => { } const makeTrialFail = (studyId: number, trialId: number): void => { - const state = "Fail" - const message = `id=${trialId}, state=${state}` - tellTrialAPI(trialId, state) + const message = `id=${trialId}, state=Fail` + tellTrialAPI(trialId, "Fail") .then(() => { const index = studyDetails[studyId].trials.findIndex( (t) => t.trial_id === trialId @@ -458,7 +457,7 @@ export const actionCreator = () => { }) return } - setTrialStateValues(studyId, index, state) + setTrialStateValues(studyId, index, "Fail") enqueueSnackbar(`Successfully updated trial (${message})`, { variant: "success", }) @@ -480,9 +479,8 @@ export const actionCreator = () => { trialId: number, values: number[] ): void => { - const state = "Complete" - const message = `id=${trialId}, state=${state}, values=${values}` - tellTrialAPI(trialId, state, values) + const message = `id=${trialId}, state=Complete, values=${values}` + tellTrialAPI(trialId, "Complete", values) .then(() => { const index = studyDetails[studyId].trials.findIndex( (t) => t.trial_id === trialId @@ -493,7 +491,7 @@ export const actionCreator = () => { }) return } - setTrialStateValues(studyId, index, state, values) + setTrialStateValues(studyId, index, "Complete", values) enqueueSnackbar(`Successfully updated trial (${message})`, { variant: "success", })