Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(172)

Unified Diff: third_party/google-endpoints/pyasn1/debug.py

Issue 2666783008: Add google-endpoints to third_party/. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/google-endpoints/pyasn1/compat/octets.py ('k') | third_party/google-endpoints/pyasn1/error.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/google-endpoints/pyasn1/debug.py
diff --git a/third_party/google-endpoints/pyasn1/debug.py b/third_party/google-endpoints/pyasn1/debug.py
new file mode 100644
index 0000000000000000000000000000000000000000..9b69886c04d2e75b36f689033e4c53a882c098c0
--- /dev/null
+++ b/third_party/google-endpoints/pyasn1/debug.py
@@ -0,0 +1,110 @@
+import time
+import logging
+from pyasn1.compat.octets import octs2ints
+from pyasn1 import error
+from pyasn1 import __version__
+
+flagNone = 0x0000
+flagEncoder = 0x0001
+flagDecoder = 0x0002
+flagAll = 0xffff
+
+flagMap = {
+ 'encoder': flagEncoder,
+ 'decoder': flagDecoder,
+ 'all': flagAll
+ }
+
+class Printer:
+ def __init__(self, logger=None, handler=None, formatter=None):
+ if logger is None:
+ logger = logging.getLogger('pyasn1')
+ logger.setLevel(logging.DEBUG)
+ if handler is None:
+ handler = logging.StreamHandler()
+ if formatter is None:
+ formatter = logging.Formatter('%(asctime)s %(name)s: %(message)s')
+ handler.setFormatter(formatter)
+ handler.setLevel(logging.DEBUG)
+ logger.addHandler(handler)
+ self.__logger = logger
+
+ def __call__(self, msg): self.__logger.debug(msg)
+ def __str__(self): return '<python built-in logging>'
+
+if hasattr(logging, 'NullHandler'):
+ NullHandler = logging.NullHandler
+else:
+ # Python 2.6 and older
+ class NullHandler(logging.Handler):
+ def emit(self, record):
+ pass
+
+class Debug:
+ defaultPrinter = None
+ def __init__(self, *flags, **options):
+ self._flags = flagNone
+ if options.get('printer') is not None:
+ self._printer = options.get('printer')
+ elif self.defaultPrinter is not None:
+ self._printer = self.defaultPrinter
+ if 'loggerName' in options:
+ # route our logs to parent logger
+ self._printer = Printer(
+ logger=logging.getLogger(options['loggerName']),
+ handler=NullHandler()
+ )
+ else:
+ self._printer = Printer()
+ self('running pyasn1 version %s' % __version__)
+ for f in flags:
+ 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.PyAsn1Error('bad debug flag %s' % f)
+
+ self('debug category \'%s\' %s' % (f, inverse and 'disabled' or 'enabled'))
+
+ def __str__(self):
+ return 'logger %s, flags %x' % (self._printer, self._flags)
+
+ def __call__(self, msg):
+ self._printer(msg)
+
+ def __and__(self, flag):
+ return self._flags & flag
+
+ def __rand__(self, flag):
+ return flag & self._flags
+
+logger = 0
+
+def setLogger(l):
+ global logger
+ logger = l
+
+def hexdump(octets):
+ return ' '.join(
+ [ '%s%.2X' % (n%16 == 0 and ('\n%.5d: ' % n) or '', x)
+ for n,x in zip(range(len(octets)), octs2ints(octets)) ]
+ )
+
+class Scope:
+ def __init__(self):
+ self._list = []
+
+ def __str__(self): return '.'.join(self._list)
+
+ def push(self, token):
+ self._list.append(token)
+
+ def pop(self):
+ return self._list.pop()
+
+scope = Scope()
« no previous file with comments | « third_party/google-endpoints/pyasn1/compat/octets.py ('k') | third_party/google-endpoints/pyasn1/error.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698