def timethis(func):
 @wraps(func)
 def wrapper(*args, **kwargs):
  start = time.time()
  result = func(*args, **kwargs)
  end = time.time()
  print (func.__name__, (end - start))
  return result
 return wrapper

def timethis ( func ) : @ wraps ( func ) def wrapper ( * args , ** kwargs ) : start = time . time ( ) result = func ( * args , ** kwargs ) end = time . time ( ) print ( func . __name__ , ( end - start ) ) return result return wrapper
decorator that reports the execution time .