class_docstr: A trial is a process of evaluating an objective function.
  
  This object is passed to an objective function and provides interfaces to get parameter
  suggestion, manage the trial's state, and set/get user-defined attributes of the trial.
  
  Note that the direct use of this constructor is not recommended.
  This object is seamlessly instantiated and passed to the objective function behind
  the :func:`optuna.multi_objective.study.MultiObjectiveStudy.optimize()` method;
  hence library users do not care about instantiation of this object.
  
  Args:
      trial:
          A :class:`~optuna.trial.Trial` object.
code: def suggest_categorical(
      self, name: str, choices: Sequence[bool]
  ) -> bool:
      ...
  
imports: from datetime import datetime
  from typing import Any
  from typing import Dict
  from typing import List
  from typing import Optional
  from typing import overload
  from typing import Sequence
  from typing import Union
  from optuna import multi_objective
  from optuna._convert_positional_args import convert_positional_args
  from optuna._deprecated import deprecated_class
  from optuna.distributions import BaseDistribution
  from optuna.study._study_direction import StudyDirection
  from optuna.trial import FrozenTrial
  from optuna.trial import Trial
  from optuna.trial import TrialState
  from optuna.trial._base import _SUGGEST_INT_POSITIONAL_ARGS
label_desc: Use image node_id 8 for calling the MultiObjectiveTrial obj's underlying member method code with example usage: obj.suggest_categorical(name, choices) without return types