Source code for deephyper.evaluator._decorator

import time
from functools import wraps

#! info [why is it important to use "wraps"]
#! http://gael-varoquaux.info/programming/decoration-in-python-done-right-decorating-and-pickling.html


[docs]def profile(run_function): """Decorator to use on a ``run_function`` to profile its execution-time. It is to be used such as: .. code-block:: @profile def run(config): ... return y Args: run_function (function): the function to decorate. Returns: function: a decorated function. """ @wraps(run_function) def wrapper(*args, **kwargs): timestamp_start = time.time() objective = run_function(*args, **kwargs) timestamp_end = time.time() return { "objective": objective, "timestamp_start": timestamp_start, "timestamp_end": timestamp_end, } return wrapper