Code style cleanup in bdb.

This commit is contained in:
Georg Brandl 2010-11-29 20:12:24 +00:00
parent 8175daec10
commit 2660747a0b
1 changed files with 21 additions and 31 deletions

View File

@ -3,16 +3,14 @@
import fnmatch
import sys
import os
import types
__all__ = ["BdbQuit", "Bdb", "Breakpoint"]
class BdbQuit(Exception):
"""Exception to give up completely"""
"""Exception to give up completely."""
class Bdb:
"""Generic Python debugger base class.
This class takes care of details of the trace facility;
@ -120,14 +118,14 @@ class Bdb:
def break_here(self, frame):
filename = self.canonic(frame.f_code.co_filename)
if not filename in self.breaks:
if filename not in self.breaks:
return False
lineno = frame.f_lineno
if not lineno in self.breaks[filename]:
if lineno not in self.breaks[filename]:
# The line itself has no breakpoint, but maybe the line is the
# first line of a function with breakpoint set by function name.
lineno = frame.f_code.co_firstlineno
if not lineno in self.breaks[filename]:
if lineno not in self.breaks[filename]:
return False
# flag says ok to delete temp. bp
@ -243,12 +241,9 @@ class Bdb:
import linecache # Import as late as possible
line = linecache.getline(filename, lineno)
if not line:
return 'Line %s:%d does not exist' % (filename,
lineno)
if not filename in self.breaks:
self.breaks[filename] = []
list = self.breaks[filename]
if not lineno in list:
return 'Line %s:%d does not exist' % (filename, lineno)
list = self.breaks.setdefault(filename, [])
if lineno not in list:
list.append(lineno)
bp = Breakpoint(filename, lineno, temporary, cond, funcname)
@ -260,11 +255,10 @@ class Bdb:
def clear_break(self, filename, lineno):
filename = self.canonic(filename)
if not filename in self.breaks:
if filename not in self.breaks:
return 'There are no breakpoints in %s' % filename
if lineno not in self.breaks[filename]:
return 'There is no breakpoint at %s:%d' % (filename,
lineno)
return 'There is no breakpoint at %s:%d' % (filename, lineno)
# If there's only one bp in the list for that file,line
# pair, then remove the breaks entry
for bp in Breakpoint.bplist[filename, lineno][:]:
@ -281,7 +275,7 @@ class Bdb:
def clear_all_file_breaks(self, filename):
filename = self.canonic(filename)
if not filename in self.breaks:
if filename not in self.breaks:
return 'There are no breakpoints in %s' % filename
for line in self.breaks[filename]:
blist = Breakpoint.bplist[filename, line]
@ -354,31 +348,30 @@ class Bdb:
i = max(0, len(stack) - 1)
return stack, i
#
def format_stack_entry(self, frame_lineno, lprefix=': '):
import linecache, reprlib
frame, lineno = frame_lineno
filename = self.canonic(frame.f_code.co_filename)
s = '%s(%r)' % (filename, lineno)
if frame.f_code.co_name:
s = s + frame.f_code.co_name
s += frame.f_code.co_name
else:
s = s + "<lambda>"
s += "<lambda>"
if '__args__' in frame.f_locals:
args = frame.f_locals['__args__']
else:
args = None
if args:
s = s + reprlib.repr(args)
s += reprlib.repr(args)
else:
s = s + '()'
s += '()'
if '__return__' in frame.f_locals:
rv = frame.f_locals['__return__']
s = s + '->'
s = s + reprlib.repr(rv)
s += '->'
s += reprlib.repr(rv)
line = linecache.getline(filename, lineno, frame.f_globals)
if line: s = s + lprefix + line.strip()
if line:
s += lprefix + line.strip()
return s
# The following methods can be called by clients to use
@ -442,8 +435,7 @@ def set_trace():
class Breakpoint:
"""Breakpoint class
"""Breakpoint class.
Implements temporary breakpoints, ignore counts, disabling and
(re)-enabling, and conditionals.
@ -485,7 +477,6 @@ class Breakpoint:
else:
self.bplist[file, line] = [self]
def deleteMe(self):
index = (self.file, self.line)
self.bpbynumber[self.number] = None # No longer in list
@ -606,6 +597,7 @@ def effective(file, line, frame):
return (b, False)
return (None, None)
# -------------------- testing --------------------
class Tdb(Bdb):
@ -638,5 +630,3 @@ def bar(a):
def test():
t = Tdb()
t.run('import bdb; bdb.foo(10)')
# end