Source code for paref.interfaces.decorators

from typing import List


[docs] def initialize_empty_evaluations(func): def wrapper(*args, **kwargs): """Initialize storage for evaluations of the blackbox function """ args[0]._evaluations = [] func(*args, **kwargs) return wrapper
[docs] def store_evaluation_bbf(func): def wrapper(*args, **kwargs): """Store evaluation of the blackbox function """ result = func(*args, **kwargs) if kwargs.get('batch_evaluation', False): args[0]._evaluations.extend([[x, y] for x, y in zip(args[1], result)]) else: args[0]._evaluations.append([args[1], result]) return result return wrapper
[docs] def initialize_empty_list_of_pareto_reflections(func): def wrapper(*args, **kwargs): """Initialize storage for Pareto reflections """ args[0]._used_pareto_reflections = [] func(*args, **kwargs) return wrapper
[docs] def store_pareto_reflections(func): def wrapper(*args, **kwargs): """Store Pareto reflections """ result = func(*args, **kwargs) args[0]._used_pareto_reflections.append(result) return result return wrapper
[docs] def store(func, container: List): def wrapper(*args, **kwargs): """Store output of func in container """ result = func(*args, **kwargs) container.append(result) func(*args, **kwargs) return wrapper