class_docstr: Combines a function and its parametrization for running experiments (see benchmark subpackage)
  
  Parameters
  ----------
  function: callable
      the callable to convert
  parametrization: Parameter
      the parametrization of the function
  Notes
  -----
  - you can redefine custom "evaluation_function" and "compute_pseudotime" for custom behaviors in experiments
  - the bool/int/str/float init arguments are added as descriptors for the experiment which will serve in
    definining test cases. You can add more through "add_descriptors".
  - Makes sure you the "copy()" methods works (provides a new copy of the function *and* its parametrization)
    if you subclass ExperimentFunction since it is intensively used in benchmarks.
    By default, this will create a new instance using the same init arguments as your current instance
    (they were recorded through "__new__"'s magic) and apply the additional descriptors you may have added,
    as well as propagate the new parametrization *if it has a different name as the current one*.
class_docstr_tok: ["Combines","a","function","and","its","parametrization","for","running","experiments","(","see","benchmark","subpackage",")","Parameters","--","--","--","--","--","function",":","callable","the","callable","to","convert","parametrization",":","Parameter","the","parametrization","of","the","function","Notes","--","--","-","-","you","can","redefine","custom","``","evaluation_function","''","and","``","compute_pseudotime","''","for","custom","behaviors","in","experiments","-","the","bool\/int\/str\/float","init","arguments","are","added","as","descriptors","for","the","experiment","which","will","serve","in","definining","test","cases",".","You","can","add","more","through","``","add_descriptors","''",".","-","Makes","sure","you","the","``","copy","(",")","''","methods","works","(","provides","a","new","copy","of","the","function","*","and","*","its","parametrization",")","if","you","subclass","ExperimentFunction","since","it","is","intensively","used","in","benchmarks",".","By","default",",","this","will","create","a","new","instance","using","the","same","init","arguments","as","your","current","instance","(","they","were","recorded","through","``","__new__","''","'s","magic",")","and","apply","the","additional","descriptors","you","may","have","added",",","as","well","as","propagate","the","new","parametrization","*","if","it","has","a","different","name","as","the","current","one","*","."]
docstr: Computes a pseudotime used during benchmarks for mocking parallelization in a reproducible way.
  By default, each call takes 1 unit of pseudotime, but this can be modified by overriding this
  function and the pseudo time can be a function of the function inputs and output.
  
  Note: This replaces get_postponing_delay which has been aggressively deprecated
  
  Parameters
  ----------
  input_parameter: Any
      the input that was provided to the actual function
  value: float
      the output of the actual function
  
  Returns
  -------
  float
      the pseudo computation time of the call to the actual function
docstr_tok: ["Computes","a","pseudotime","used","during","benchmarks","for","mocking","parallelization","in","a","reproducible","way",".","By","default",",","each","call","takes","1","unit","of","pseudotime",",","but","this","can","be","modified","by","overriding","this","function","and","the","pseudo","time","can","be","a","function","of","the","function","inputs","and","output",".","Note",":","This","replaces","get_postponing_delay","which","has","been","aggressively","deprecated","Parameters","--","--","--","--","--","input_parameter",":","Any","the","input","that","was","provided","to","the","actual","function","value",":","float","the","output","of","the","actual","function","Returns","--","--","--","-","float","the","pseudo","computation","time","of","the","call","to","the","actual","function"]
code: def compute_pseudotime(  # pylint: disable=unused-argument
      self, input_parameter: tp.ArgsKwargs, loss: tp.Loss
  ) -> float:
      """Computes a pseudotime used during benchmarks for mocking parallelization in a reproducible way.
      By default, each call takes 1 unit of pseudotime, but this can be modified by overriding this
      function and the pseudo time can be a function of the function inputs and output.
  
      Note: This replaces get_postponing_delay which has been aggressively deprecated
  
      Parameters
      ----------
      input_parameter: Any
          the input that was provided to the actual function
      value: float
          the output of the actual function
  
      Returns
      -------
      float
          the pseudo computation time of the call to the actual function
      """
      return 1.0
  
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 14 for calling the ExperimentFunction obj's underlying member method code with example usage: obj.compute_pseudotime(input_parameter, loss) and returns: int