Roger Serwy <roger.se...@gmail.com> added the comment: Terry, the original patch added "Not callable" because I wasn't sure what the consensus was on proper behavior. Now I know. :)
Attached is a revision against 3.3a3+ which omits the calltip if the object is not callable. The behavior difference between 2.7 and 3.3 is due to a difference in "localcall" in rpc.py, where "CALLEXC" raises the exception in the IDLE front-end in 3.3 causing the crash, whereas in 2.7 the exception occurs in the subprocess. This is due to "rpc_marshal_exception.patch" for issue14200 not being backported to 2.7. Entering []( or {}( or ''( will bring up a calltip. These calltips should not appear if the object is not callable. Take as an example: a = "string" a( The previous code will bring up a calltip even though "a" is not callable. The HyperParser does its job by returning the string representing the object just before the paren. Checking whether this is a proper Python name won't fix this corner case. The "fetch_tip" method grabs the actual object given the string name using "get_entity" and then uses "get_argspec" to return constructor or callable arguments. Checking if the object is callable must be done either in "get_entity" or in "get_argspec". I think it is cleaner to check in get_argspec, as is done in the attached patch. ---------- Added file: http://bugs.python.org/file25736/issue12510_rev1.patch _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue12510> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com