realtime-adsb-out/CustomDecorators.py
Mathieu Peyréga ffd073f1fd initial commit
2022-03-10 21:25:48 +01:00

23 lines
674 B
Python

import time
def Singleton(class_):
instances = {}
def getinstance(*args, **kwargs):
if class_ not in instances:
instances[class_] = class_(*args, **kwargs)
return instances[class_]
return getinstance
def Timed(method):
def timed(*args, **kw):
ts = time.time()
result = method(*args, **kw)
te = time.time()
if 'log_time' in kw:
name = kw.get('log_name', method.__name__.upper())
kw['log_time'][name] = int((te - ts) * 1000)
else:
print('%r total execution time was %2.2f ms' % (method.__name__, (te - ts) * 1000))
return result
return timed