diff --git a/tools.py b/tools.py new file mode 100644 index 0000000..fe30842 --- /dev/null +++ b/tools.py @@ -0,0 +1,45 @@ +import os +import time +import logging +import traceback + +from datetime import datetime, timedelta +from pathlib import Path + +from functools import wraps + +########### +# LOGGING # +########### + +logger = logging.getLogger("acoused") + +######### +# WRAPS # +######### + +def trace(func): + @wraps(func) + def wrapper(*args, **kwargs): + t = time.time() + head = f"[TRACE]" + logger.debug( + f"{head} Call {func.__module__}." + + f"{func.__qualname__}({args}, {kwargs})" + ) + + value = func(*args, **kwargs) + + t1 = time.time() + logger.debug( + f"{head} Return {func.__module__}." + + f"{func.__qualname__}: {value}" + ) + logger.debug( + f"{head}[TIME] {func.__module__}." + + f"{func.__qualname__}: {t1-t} sec" + ) + + return value + + return wrapper