Martin Panter <vadmium...@gmail.com> added the comment:

For 3.7+ (where iterable objects are supported), I suggest:

1. Document the problem as a limitation of handlers like 
AbstractBasicAuthHandler, and consider raising an exception instead of trying 
to upload a file or iterable a second time.

2. Clarify the behaviour for different types of the “urllib.request” data 
parameter. I understand “file-like objects” means objects with a “read” 
attribute, and the “read” method is called in preference to iteration or 
treating the parameter as a “bytes” object.

Despite the bug title, I don’t think the library should mess with the file 
position. Certainly not when making a single request. But it should already be 
possible for the caller to supply a custom iterable object that resets the file 
position:

class FileReiterator:
    def __iter__(self):
        self.file.seek(0)
        while True:
            chunk = self.file.read(self.chunksize)
            yield chunk
            if len(chunk) < self.chunksize:
                break

----------

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

Reply via email to