[Python-checkins] cpython (merge 3.2 -> default): Merge with 3.2 #12510

terry.reedy python-checkins at python.org
Sun Jun 3 07:07:33 CEST 2012


http://hg.python.org/cpython/rev/a7501ddf74ac
changeset: 77317:a7501ddf74ac
parent: 77314:3c43be281196
parent: 77316:f927a5c6e4be
user: Terry Jan Reedy <tjreedy at udel.edu>
date: Sun Jun 03 01:06:38 2012 -0400
summary:
 Merge with 3.2 #12510
files:
 Lib/idlelib/CallTips.py | 32 +++++++++++++++-------------
 1 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/Lib/idlelib/CallTips.py b/Lib/idlelib/CallTips.py
--- a/Lib/idlelib/CallTips.py
+++ b/Lib/idlelib/CallTips.py
@@ -67,18 +67,18 @@
 if not sur_paren:
 return
 hp.set_index(sur_paren[0])
- name = hp.get_expression()
- if not name:
+ expression = hp.get_expression()
+ if not expression:
 return
- if not evalfuncs and (name.find('(') != -1):
+ if not evalfuncs and (expression.find('(') != -1):
 return
- argspec = self.fetch_tip(name)
+ argspec = self.fetch_tip(expression)
 if not argspec:
 return
 self.active_calltip = self._calltip_window()
 self.active_calltip.showtip(argspec, sur_paren[0], sur_paren[1])
 
- def fetch_tip(self, name):
+ def fetch_tip(self, expression):
 """Return the argument list and docstring of a function or class.
 
 If there is a Python subprocess, get the calltip there. Otherwise,
@@ -94,25 +94,27 @@
 """
 try:
 rpcclt = self.editwin.flist.pyshell.interp.rpcclt
- except:
+ except AttributeError:
 rpcclt = None
 if rpcclt:
 return rpcclt.remotecall("exec", "get_the_calltip",
- (name,), {})
+ (expression,), {})
 else:
- entity = self.get_entity(name)
+ entity = self.get_entity(expression)
 return get_argspec(entity)
 
- def get_entity(self, name):
- "Lookup name in a namespace spanning sys.modules and __main.dict__."
- if name:
+ def get_entity(self, expression):
+ """Return the object corresponding to expression evaluated
+ in a namespace spanning sys.modules and __main.dict__.
+ """
+ if expression:
 namespace = sys.modules.copy()
 namespace.update(__main__.__dict__)
 try:
- return eval(name, namespace)
- # any exception is possible if evalfuncs True in open_calltip
- # at least Syntax, Name, Attribute, Index, and Key E. if not
- except:
+ return eval(expression, namespace)
+ except BaseException:
+ # An uncaught exception closes idle, and eval can raise any
+ # exception, especially if user classes are involved.
 return None
 
 def _find_constructor(class_ob):
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /