From b62e877631dab6c00a8ce519c2aeac521ae13ea2 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Thu, 11 Mar 1999 16:37:13 +0000 Subject: - 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!). --- Tools/idle/PathBrowser.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Tools/idle/PathBrowser.py b/Tools/idle/PathBrowser.py index 06c9ff7..d8f5b55 100644 --- a/Tools/idle/PathBrowser.py +++ b/Tools/idle/PathBrowser.py @@ -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)) -- cgit v0.12