Python traceback.extract_stack() Examples
The following are 30
code examples of traceback.extract_stack().
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: contractor.py From g3ar with BSD 2-Clause "Simplified" License | 6 votes |
def _worker(self, dictobj): """""" func = dictobj['func'] args = dictobj['args'] argv = dictobj['argv'] try: result = func(*args, **argv) except Exception as e: #print 'ecp occured' result = tuple([e, traceback.extract_stack()]) self.lock.acquire() self._executed_task_count = self._executed_task_count + 1 self._add_result_to_queue(result=result) self.lock.release()
Example #2
Source File: py_utils.py From lingvo with Apache License 2.0 | 6 votes |
def HasShape(tensor, expected_shape, ndims=None): """Syntactic sugar for asserting that tensor has the expected shape. Args: tensor: A Tensor. expected_shape: A Python list or a 1D tensor. ndims: If not None, check only the first `ndims` dimensions of `tensor`. Must be equal to the length of `expected_shape` if not None. Returns: The input `tensor` Raises: A runtime error if the assertion fails. """ if _FromGlobal('enable_asserts'): filepath, line, func, _ = traceback.extract_stack(limit=3)[-2] msg = 'LINGVO ASSERT %s:%s(%s)' % (re.sub(r'.*/', '', filepath), line, func) return with_dependencies([ ops.assert_shape_match( tf.shape(tensor)[:ndims], expected_shape, msg=msg) ], tensor) else: return tensor
Example #3
Source File: mail_logging.py From pagure with GNU General Public License v2.0 | 6 votes |
def format_callstack(): """ Format the callstack to find out the stack trace. """ ind = 0 for ind, frame in enumerate(f[0] for f in inspect.stack()): if "__name__" not in frame.f_globals: continue modname = frame.f_globals["__name__"].split(".")[0] if modname != "logging": break def _format_frame(frame): """ Format the frame. """ return ' File "%s", line %i in %s\n %s' % (frame) stack = traceback.extract_stack() stack = stack[:-ind] return "\n".join([_format_frame(frame) for frame in stack])
Example #4
Source File: test_pdb.py From pdbpp with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_top_bottom(): def a(): b() def b(): c() def c(): set_trace() return check( a, """ [NUM] > .*c() -> return 5 frames hidden .* # top [ 0] > .*() -> .* # bottom [{stack_len}] > .*c() -> return # c """.format(stack_len=len(traceback.extract_stack())))
Example #5
Source File: test_pdb.py From pdbpp with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_do_bt(): def fn(): set_trace() expected_bt = [] for i, entry in enumerate(traceback.extract_stack()[:-3]): expected_bt.append(" [%2d] .*" % i) expected_bt.append(" .*") check(fn, r""" --Return-- [NUM] > .*fn()->None -> set_trace() 5 frames hidden .* # bt {expected} [NUM] .*(NUM)runpdb() func() > [NUM] .*(NUM)fn()->None set_trace() # c """.format(expected="\n".join(expected_bt)))
Example #6
Source File: test_pdb.py From pdbpp with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_do_bt_highlight(): def fn(): set_trace(Config=ConfigWithHighlight) expected_bt = [] for i, entry in enumerate(traceback.extract_stack()[:-3]): expected_bt.append(" [%2d] .*" % i) expected_bt.append(" .*") check(fn, r""" --Return-- [NUM] > .*fn()->None -> set_trace(Config=ConfigWithHighlight) 5 frames hidden .* # bt {expected} [NUM] ^[[33;01m.*\.py^[[00m(^[[36;01mNUM^[[00m)runpdb() func() > [NUM] ^[[33;01m.*\.py^[[00m(^[[36;01mNUM^[[00m)fn()->None set_trace(Config=ConfigWithHighlight) # c """.format(expected="\n".join(expected_bt)))
Example #7
Source File: test_pdb.py From pdbpp with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_do_bt_pygments(): def fn(): set_trace(Config=ConfigWithPygments) expected_bt = [] for i, entry in enumerate(traceback.extract_stack()[:-3]): expected_bt.append(" [%2d] .*" % i) expected_bt.append(" .*") check(fn, r""" --Return-- [NUM] > .*fn()->None -> set_trace(Config^[[38;5;241m=^[[39mConfigWithPygments) 5 frames hidden .* # bt {expected} [NUM] .*(NUM)runpdb() func() > [NUM] .*\.py(NUM)fn()->None set_trace(Config^[[38;5;241m=^[[39mConfigWithPygments) # c """.format(expected="\n".join(expected_bt)))
Example #8
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 #9
Source File: Debug.py From arnold-usd with Apache License 2.0 | 6 votes |
def caller_trace(back=0): """ Trace caller stack and save info into global dicts, which are printed automatically at the end of SCons execution. """ global caller_bases, caller_dicts import traceback tb = traceback.extract_stack(limit=3+back) tb.reverse() callee = tb[1][:3] caller_bases[callee] = caller_bases.get(callee, 0) + 1 for caller in tb[2:]: caller = callee + caller[:3] try: entry = caller_dicts[callee] except KeyError: caller_dicts[callee] = entry = {} entry[caller] = entry.get(caller, 0) + 1 callee = caller # print a single caller and its callers, if any
Example #10
Source File: registry.py From lambda-packs with MIT License | 6 votes |
def register(self, candidate, name=None): """Registers a Python object "candidate" for the given "name". Args: candidate: The candidate object to add to the registry. name: An optional string specifying the registry key for the candidate. If None, candidate.__name__ will be used. Raises: KeyError: If same name is used twice. """ if not name: name = candidate.__name__ if name in self._registry: (filename, line_number, function_name, _) = ( self._registry[name][_LOCATION_TAG]) raise KeyError("Registering two %s with name '%s' !" "(Previous registration was in %s %s:%d)" % (self._name, name, function_name, filename, line_number)) logging.vlog(1, "Registering %s (%s) in %s.", name, candidate, self._name) # stack trace is [this_function, Register(), user_function,...] # so the user function is #2. stack = traceback.extract_stack() self._registry[name] = {_TYPE_TAG: candidate, _LOCATION_TAG: stack[2]}
Example #11
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 #12
Source File: registry.py From auto-alt-text-lambda-api with MIT License | 6 votes |
def register(self, candidate, name=None): """Registers a Python object "candidate" for the given "name". Args: candidate: The candidate object to add to the registry. name: An optional string specifying the registry key for the candidate. If None, candidate.__name__ will be used. Raises: KeyError: If same name is used twice. """ if not name: name = candidate.__name__ if name in self._registry: (filename, line_number, function_name, _) = ( self._registry[name][_LOCATION_TAG]) raise KeyError("Registering two %s with name '%s' !" "(Previous registration was in %s %s:%d)" % (self._name, name, function_name, filename, line_number)) logging.vlog(1, "Registering %s (%s) in %s.", name, candidate, self._name) # stack trace is [this_function, Register(), user_function,...] # so the user function is #2. stack = traceback.extract_stack() self._registry[name] = {_TYPE_TAG: candidate, _LOCATION_TAG: stack[2]}
Example #13
Source File: link.py From D-VAE with MIT License | 6 votes |
def thunk_hook(type, value, trace): """ WRITEME This function is meant to replace excepthook and do some special work if the exception value has a __thunk_trace__ field. In that case, it retrieves the field, which should contain a trace as returned by L{traceback.extract_stack}, and prints it out on L{stderr}. The normal excepthook is then called. Notes ----- This hook replaced by nosetests, so it does not run in nose tests. """ log_thunk_trace(value) __excepthook(type, value, trace)
Example #14
Source File: Debug.py From web2board with GNU Lesser General Public License v3.0 | 6 votes |
def caller_trace(back=0): import traceback tb = traceback.extract_stack(limit=3+back) tb.reverse() callee = tb[1][:3] caller_bases[callee] = caller_bases.get(callee, 0) + 1 for caller in tb[2:]: caller = callee + caller[:3] try: entry = caller_dicts[callee] except KeyError: caller_dicts[callee] = entry = {} entry[caller] = entry.get(caller, 0) + 1 callee = caller # print a single caller and its callers, if any
Example #15
Source File: thutil.py From Depth-Map-Prediction with GNU General Public License v3.0 | 6 votes |
def breakpoint(output, vars=None, cond=lambda v: True, grad=True): tb = tuple(traceback.extract_stack()[:-1]) py_vars = {} if type(vars) not in (tuple, list, dict, types.NoneType): raise ValueError('vars keyword arg must be None, dict, list or tuple') if not isinstance(vars, dict): frame_locals = inspect.stack()[1][0].f_locals if vars is not None: frame_locals = dict((name, val) for (name, val) in frame_locals.iteritems() if name in vars or val in vars) vars = frame_locals assert isinstance(vars, dict) th_vars = dict((name, val) for (name, val) in vars.iteritems() if isinstance(val, _theano_types)) py_vars = dict((name, val) for (name, val) in vars.iteritems() if name not in th_vars) (th_var_names, th_var_vals) = zip(*th_vars.iteritems()) return Breakpoint(th_var_names, cond, tb, py_vars, grad) \ (output, *th_var_vals)
Example #16
Source File: contractor.py From g3ar with BSD 2-Clause "Simplified" License | 6 votes |
def _worker(self, dictobj): """""" func = dictobj['func'] args = dictobj['args'] argv = dictobj['argv'] try: result = func(*args, **argv) except Exception as e: #print 'ecp occured' result = tuple([e, traceback.extract_stack()]) self.lock.acquire() self._executed_task_count = self._executed_task_count + 1 self._add_result_to_queue(result=result) self.lock.release()
Example #17
Source File: thread_utils.py From dash-masternode-tool with MIT License | 6 votes |
def acquire(self): stack = traceback.extract_stack() if len(stack) >= 2 + self.stackinfo_skip_lines: calling_filename, calling_line_number, _, _ = stack[-2 - self.stackinfo_skip_lines] else: calling_filename, calling_line_number = '', '' thread = threading.currentThread() if SAVE_CALL_STACK: # used in diagnostics call_stack = clean_call_stack(stack) else: call_stack = [] waiter = LockCaller(thread, calling_filename, calling_line_number, call_stack) self.waiters.append(waiter) self.__lock.acquire() self.depth += 1 self.waiters.remove(waiter) del waiter self.blocker = LockCaller(thread, calling_filename, calling_line_number, call_stack)
Example #18
Source File: pydevd_console.py From PyDev.Debugger with Eclipse Public License 1.0 | 6 votes |
def get_interactive_console(thread_id, frame_id, frame, console_message): """returns the global interactive console. interactive console should have been initialized by this time :rtype: DebugConsole """ if InteractiveConsoleCache.thread_id == thread_id and InteractiveConsoleCache.frame_id == frame_id: return InteractiveConsoleCache.interactive_console_instance InteractiveConsoleCache.interactive_console_instance = DebugConsole() InteractiveConsoleCache.thread_id = thread_id InteractiveConsoleCache.frame_id = frame_id console_stacktrace = traceback.extract_stack(frame, limit=1) if console_stacktrace: current_context = console_stacktrace[0] # top entry from stacktrace context_message = 'File "%s", line %s, in %s' % (current_context[0], current_context[1], current_context[2]) console_message.add_console_message(CONSOLE_OUTPUT, "[Current context]: %s" % (context_message,)) return InteractiveConsoleCache.interactive_console_instance
Example #19
Source File: Debug.py From pivy with ISC License | 6 votes |
def caller_trace(back=0): import traceback tb = traceback.extract_stack(limit=3+back) tb.reverse() callee = tb[1][:3] caller_bases[callee] = caller_bases.get(callee, 0) + 1 for caller in tb[2:]: caller = callee + caller[:3] try: entry = caller_dicts[callee] except KeyError: caller_dicts[callee] = entry = {} entry[caller] = entry.get(caller, 0) + 1 callee = caller # print a single caller and its callers, if any
Example #20
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 #21
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 #22
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 #23
Source File: deprecations.py From botogram with MIT License | 6 votes |
def warn(stack_pos, before_message, after_message=None): """Issue a warning caused by user code""" # This is a workaround for http://bugs.python.org/issue25108 # In Python 3.5.0, traceback.extract_stack returns an additional internal # stack frame, which causes a lot of trouble around there. if sys.version_info[:3] == (3, 5, 0): stack_pos -= 1 frame = traceback.extract_stack()[stack_pos - 1] at_message = "At: %s (line %s)" % (frame[0], frame[1]) warn_logger.warn(before_message) if after_message is not None: warn_logger.warn(at_message) warn_logger.warn(after_message + "\n") else: warn_logger.warn(at_message + "\n")
Example #24
Source File: error.py From CyberScan with GNU General Public License v3.0 | 6 votes |
def filter(self, record): from config import conf wt = conf.warning_threshold if wt > 0: stk = traceback.extract_stack() caller=None for f,l,n,c in stk: if n == 'warning': break caller = l tm,nb = self.warning_table.get(caller, (0,0)) ltm = time.time() if ltm-tm > wt: tm = ltm nb = 0 else: if nb < 2: nb += 1 if nb == 2: record.msg = "more "+record.msg else: return 0 self.warning_table[caller] = (tm,nb) return 1
Example #25
Source File: gunicorn.conf.py From torngas with BSD 3-Clause "New" or "Revised" License | 6 votes |
def worker_int(worker): worker.log.info("worker received INT or QUIT signal") ## get traceback info import threading, sys, traceback id2name = dict([(th.ident, th.name) for th in threading.enumerate()]) code = [] for threadId, stack in sys._current_frames().items(): code.append("\n# Thread: %s(%d)" % (id2name.get(threadId, ""), threadId)) for filename, lineno, name, line in traceback.extract_stack(stack): code.append('File: "%s", line %d, in %s' % (filename, lineno, name)) if line: code.append(" %s" % (line.strip())) worker.log.debug("\n".join(code))
Example #26
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 #27
Source File: perfrepo.py From pagure with GNU General Public License v2.0 | 5 votes |
def __iter__(self): STATS["diffs"][self.did]["iter"] = traceback.extract_stack(limit=2)[0] self.iter = iter(self.parent) return self
Example #28
Source File: color_print.py From mil with MIT License | 5 votes |
def color_string(msg, color=None): if color==None: fname, lineno, method, _ = tb.extract_stack()[-2] # Get caller color = get_color_code(fname) return _COLOR_MAP[color][0] + msg + Fore.RESET
Example #29
Source File: perfrepo.py From pagure with GNU General Public License v2.0 | 5 votes |
def __init__(self, path): STATS["repo_inits"].append((path, traceback.extract_stack(limit=2)[0])) STATS["counters"]["inits"] += 1 self.repo = real_pygit2_repository(path) self.iter = None
Example #30
Source File: base_classes.py From CyberScan with GNU General Public License v3.0 | 5 votes |
def __new__(cls, name, bases, dct): from error import log_loading import traceback try: for tb in traceback.extract_stack()+[("??",-1,None,"")]: f,l,_,line = tb if line.startswith("class"): break except: f,l="??",-1 raise log_loading.warning("Deprecated (no more needed) use of NewDefaultValues (%s l. %i)." % (f,l)) return super(NewDefaultValues, cls).__new__(cls, name, bases, dct)