class_docstr: Callable for pruning archives in the optimizer class.
  See Optimizer.pruning attribute, called at each "tell".
  
  Parameters
  ----------
  min_len: int
      minimum length of the pruned archive.
  max_len: int
      length at which pruning is activated (maximum allowed length for the archive).
  
  Note
  ----
  For each of the 3 criteria (optimistic, pessimistic and average), the min_len best (lowest)
  points will be kept, which can lead to at most 3 * min_len points.
code: def __call__(
      self, archive: Archive[MultiValue]
  ) -> Archive[MultiValue]:
      if len(archive) < self.max_len:
          return archive
      return self._prune(archive)
  
imports: import math
  import operator
  import numpy
  from nevergrad.parametrization import parameter
  from nevergrad.parametrization.utils import float_penalty
  import nevergrad.common.typing
  from nevergrad.common.tools import OrderedSet
label_desc: Use image node_id 2 for calling the Pruning obj's underlying member method code with example usage: obj.__call__(archive) and returns: self, archive