overpass/utils.py

25 lines
666 B
Python

import logging
import time
from functools import wraps
logger = logging.getLogger(__name__)
def timer(func):
"""
Decorator der die Ausführungszeit einer Funktion misst und loggt.
Verwendung:
@timer
def meine_funktion():
...
"""
@wraps(func) # erhält __name__, __doc__ der originalen Funktion
def wrapper(*args, **kwargs):
logger.info(f"Starte Timer...")
start = time.perf_counter()
result = func(*args, **kwargs)
elapsed = time.perf_counter() - start
logger.info(f"{func.__name__}() dauerte {round(elapsed, 2)} Sekunden\n\n")
return result
return wrapper