mirror of
https://github.com/wassname/optuna-dashboard.git
synced 2026-09-11 12:30:25 +08:00
Check if value is numbers.Real
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import copy
|
||||
import numbers
|
||||
import threading
|
||||
from typing import Any
|
||||
from typing import List
|
||||
@@ -9,7 +10,6 @@ from typing import Set
|
||||
from typing import Tuple
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
import numpy as np
|
||||
from optuna.distributions import BaseDistribution
|
||||
from optuna.trial import FrozenTrial
|
||||
from optuna.trial import TrialState
|
||||
@@ -86,11 +86,11 @@ class _CachedExtraStudyProperty:
|
||||
|
||||
self._cursor = next_cursor
|
||||
|
||||
def _is_sortable_value(self, v: Any) -> bool:
|
||||
return not isinstance(v, bool) and isinstance(v, (int, float, np.integer, np.floating))
|
||||
|
||||
def _update_user_attrs(self, trial: FrozenTrial) -> None:
|
||||
current_user_attrs = {k: self._is_sortable_value(v) for k, v in trial.user_attrs.items()}
|
||||
current_user_attrs = {
|
||||
k: not isinstance(v, bool) and isinstance(v, numbers.Real)
|
||||
for k, v in trial.user_attrs.items()
|
||||
}
|
||||
for attr_name, current_is_sortable in current_user_attrs.items():
|
||||
is_sortable = self._union_user_attrs.get(attr_name)
|
||||
if is_sortable is None:
|
||||
|
||||
@@ -2,11 +2,11 @@ from __future__ import annotations
|
||||
|
||||
from datetime import datetime
|
||||
import json
|
||||
import numbers
|
||||
from typing import Any
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import Union
|
||||
|
||||
import numpy as np
|
||||
from optuna.distributions import BaseDistribution
|
||||
from optuna.distributions import CategoricalDistribution
|
||||
from optuna.study import StudySummary
|
||||
@@ -104,8 +104,8 @@ def serialize_attrs(attrs: dict[str, Any]) -> list[Attribute]:
|
||||
value = "<binary object>"
|
||||
elif isinstance(v, str):
|
||||
value = v
|
||||
elif isinstance(v, (np.floating, np.integer)):
|
||||
value = str(v.item())
|
||||
elif isinstance(v, numbers.Real):
|
||||
value = str(v)
|
||||
else:
|
||||
value = json.dumps(v)
|
||||
value = value[:MAX_ATTR_LENGTH] if len(value) > MAX_ATTR_LENGTH else value
|
||||
|
||||
Reference in New Issue
Block a user