Terry J. Reedy added the comment:
Get_entity already has try-except to block exceptions propagating from eval
failure, so wrapping it is redundant. We only need worry about get_argspec.
I presume the failure is in get_argspec in the remote process:
if hasattr(ob, '__call__'):
This can be replaced by callable(ob) as it converts exceptions to False. The
appropriate return for non-callables is the current default, '', which results
in no tip.
There are, however, other attribute accesses that could fail. I am reluctant to
wrap get_argspec in its entirety, as that would mask bugs in Idle code as well
as in user snippets. So I think each access should be protected. Since users
will expect a tip for something that is a callable, I think a message might be
appropriate. I checked that getattr(ob, name, default) does not convert
exception to default.
Their are rpc calls in several places in Idle code. Unless failure can be
triggered here in particular by user error, I do not think we should add
specific protection here.
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue16630>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com