__init__.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. # -*- coding: utf-8 -*-
  2. from functools import wraps
  3. import logging
  4. import time as t
  5. __author__ = 'Cahyo Primawidodo'
  6. __email__ = 'cahyo.p@gmail.com'
  7. __version__ = '0.1.0'
  8. def debug_log(lvl=logging.DEBUG, logger_name=None):
  9. def enable(f):
  10. logger = logging.getLogger(logger_name)
  11. @wraps(f)
  12. def wrapper(*args, **kwargs):
  13. init = logger.getEffectiveLevel()
  14. logger.setLevel(lvl)
  15. print('\n# function: {}'.format(f.__name__))
  16. y = f(*args, **kwargs)
  17. logger.setLevel(init)
  18. return y
  19. return wrapper
  20. return enable
  21. def time_this(fmt, multiplier=1, **print_kwargs):
  22. def enable(f):
  23. @wraps(f)
  24. def wrapper(*args, **kwargs):
  25. start_t = t.time()
  26. y = f(*args, **kwargs)
  27. end_t = t.time()
  28. print('\n# function: {}'.format(f.__name__))
  29. print(fmt.format(multiplier * (end_t-start_t)), **print_kwargs)
  30. return y
  31. return wrapper
  32. return enable
  33. def peek_vars():
  34. def enable(f):
  35. @wraps(f)
  36. def wrapper(*args, **kwargs):
  37. y = f(*args, **kwargs)
  38. print('\n# function: {}'.format(f.__name__))
  39. print('args: {}'.format(str(args)))
  40. print('kwargs: {}'.format(str(kwargs)))
  41. print('return: {}'.format(str(y)))
  42. return y
  43. return wrapper
  44. return enable