From: Guido van Rossum Date: Thu, 11 Mar 1999 16:37:13 +0000 (+0000) Subject: - Don't crash in the case where a superclass is a string instead of a X-Git-Tag: v1.5.2c1~174 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b62e877631dab6c00a8ce519c2aeac521ae13ea2;p=python - 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!). --- diff --git a/Tools/idle/PathBrowser.py b/Tools/idle/PathBrowser.py index 06c9ff7fae..d8f5b55169 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))