/tortoisehg/util/debugthg.py

https://bitbucket.org/tortoisehg/hgtk/ · Python · 50 lines · 41 code · 3 blank · 6 comment · 16 complexity · a4cf7066d1994ad07b0a8ee736a62038 MD5 · raw file

  1. # debugthg.py - debugging library for TortoiseHg shell extensions
  2. #
  3. # Copyright 2008 Steve Borho <steve@borho.org>
  4. #
  5. # This software may be used and distributed according to the terms of the
  6. # GNU General Public License version 2, incorporated herein by reference.
  7. debugging = ''
  8. try:
  9. import _winreg
  10. try:
  11. hkey = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,
  12. r"Software\TortoiseHg", 0,
  13. _winreg.KEY_ALL_ACCESS)
  14. val = _winreg.QueryValueEx(hkey, 'OverlayDebug')[0]
  15. if val in ('1', 'True'):
  16. debugging += 'O'
  17. val = _winreg.QueryValueEx(hkey, 'ContextMenuDebug')[0]
  18. if val in ('1', 'True'):
  19. debugging += 'M'
  20. if debugging:
  21. import win32traceutil
  22. except EnvironmentError:
  23. pass
  24. except ImportError:
  25. import os
  26. debugging = os.environ.get("DEBUG_THG", "")
  27. if debugging.lower() in ("1", "true"):
  28. debugging = True
  29. def debugf_No(str, args=None, level=''):
  30. pass
  31. if debugging:
  32. def debug(level=''):
  33. return debugging == True or level in debugging
  34. def debugf(str, args=None, level=''):
  35. if not debug(level):
  36. return
  37. if args:
  38. print str % args
  39. elif debug('e') and isinstance(str, BaseException):
  40. import traceback
  41. traceback.print_exc()
  42. else:
  43. print str
  44. else:
  45. def debug(level=''):
  46. return False
  47. debugf = debugf_No