Terry J. Reedy added the comment:

Changing the API of HTTPResponse.fileno is a feature change, not a bug fix. I 
do not think it should be changed as it would break existing code to no 
purpose. Instead, calls should continue to wrapped in try: except ValueError 
when failure is possible. And this issue closed as rejected.

--
As to the illustrative example: 

I do not think the call in _fileobject.fileno should be so wrapped because I 
think the bug is elsewhere. _fileinput()._sock is supposed to be a socket, not 
an HTTPResponse. This says to me that a) self._sock.fileno() is supposed to 
call socket.fileno, not HTTPResonse.fileno; and b) nappstore/server_comm.py is 
calling socket(_sock=<HTTPResonse object>) (or directly modifying the .sock 
attribute).

If b) is true, that strikes me as a bug because _sock is an undocumented 
private parameter, subject to change. Indeed it disappeared in 3.x when socket 
became a _socket.socket subclass rather than a wrapper thereof. (Also, the 
pseudo _fileobject was replaced with an appropriate, real, io class.)

----------
nosy: +terry.reedy
versions:  -Python 3.3, Python 3.4, Python 3.5

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue19154>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to