import typing from typing import Any from memory_profiler import memory_usage def measure(closure: typing.Callable[[...], Any], *args: Any, **kwargs: Any): """It measures the time and space efficiency of a closure""" start = time.perf_counter() usage = memory_usage((closure, args, kwargs), interval=0.1, max_usage=True) elapsed = time.time() - start return elapsed, usage