46 lines
870 B
Python
46 lines
870 B
Python
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
|