Python traceback.extract_tb() Examples
The following are 30
code examples of traceback.extract_tb().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
traceback
, or try the search function
.
Example #1
Source File: concurrent_test.py From viewfinder with Apache License 2.0 | 6 votes |
def test_future_traceback(self): @return_future @gen.engine def f(callback): yield gen.Task(self.io_loop.add_callback) try: 1 / 0 except ZeroDivisionError: self.expected_frame = traceback.extract_tb( sys.exc_info()[2], limit=1)[0] raise try: yield f() self.fail("didn't get expected exception") except ZeroDivisionError: tb = traceback.extract_tb(sys.exc_info()[2]) self.assertIn(self.expected_frame, tb) # The following series of classes demonstrate and test various styles # of use, with and without generators and futures.
Example #2
Source File: Main.py From pivy with ISC License | 6 votes |
def find_deepest_user_frame(tb): """ Find the deepest stack frame that is not part of SCons. Input is a "pre-processed" stack trace in the form returned by traceback.extract_tb() or traceback.extract_stack() """ tb.reverse() # find the deepest traceback frame that is not part # of SCons: for frame in tb: filename = frame[0] if string.find(filename, os.sep+'SCons'+os.sep) == -1: return frame return tb[0]
Example #3
Source File: code.py From meddle with MIT License | 6 votes |
def showtraceback(self): """Display the exception that just occurred. We remove the first stack item because it is our own code. The output is written by self.write(), below. """ try: type, value, tb = sys.exc_info() sys.last_type = type sys.last_value = value sys.last_traceback = tb tblist = traceback.extract_tb(tb) del tblist[:1] list = traceback.format_list(tblist) if list: list.insert(0, "Traceback (most recent call last):\n") list[len(list):] = traceback.format_exception_only(type, value) finally: tblist = tb = None map(self.write, list)
Example #4
Source File: SConscript.py From arnold-usd with Apache License 2.0 | 6 votes |
def SConscript_exception(file=sys.stderr): """Print an exception stack trace just for the SConscript file(s). This will show users who have Python errors where the problem is, without cluttering the output with all of the internal calls leading up to where we exec the SConscript.""" exc_type, exc_value, exc_tb = sys.exc_info() tb = exc_tb while tb and stack_bottom not in tb.tb_frame.f_locals: tb = tb.tb_next if not tb: # We did not find our exec statement, so this was actually a bug # in SCons itself. Show the whole stack. tb = exc_tb stack = traceback.extract_tb(tb) try: type = exc_type.__name__ except AttributeError: type = str(exc_type) if type[:11] == "exceptions.": type = type[11:] file.write('%s: %s:\n' % (type, exc_value)) for fname, line, func, text in stack: file.write(' File "%s", line %d:\n' % (fname, line)) file.write(' %s\n' % text)
Example #5
Source File: cli.py From Nest with MIT License | 6 votes |
def hook_exceptions(self, logger: logging.RootLogger) -> None: """Format excetion traceback. Parameters: logger: The logger for logging exceptions. """ def _hook(exc_type, value, exc_tb) -> None: nest_dir = os.path.dirname(os.path.abspath(__file__)) traceback_str = '' idx = 0 for file_name, line_number, func_name, text in traceback.extract_tb(exc_tb)[1:]: # skip Nest-related tracebacks to make it more readable if os.path.dirname(os.path.abspath(file_name)) == nest_dir: continue idx += 1 traceback_str += '\n [%d] File "%s", line %d, in function "%s"\n %s' % \ (idx, file_name, line_number, func_name, text) if traceback_str != '': traceback_str = 'Traceback: ' + traceback_str logger.critical('Exception occurred during resolving:\nType: %s\nMessage: %s\n%s' % \ (exc_type.__name__, value, traceback_str)) sys.excepthook = _hook
Example #6
Source File: serialization.py From Penny-Dreadful-Tools with GNU General Public License v3.0 | 6 votes |
def extra_serializer(obj: Any) -> Union[int, str, List[Any], Dict[str, Any]]: """JSON serializer for objects not serializable by default json code""" if isinstance(obj, datetime.datetime): return dtutil.dt2ts(obj) if isinstance(obj, bytes): return obj.decode('utf-8') if isinstance(obj, decimal.Decimal): return obj.to_eng_string() if isinstance(obj, (set, KeysView)): return list(obj) if isinstance(obj, Exception): stack = traceback.extract_tb(obj.__traceback__) return traceback.format_list(stack) if hasattr(obj, 'to_dict'): return obj.to_dict() if hasattr(obj, '__attrs_attrs__'): val: Dict[str, Any] = {} for a in obj.__attrs_attrs__: val[a.name] = getattr(obj, a.name) return val raise TypeError('Type {t} not serializable - {obj}'.format(t=type(obj), obj=obj))
Example #7
Source File: pydevconsole.py From PyDev.Debugger with Eclipse Public License 1.0 | 6 votes |
def showtraceback(self, *args, **kwargs): """Display the exception that just occurred.""" # Override for avoid using sys.excepthook PY-12600 try: type, value, tb = sys.exc_info() sys.last_type = type sys.last_value = value sys.last_traceback = tb tblist = traceback.extract_tb(tb) del tblist[:1] lines = traceback.format_list(tblist) if lines: lines.insert(0, "Traceback (most recent call last):\n") lines.extend(traceback.format_exception_only(type, value)) finally: tblist = tb = None sys.stderr.write(''.join(lines))
Example #8
Source File: concurrent_test.py From tornado-zh with MIT License | 6 votes |
def test_future_traceback(self): @return_future @gen.engine def f(callback): yield gen.Task(self.io_loop.add_callback) try: 1 / 0 except ZeroDivisionError: self.expected_frame = traceback.extract_tb( sys.exc_info()[2], limit=1)[0] raise try: yield f() self.fail("didn't get expected exception") except ZeroDivisionError: tb = traceback.extract_tb(sys.exc_info()[2]) self.assertIn(self.expected_frame, tb) # The following series of classes demonstrate and test various styles # of use, with and without generators and futures.
Example #9
Source File: concurrent_test.py From tornado-zh with MIT License | 6 votes |
def test_future_traceback(self): @return_future @gen.engine def f(callback): yield gen.Task(self.io_loop.add_callback) try: 1 / 0 except ZeroDivisionError: self.expected_frame = traceback.extract_tb( sys.exc_info()[2], limit=1)[0] raise try: yield f() self.fail("didn't get expected exception") except ZeroDivisionError: tb = traceback.extract_tb(sys.exc_info()[2]) self.assertIn(self.expected_frame, tb) # The following series of classes demonstrate and test various styles # of use, with and without generators and futures.
Example #10
Source File: session.py From streamlink with BSD 2-Clause "Simplified" License | 6 votes |
def print_small_exception(start_after): type, value, traceback_ = sys.exc_info() tb = traceback.extract_tb(traceback_) index = 0 for i, trace in enumerate(tb): if trace[2] == start_after: index = i + 1 break lines = traceback.format_list(tb[index:]) lines += traceback.format_exception_only(type, value) for line in lines: sys.stderr.write(line) sys.stderr.write("\n")
Example #11
Source File: detect.py From roca with MIT License | 6 votes |
def log(self, cause=None, do_message=True, custom_msg=None): """ Loads exception data from the current exception frame - should be called inside the except block :return: """ message = error_message(self, cause=cause) exc_type, exc_value, exc_traceback = sys.exc_info() traceback_formatted = traceback.format_exc() traceback_val = traceback.extract_tb(exc_traceback) md5 = hashlib.md5(traceback_formatted.encode('utf-8')).hexdigest() if md5 in self._db: # self.logger.debug('Exception trace logged: %s' % md5) return if custom_msg is not None and cause is not None: self.logger.debug('%s : %s' % (custom_msg, cause)) elif custom_msg is not None: self.logger.debug(custom_msg) elif cause is not None: self.logger.debug('%s' % cause) self.logger.debug(traceback_formatted) self._db.add(md5)
Example #12
Source File: pydevconsole_code_for_ironpython.py From PyDev.Debugger with Eclipse Public License 1.0 | 6 votes |
def showtraceback(self, *args, **kwargs): """Display the exception that just occurred. We remove the first stack item because it is our own code. The output is written by self.write(), below. """ try: type, value, tb = sys.exc_info() sys.last_type = type sys.last_value = value sys.last_traceback = tb tblist = traceback.extract_tb(tb) del tblist[:1] list = traceback.format_list(tblist) if list: list.insert(0, "Traceback (most recent call last):\n") list[len(list):] = traceback.format_exception_only(type, value) finally: tblist = tb = None map(self.write, list)
Example #13
Source File: Main.py From arnold-usd with Apache License 2.0 | 6 votes |
def find_deepest_user_frame(tb): """ Find the deepest stack frame that is not part of SCons. Input is a "pre-processed" stack trace in the form returned by traceback.extract_tb() or traceback.extract_stack() """ tb.reverse() # find the deepest traceback frame that is not part # of SCons: for frame in tb: filename = frame[0] if filename.find(os.sep+'SCons'+os.sep) == -1: return frame return tb[0]
Example #14
Source File: test_zipimport.py From oss-ftp with MIT License | 6 votes |
def doTraceback(self, module): try: module.do_raise() except: tb = sys.exc_info()[2].tb_next f,lno,n,line = extract_tb(tb, 1)[0] self.assertEqual(line, raise_src.strip()) f,lno,n,line = extract_stack(tb.tb_frame, 1)[0] self.assertEqual(line, raise_src.strip()) s = StringIO.StringIO() print_tb(tb, 1, s) self.assertTrue(s.getvalue().endswith(raise_src)) else: raise AssertionError("This ought to be impossible")
Example #15
Source File: code.py From oss-ftp with MIT License | 6 votes |
def showtraceback(self): """Display the exception that just occurred. We remove the first stack item because it is our own code. The output is written by self.write(), below. """ try: type, value, tb = sys.exc_info() sys.last_type = type sys.last_value = value sys.last_traceback = tb tblist = traceback.extract_tb(tb) del tblist[:1] list = traceback.format_list(tblist) if list: list.insert(0, "Traceback (most recent call last):\n") list[len(list):] = traceback.format_exception_only(type, value) finally: tblist = tb = None map(self.write, list)
Example #16
Source File: __init__.py From pynt with GNU General Public License v3.0 | 6 votes |
def handle_exception(type, value, tb): # Print stack trace. info = traceback.format_exception(type, value, tb) logging.error(''.join(info)) # Get local variables. while True: if not tb.tb_next: break next_frame = traceback.extract_tb(tb)[1] if next_frame.filename.startswith('/'): # not our code break tb = tb.tb_next local_vars = tb.tb_frame.f_locals # Start kernel. import os pid = os.fork() if pid == 0: open(f"{os.environ['HOME']}/.pynt", 'a').close() import IPython IPython.start_kernel(user_ns=local_vars) os.waitpid(pid, 0)
Example #17
Source File: code.py From ironpython2 with Apache License 2.0 | 6 votes |
def showtraceback(self): """Display the exception that just occurred. We remove the first stack item because it is our own code. The output is written by self.write(), below. """ try: type, value, tb = sys.exc_info() sys.last_type = type sys.last_value = value sys.last_traceback = tb tblist = traceback.extract_tb(tb) del tblist[:1] list = traceback.format_list(tblist) if list: list.insert(0, "Traceback (most recent call last):\n") list[len(list):] = traceback.format_exception_only(type, value) finally: tblist = tb = None map(self.write, list)
Example #18
Source File: concurrent_test.py From viewfinder with Apache License 2.0 | 6 votes |
def test_future_traceback(self): @return_future @gen.engine def f(callback): yield gen.Task(self.io_loop.add_callback) try: 1 / 0 except ZeroDivisionError: self.expected_frame = traceback.extract_tb( sys.exc_info()[2], limit=1)[0] raise try: yield f() self.fail("didn't get expected exception") except ZeroDivisionError: tb = traceback.extract_tb(sys.exc_info()[2]) self.assertIn(self.expected_frame, tb) # The following series of classes demonstrate and test various styles # of use, with and without generators and futures.
Example #19
Source File: test_zipimport.py From ironpython2 with Apache License 2.0 | 6 votes |
def doTraceback(self, module): try: module.do_raise() except: tb = sys.exc_info()[2].tb_next f,lno,n,line = extract_tb(tb, 1)[0] self.assertEqual(line, raise_src.strip()) f,lno,n,line = extract_stack(tb.tb_frame, 1)[0] self.assertEqual(line, raise_src.strip()) s = StringIO.StringIO() print_tb(tb, 1, s) self.assertTrue(s.getvalue().endswith(raise_src)) else: raise AssertionError("This ought to be impossible")
Example #20
Source File: async_traceback.py From botoflow with Apache License 2.0 | 6 votes |
def format_exc(limit=None, exception=None, tb_list=None): """ This is like print_exc(limit) but returns a string instead of printing to a file. """ result = ["Traceback (most recent call last):\n"] if exception is None: exception = get_context_with_traceback(get_async_context()).exception if tb_list is None: tb_list = extract_tb(limit) if tb_list: result.extend(traceback.format_list(tb_list)) result.extend(traceback.format_exception_only(exception.__class__, exception)) return result else: return None
Example #21
Source File: code.py From Computable with MIT License | 6 votes |
def showtraceback(self): """Display the exception that just occurred. We remove the first stack item because it is our own code. The output is written by self.write(), below. """ try: type, value, tb = sys.exc_info() sys.last_type = type sys.last_value = value sys.last_traceback = tb tblist = traceback.extract_tb(tb) del tblist[:1] list = traceback.format_list(tblist) if list: list.insert(0, "Traceback (most recent call last):\n") list[len(list):] = traceback.format_exception_only(type, value) finally: tblist = tb = None map(self.write, list)
Example #22
Source File: utility.py From ServerMsgPush with BSD 2-Clause "Simplified" License | 6 votes |
def output_wechat(): from . import config exc_type, exc_value, exc_tb = sys.exc_info() exc_type_msg = exc_type.__name__ if exc_type else exc_type exc_tbs = sorted( [e for e in traceback.extract_tb(exc_tb)], key=lambda e: len(e.filename)) exc_tb = exc_tbs[0] if exc_tbs else None exc_tb = exc_tb if exc_tb else None for user in eval(config['base']['maintainer']): send_msg( user, config['template']['url'], exc_type_msg, str(exc_value) if exc_value else None, *exc_tb ) if exc_type_msg or exc_value or exc_tb else None
Example #23
Source File: run.py From BinderFilter with MIT License | 6 votes |
def print_exception(): import linecache linecache.checkcache() flush_stdout() efile = sys.stderr typ, val, tb = excinfo = sys.exc_info() sys.last_type, sys.last_value, sys.last_traceback = excinfo tbe = traceback.extract_tb(tb) print>>efile, '\nTraceback (most recent call last):' exclude = ("run.py", "rpc.py", "threading.py", "Queue.py", "RemoteDebugger.py", "bdb.py") cleanup_traceback(tbe, exclude) traceback.print_list(tbe, file=efile) lines = traceback.format_exception_only(typ, val) for line in lines: print>>efile, line,
Example #24
Source File: test_zipimport.py From BinderFilter with MIT License | 6 votes |
def doTraceback(self, module): try: module.do_raise() except: tb = sys.exc_info()[2].tb_next f,lno,n,line = extract_tb(tb, 1)[0] self.assertEqual(line, raise_src.strip()) f,lno,n,line = extract_stack(tb.tb_frame, 1)[0] self.assertEqual(line, raise_src.strip()) s = StringIO.StringIO() print_tb(tb, 1, s) self.assertTrue(s.getvalue().endswith(raise_src)) else: raise AssertionError("This ought to be impossible")
Example #25
Source File: code.py From BinderFilter with MIT License | 6 votes |
def showtraceback(self): """Display the exception that just occurred. We remove the first stack item because it is our own code. The output is written by self.write(), below. """ try: type, value, tb = sys.exc_info() sys.last_type = type sys.last_value = value sys.last_traceback = tb tblist = traceback.extract_tb(tb) del tblist[:1] list = traceback.format_list(tblist) if list: list.insert(0, "Traceback (most recent call last):\n") list[len(list):] = traceback.format_exception_only(type, value) finally: tblist = tb = None map(self.write, list)
Example #26
Source File: errors.py From kotori with GNU Affero General Public License v3.0 | 6 votes |
def traceback_get_exception(num = -1): # build error message exception_string = ''.join(traceback.format_exception_only(sys.exc_type, hasattr(sys, 'exc_value') and sys.exc_value or 'Unknown')) # extract error location from traceback if hasattr(sys, 'exc_traceback'): (filename, line_number, function_name, text) = traceback.extract_tb(sys.exc_traceback)[num] else: (filename, line_number, function_name, text) = ('-', '-', '-', '-') error = { 'message': exception_string, 'location': { 'filename': filename, 'line_number': line_number, 'function_name': function_name, 'text': text, } } return error
Example #27
Source File: autoreload.py From bioforum with MIT License | 6 votes |
def check_errors(fn): def wrapper(*args, **kwargs): global _exception try: fn(*args, **kwargs) except Exception: _exception = sys.exc_info() et, ev, tb = _exception if getattr(ev, 'filename', None) is None: # get the filename from the last item in the stack filename = traceback.extract_tb(tb)[-1][0] else: filename = ev.filename if filename not in _error_files: _error_files.append(filename) raise return wrapper
Example #28
Source File: SConscript.py From web2board with GNU Lesser General Public License v3.0 | 6 votes |
def SConscript_exception(file=sys.stderr): """Print an exception stack trace just for the SConscript file(s). This will show users who have Python errors where the problem is, without cluttering the output with all of the internal calls leading up to where we exec the SConscript.""" exc_type, exc_value, exc_tb = sys.exc_info() tb = exc_tb while tb and stack_bottom not in tb.tb_frame.f_locals: tb = tb.tb_next if not tb: # We did not find our exec statement, so this was actually a bug # in SCons itself. Show the whole stack. tb = exc_tb stack = traceback.extract_tb(tb) try: type = exc_type.__name__ except AttributeError: type = str(exc_type) if type[:11] == "exceptions.": type = type[11:] file.write('%s: %s:\n' % (type, exc_value)) for fname, line, func, text in stack: file.write(' File "%s", line %d:\n' % (fname, line)) file.write(' %s\n' % text)
Example #29
Source File: Main.py From web2board with GNU Lesser General Public License v3.0 | 6 votes |
def find_deepest_user_frame(tb): """ Find the deepest stack frame that is not part of SCons. Input is a "pre-processed" stack trace in the form returned by traceback.extract_tb() or traceback.extract_stack() """ tb.reverse() # find the deepest traceback frame that is not part # of SCons: for frame in tb: filename = frame[0] if filename.find(os.sep+'SCons'+os.sep) == -1: return frame return tb[0]
Example #30
Source File: utils.py From DCRM with GNU Affero General Public License v3.0 | 6 votes |
def import_symbol(import_path, setting_name): """ Import a class or function by name. """ mod_name, class_name = import_path.rsplit('.', 1) # import module try: mod = import_module(mod_name) cls = getattr(mod, class_name) except ImportError as e: __, __, exc_traceback = sys.exc_info() frames = traceback.extract_tb(exc_traceback) if len(frames) > 1 and any('importlib' not in f[0] for f in frames[1:]): raise # import error is a level deeper. raise ImproperlyConfigured("{0} does not point to an existing class: {1}".format(setting_name, import_path)) except AttributeError: raise ImproperlyConfigured("{0} does not point to an existing class: {1}".format(setting_name, import_path)) return cls