Fror truly unbuffered text output you'd have to make changes to the io.TextIOWrapper class to flush after each write() call. That's an API change -- the constructor currently has a line_buffering option but no option for completely unbuffered mode. It would also require some changes to io.open() which currently rejects buffering=0 in text mode. All that suggests that it should wait until 3.1. However it might make sense to at least turn on line buffering when -u or PYTHONUNBUFFERED is given; that doesn't require API changes and so can be considered a bug fix. --Guido van Rossum (home page: http://www.python.org/~guido/) On Fri, Dec 19, 2008 at 2:47 PM, Antoine Pitrou <solipsis@pitrou.net> wrote:
Well, ``python -h`` still lists it.
Precisely, it says:
-u : unbuffered binary stdout and stderr; also PYTHONUNBUFFERED=x see man page for details on internal buffering relating to '-u'
Note the "binary". And indeed:
./python -u Python 3.1a0 (py3k:67839M, Dec 18 2008, 17:56:54) [GCC 4.3.2] on linux2 Type "help", "copyright", "credits" or "license" for more information.
import sys sys.stdout.buffer.write(b"y") y1
I don't know what it would take to enable unbuffered text IO while keeping the current TextIOWrapper implementation...
Regards
Antoine.
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/guido%40python.org