class_docstr: A class to calculate the intersection search space of a :class:`~optuna.study.Study`.
  
  Intersection search space contains the intersection of parameter distributions that have been
  suggested in the completed trials of the study so far.
  If there are multiple parameters that have the same name but different distributions,
  neither is included in the resulting search space
  (i.e., the parameters with dynamic value ranges are excluded).
  
  Note that an instance of this class is supposed to be used for only one study.
  If different studies are passed to
  :func:`~optuna.search_space.IntersectionSearchSpace.calculate`,
  a :obj:`ValueError` is raised.
  
  Args:
      include_pruned:
          Whether pruned trials should be included in the search space.
code: def __init__(self, include_pruned: bool = False) -> None:
      self._cached_trial_number: int = -1
      self._search_space: Dict[str, BaseDistribution] | None = None
      self._study_id: int | None = None
  
      self._include_pruned = include_pruned
  
file_path: optuna/optuna/search_space/intersection.py
imports: from __future__ import annotations
  import copy
  from typing import Dict
  from typing import Tuple
  import optuna
  from optuna.distributions import BaseDistribution
  from optuna.study import Study
label_desc: Use image node_id 1 to create a new IntersectionSearchSpace object  with example: obj = IntersectionSearchSpace(include_pruned)