class_docstr: Pack several mono-objective experiments into a multiobjective experiment
  
  
  Parameters
  ----------
  experiments: iterable of ExperimentFunction
  
  Notes
  -----
  - packing of multiobjective experiments is not supported.
  - parametrization must match between all functions (only their name is checked as initialization)
  - there is no descriptor for the packed functions, except the name (concatenetion of packed function names).
class_docstr_tok: ["Pack","several","mono-objective","experiments","into","a","multiobjective","experiment","Parameters","--","--","--","--","--","experiments",":","iterable","of","ExperimentFunction","Notes","--","--","-","-","packing","of","multiobjective","experiments","is","not","supported",".","-","parametrization","must","match","between","all","functions","(","only","their","name","is","checked","as","initialization",")","-","there","is","no","descriptor","for","the","packed","functions",",","except","the","name","(","concatenetion","of","packed","function","names",")","."]
code: def __init__(
      self,
      experiments: tp.Iterable[ExperimentFunction],
      upper_bounds: tp.ArrayLike,
  ) -> None:
      xps = list(experiments)
      assert xps
      assert len(xps) == len(
          {id(xp) for xp in xps}
      ), "All experiments must be different instances"
      assert all(
          xp.multiobjective_upper_bounds is None for xp in xps
      ), "Packing multiobjective xps is not supported."
      assert all(
          xps[0].parametrization.name == xp.parametrization.name
          for xp in xps[1:]
      ), "Parametrization do not match"
      super().__init__(self._multi_func, xps[0].parametrization)
      self.multiobjective_upper_bounds = np.array(upper_bounds)
      self._descriptors.update(
          name=",".join(
              xp._descriptors.get("name", "#unknown#") for xp in xps
          )
      )
      self._experiments = xps
  
imports: import inspect
  from pathlib import Path
  import numbers
  import numpy
  import nevergrad.common.typing
  from nevergrad.common import errors
  from nevergrad.common.errors import UnsupportedExperiment
  from nevergrad.parametrization import parameter
  from nevergrad.optimization import multiobjective
label_desc: Use image node_id 1 to create a new MultiExperiment object from inherited base classes: ExperimentFunction with example: obj = MultiExperiment(experiments, upper_bounds)