On Wednesday 04 November 2015 09:25, Terry Reedy wrote: > On 11/3/2015 10:42 AM, Chris Angelico wrote: >> On Wed, Nov 4, 2015 at 2:00 AM, Random832 <random...@fastmail.com> wrote: >>> Nobody <nobody@nowhere.invalid> writes: >>> >>>> It's probably related to the fact that std{in,out,err} are Unicode >>>> streams. >>> >>> There's no fundamental reason a Unicode stream should have to be line >>> buffered. If it's "related", it's only in that an oversight was made in >>> the course of making that change. > > The current behavior is not an 'oversight'. I was considered, decided, > and revisited in https://bugs.python.org/issue13601. Guido: > "Line-buffering should be good enough since in practice errors messages > are always terminated by a newline." If not, print(part_line, > file=sys.stderr, flush=True) works for the unusual case.
This is one of the offending line from our code base: print('<4>Suspicious answer "{}"!'.format(answer), file=sys.stderr) So that ought to be terminated by a newline. And yet, the stderr output doesn't show up until the program exits. -- Steve -- https://mail.python.org/mailman/listinfo/python-list