Terry J. Reedy added the comment:
On Win7, 2.7.3 gives me the same output. (Running in IDLE, I don't get the
'socket.' prefix even on the second traceback.) With 3.3, I get socket.timeout
both times (console or IDLE). So the problem seems to be 2.x only.
print_exc calls print_exception, which calls print_tb and
format_exception_only, which is responsible for the last line.
The 2.7 code
if (isinstance(etype, BaseException) or
isinstance(etype, types.InstanceType) or
etype is None or type(etype) is str):
return [_format_final_exc_line(etype, value)]
is simplified in 3.x to
if etype is None:
return [_format_final_exc_line(etype, value)]
After
stype = etype.__name__
3.3 (and 3.x, I presume) adds
smod = etype.__module__
if smod not in ("__main__", "builtins"):
stype = smod + '.' + stype
That is where the 'socket' prefix is added in 3.3, so perhaps that should be
added to 2.7.
Note: indenting code makes it harder to cut, paste, and run ;-(
Using 'print (x)', which works fine in 2.7, instead of 'print x' would also
greatly help testing in 3.x, which is needed for any bug report.)
----------
nosy: +georg.brandl, terry.reedy
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue16855>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com