code: def _log_completed_trial(self: Study, trial: FrozenTrial) -> None:
      if not _logger.isEnabledFor(logging.INFO):
          return
  
      n_objectives = len(self.directions)
      frozen_multi_objective_trial = (
          multi_objective.trial.FrozenMultiObjectiveTrial(
              n_objectives,
              trial,
          )
      )
      actual_values = frozen_multi_objective_trial.values
      _logger.info(
          "Trial {} finished with values: {} with parameters: {}.".format(
              trial.number, actual_values, trial.params
          )
      )
  
imports: import types
  from typing import Any
  from typing import Callable
  from typing import Container
  from typing import Dict
  from typing import Iterable
  from typing import List
  from typing import Optional
  from typing import Sequence
  from typing import Tuple
  from typing import Type
  from typing import Union
  from optuna import logging
  from optuna import multi_objective
  from optuna._deprecated import deprecated_class
  from optuna._deprecated import deprecated_func
  from optuna.pruners import NopPruner
  from optuna.storages import BaseStorage
  from optuna.study import create_study
  from optuna.study import load_study
  from optuna.study import Study
  from optuna.study._study_direction import StudyDirection
  from optuna.trial import FrozenTrial
  from optuna.trial import Trial
  from optuna.trial import TrialState
label_desc: Use image node_id 3 for calling a global function with example usage: _log_completed_trial(trial) without return types