- Don't crash in the case where a superclass is a string instead of a

pyclbr.Class object; this can happen when the superclass is
unrecognizable (to pyclbr), e.g. when module renaming is used.

- Show a watch cursor when calling pyclbr (since it may take a while
recursively parsing imported modules!).
This commit is contained in:
Guido van Rossum 1999-03-11 16:37:13 +00:00
parent cbd987040e
commit b62e877631
1 changed files with 12 additions and 4 deletions

View File

@ -78,7 +78,12 @@ class PathBrowser(MultiScrolledLists):
self.top.bell()
return []
try:
dict = pyclbr.readmodule(name, [dir] + sys.path)
self.top.configure(cursor="watch")
self.top.update_idletasks()
try:
dict = pyclbr.readmodule(name, [dir] + sys.path)
finally:
self.top.configure(cursor="")
except ImportError, msg:
tkMessageBox.showerror("Import error", str(msg), parent=root)
return []
@ -90,9 +95,12 @@ class PathBrowser(MultiScrolledLists):
if cl.super:
supers = []
for sup in cl.super:
sname = sup.name
if sup.module != cl.module:
sname = "%s.%s" % (sup.module, sname)
if type(sup) is type(''):
sname = sup
else:
sname = sup.name
if sup.module != cl.module:
sname = "%s.%s" % (sup.module, sname)
supers.append(sname)
s = s + "(%s)" % string.join(supers, ", ")
items.append((cl.lineno, s))