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

1from functools import wraps 

2from time import time 

3import inspect 

4from chalicelib.utils import helper 

5import logging 

6 

7logger = logging.getLogger(__name__) 

8 

9 

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 

30 

31 return wrapper