Coverage for chalicelib/utils/dev.py: 0%
21 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 12:56 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 12:56 +0000
1from functools import wraps
2from time import time
3import inspect
4from chalicelib.utils import helper
5import logging
7logger = logging.getLogger(__name__)
10def timed(f):
11 @wraps(f)
12 def wrapper(*args, **kwds):
13 if not helper.TRACK_TIME:
14 return f(*args, **kwds)
15 start = time()
16 result = f(*args, **kwds)
17 elapsed = time() - start
18 if inspect.stack()[1][3] == "_view_func":
19 logger.debug("%s: took %d s to finish" % (f.__name__, elapsed))
20 else:
21 call_stack = [i[3] for i in inspect.stack()[1:] if i[3] != "wrapper"]
22 call_stack = [c for c in call_stack if
23 c not in ['__init__', '__call__', 'finish_request', 'process_request_thread',
24 'handle_request', '_generic_handle', 'handle', '_bootstrap_inner', 'run',
25 '_bootstrap', '_main_rest_api_handler', '_user_handler',
26 '_get_view_function_response', 'wrapped_event', 'handle_one_request',
27 '_global_error_handler', 'openreplay_middleware']]
28 logger.debug("%s > %s took %d s to finish" % (" > ".join(call_stack), f.__name__, elapsed))
29 return result
31 return wrapper