code: def func(self, values):
          
          if self.method == METHOD_MEAN:
              return self.func_mean(values)
          elif self.method == METHOD_MAX:
              return self.func_max(values)
          elif self.method == METHOD_MIN:
              return self.func_min(values)
          elif self.method == METHOD_CUSTOM:
              return self.func_custom(values)
          else:
              raise UnknownEnsembleMethodException(self.method)
docs: The actual ensembling logic that combines multiple *values*. The method call is forwareded
          tothe ensemble method-specific variant which is determined using *method*.