/tortoisehg/util/debugthg.py
https://bitbucket.org/tortoisehg/hgtk/ · Python · 50 lines · 41 code · 3 blank · 6 comment · 16 complexity · a4cf7066d1994ad07b0a8ee736a62038 MD5 · raw file
- # debugthg.py - debugging library for TortoiseHg shell extensions
- #
- # Copyright 2008 Steve Borho <steve@borho.org>
- #
- # This software may be used and distributed according to the terms of the
- # GNU General Public License version 2, incorporated herein by reference.
- debugging = ''
- try:
- import _winreg
- try:
- hkey = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,
- r"Software\TortoiseHg", 0,
- _winreg.KEY_ALL_ACCESS)
- val = _winreg.QueryValueEx(hkey, 'OverlayDebug')[0]
- if val in ('1', 'True'):
- debugging += 'O'
- val = _winreg.QueryValueEx(hkey, 'ContextMenuDebug')[0]
- if val in ('1', 'True'):
- debugging += 'M'
- if debugging:
- import win32traceutil
- except EnvironmentError:
- pass
- except ImportError:
- import os
- debugging = os.environ.get("DEBUG_THG", "")
- if debugging.lower() in ("1", "true"):
- debugging = True
- def debugf_No(str, args=None, level=''):
- pass
- if debugging:
- def debug(level=''):
- return debugging == True or level in debugging
- def debugf(str, args=None, level=''):
- if not debug(level):
- return
- if args:
- print str % args
- elif debug('e') and isinstance(str, BaseException):
- import traceback
- traceback.print_exc()
- else:
- print str
- else:
- def debug(level=''):
- return False
- debugf = debugf_No