Op 01/09/13 14:54, Dave Angel schreef: > On 01/09/2013 08:22 AM, Antoon Pardon wrote: >> This is using python 3.2. ... >> But the documentation states: >> socket.makefile(mode='r', buffering=None, *, encoding=None, errors=None, >> newline=None) >> Return a file object associated with the socket. The exact returned >> type depends on the arguments given to makefile(). These arguments are >> interpreted the same way as by the built-in open() function. >> >> And since 't' is allowed in the mode of the built-in open() function I >> would consider this a bug. >> Unless I am missing something? > I believe that 't' was a new addition to mode, for Python 3.x So > perhaps the socket library hasn't kept consistent with it. > > I don't really know the socket library. Does it even support text > mode? Does that make sense? Remember that text mode means a different > thing in 3.x than it did in 2.x As far as I understand the code, it does support text. This is part of the makefile method.
def makefile(self, mode="r", buffering=None, *, encoding=None, errors=None, newline=None): for c in mode: if c not in {"r", "w", "b"}: raise ValueError("invalid mode %r (only r, w, b allowed)") writing = "w" in mode reading = "r" in mode or not writing assert reading or writing binary = "b" in mode ... if binary: return buffer text = io.TextIOWrapper(buffer, encoding, errors, newline) text.mode = mode return text So it seems that if the mode is not binary an io.TextIOWrapper is returned. That indicates to me that text mode is supported. -- Antoon Pardon -- http://mail.python.org/mailman/listinfo/python-list