from typing import NamedTuple from typing import Optional from typing import Sequence from typing import Tuple from typing import Union import warnings import optuna from optuna.exceptions import ExperimentalWarning from optuna.study import Study from optuna.study._multi_objective import _get_pareto_front_trials_by_trials from optuna.trial import FrozenTrial from optuna.trial import TrialState from optuna.visualization._plotly_imports import _imports if _imports.is_successful(): from optuna.visualization._plotly_imports import go _logger = optuna.logging.get_logger(__name__) class _ParetoFrontInfo(NamedTuple): n_targets: int target_names: List[str] best_trials_with_values: List[Tuple[FrozenTrial, List[float]]] non_best_trials_with_values: List[Tuple[FrozenTrial, List[float]]] infeasible_trials_with_values: List[Tuple[FrozenTrial, List[float]]] axis_order: List[int] include_dominated_trials: bool has_constraints_func: bool
import pytest import optuna from optuna import Study from optuna.study import create_study from optuna.testing.visualization import prepare_study_with_trials from optuna.trial import create_trial from optuna.visualization import plot_edf as plotly_plot_edf from optuna.visualization._edf import _EDFInfo from optuna.visualization._edf import _get_edf_info from optuna.visualization._edf import NUM_SAMPLES_X_AXIS from optuna.visualization._plotly_imports import _imports as plotly_imports from optuna.visualization.matplotlib import plot_edf as plt_plot_edf from optuna.visualization.matplotlib._matplotlib_imports import _imports as plt_imports if plotly_imports.is_successful(): from optuna.visualization._plotly_imports import go if plt_imports.is_successful(): from optuna.visualization.matplotlib._matplotlib_imports import Axes from optuna.visualization.matplotlib._matplotlib_imports import plt parametrized_plot_edf = pytest.mark.parametrize( "plot_edf", [plotly_plot_edf, plt_plot_edf]) def save_static_image(figure: Union[go.Figure, Axes, np.ndarray]) -> None: if isinstance(figure, go.Figure): figure.write_image(BytesIO()) else: plt.savefig(BytesIO())