summaryrefslogtreecommitdiff
path: root/pysnmp/debug.py
diff options
context:
space:
mode:
authorelie <elie>2012-07-23 14:52:49 +0000
committerelie <elie>2012-07-23 14:52:49 +0000
commit1bcdbc6db5626a32c5e391f11202fe2973ff6f01 (patch)
tree1ee4d5556cef0f72238505efdd8414bc6f4717db /pysnmp/debug.py
parentfd1a95d52d64c5fab87337a3e452196dbed0c6b9 (diff)
downloadpysnmp-1bcdbc6db5626a32c5e391f11202fe2973ff6f01.tar.gz
built-in debugger now supports negating debugging categories
Diffstat (limited to 'pysnmp/debug.py')
-rw-r--r--pysnmp/debug.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/pysnmp/debug.py b/pysnmp/debug.py
index ab826b9..e7c113f 100644
--- a/pysnmp/debug.py
+++ b/pysnmp/debug.py
@@ -35,10 +35,18 @@ class Debug:
self._flags = flagNone
self._printer = self.defaultPrinter
for f in flags:
- if f not in flagMap:
+ inverse = f and f[0] in ('!', '~')
+ if inverse:
+ f = f[1:]
+ try:
+ if inverse:
+ self._flags &= ~flagMap[f]
+ else:
+ self._flags |= flagMap[f]
+ except KeyError:
raise error.PySnmpError('bad debug flag %s' % f)
- self._flags = self._flags | flagMap[f]
- self('debug category %s enabled' % f)
+
+ self('debug category %s %s' % (f, inverse and 'disabled' or 'enabled'))
def __str__(self):
return 'logger %s, flags %x' % (self._printer, self._flags)