Skip to content

Instantly share code, notes, and snippets.

@winogradoff
winogradoff / timeit.py
Created April 21, 2016 18:45
Python timit decorator
def timeit(f):
def timed(*args, **kw):
ts = time.time()
result = f(*args, **kw)
te = time.time()
print("function time {} : {} sec".format(f.__name__, te - ts))
return result
return timed
@winogradoff
winogradoff / memoize.py
Last active April 21, 2016 18:46
Python memoize decorator
def memoize(obj):
cache = obj.cache = {}
@functools.wraps(obj)
def memoizer(*args, **kw):
if args not in cache:
cache[args] = obj(*args, **kw)
return cache[args]
return memoizer
@winogradoff
winogradoff / timeout.py
Last active January 25, 2023 16:48
Python timeout decorator
import time
from functools import wraps
from multiprocessing.context import TimeoutError
from multiprocessing.pool import ThreadPool
def timeout(seconds):
def timeout_wrapper(func):
@wraps(func)
def wrapped(*args, **kwargs):