From c5301ef2df8e5ecae60decca91927d3c60fc0d77 Mon Sep 17 00:00:00 2001 From: Terry Jan Reedy Date: Sun, 27 May 2012 21:29:17 -0400 Subject: Issue12510: Attempting to get invalid tooltip no longer closes Idle. Original patch by Roger Serwy. --- Lib/idlelib/CallTips.py | 9 ++++++--- Misc/NEWS | 3 +++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Lib/idlelib/CallTips.py b/Lib/idlelib/CallTips.py index cda2be9..aa796cb 100644 --- a/Lib/idlelib/CallTips.py +++ b/Lib/idlelib/CallTips.py @@ -110,7 +110,9 @@ class CallTips: namespace.update(__main__.__dict__) try: return eval(name, namespace) - except (NameError, AttributeError): + # any exception is possible if evalfuncs True in open_calltip + # at least Syntax, Name, Attribute, Index, and Key E. if not + except: return None def _find_constructor(class_ob): @@ -125,9 +127,10 @@ def _find_constructor(class_ob): return None def get_argspec(ob): - """Get a string describing the arguments for the given object.""" + """Get a string describing the arguments for the given object, + only if it is callable.""" argspec = "" - if ob is not None: + if ob is not None and hasattr(ob, '__call__'): if isinstance(ob, type): fob = _find_constructor(ob) if fob is None: diff --git a/Misc/NEWS b/Misc/NEWS index 4cafa5d..3ea0ae3 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -67,6 +67,9 @@ Core and Builtins Library ------- +- Issue12510: Attempting to get invalid tooltip no longer closes Idle. + Original patch by Roger Serwy. + - Issue #10365: File open dialog now works instead of crashing even when parent window is closed. Patch by Roger Serwy. -- cgit v0.12