2023-01-12 21:02:32 -05:00
|
|
|
from __future__ import (
|
|
|
|
|
division, absolute_import, print_function, unicode_literals
|
|
|
|
|
)
|
2019-10-14 11:55:18 +11:00
|
|
|
|
|
|
|
|
import sys
|
|
|
|
|
import functools
|
|
|
|
|
import time
|
2023-01-12 20:50:41 -05:00
|
|
|
|
2022-03-09 22:27:18 +01:00
|
|
|
from .lazylogger import LazyLogger
|
2019-10-14 11:55:18 +11:00
|
|
|
|
2020-07-25 01:01:30 -04:00
|
|
|
log = LazyLogger(__name__)
|
2019-10-14 11:55:18 +11:00
|
|
|
|
|
|
|
|
enabled = False
|
|
|
|
|
|
2020-06-21 11:27:09 +10:00
|
|
|
|
2019-10-14 11:55:18 +11:00
|
|
|
def set_timing_enabled(val):
|
|
|
|
|
global enabled
|
|
|
|
|
enabled = val
|
|
|
|
|
|
2020-06-21 11:27:09 +10:00
|
|
|
|
2019-10-14 11:55:18 +11:00
|
|
|
def timer(func):
|
|
|
|
|
@functools.wraps(func)
|
|
|
|
|
def wrapper(*args, **kwargs):
|
|
|
|
|
started = time.time()
|
|
|
|
|
value = func(*args, **kwargs)
|
|
|
|
|
ended = time.time()
|
|
|
|
|
if enabled:
|
|
|
|
|
data = ""
|
2020-07-02 12:40:37 +10:00
|
|
|
if func.__name__ == "download_url" and len(args) > 1:
|
2019-10-14 11:55:18 +11:00
|
|
|
data = args[1]
|
2020-07-02 12:40:37 +10:00
|
|
|
elif func.__name__ == "main_entry_point" and len(sys.argv) > 2:
|
2019-10-14 11:55:18 +11:00
|
|
|
data = sys.argv[2]
|
2023-01-15 10:07:49 -05:00
|
|
|
log.info("timing_data|{0}|{1}|{2}|{3}".format(
|
|
|
|
|
func.__name__, started, ended, data)
|
|
|
|
|
)
|
2019-10-14 11:55:18 +11:00
|
|
|
return value
|
2020-06-21 11:27:09 +10:00
|
|
|
return wrapper
|