Jason Madden added the comment:

`self.stdin` and `self.stderr` are documented to be `wsgi.input` and 
`wsgi.errors`, which are both described as "file-like" objects, meaning that 
the `write` method should return bytes written. It seems like the same could 
reasonably be said to be true for `self.stdout`, though it isn't strictly 
documented as such.

The WSGI spec says that each chunk the application yields should be written 
immediately, with no buffering 
(https://www.python.org/dev/peps/pep-3333/#buffering-and-streaming), so I don't 
think having the default output stream be buffered would be in compliance.

If there is a compatibility problem, writing the loop this way could bypass it 
(untested):

  def _write(self, data):
    written = self.stdout.write(data)
    while written is not None and written < len(data):
        written += self.stdout.write(data[written:])

----------

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

Reply via email to