Nadeem Vawda <nadeem.va...@gmail.com> added the comment:

Here is a patch that rewrites BZ2File to implement the requested feature, and 
adds some tests using BytesIO objects.

Some notes:
* iteration and the read*() method now use the same buffering machinery, so 
they can be mixed freely. The test for issue8397 has been updated accordingly.
* readlines() now respects its size argument. The existing implementation 
appears to effectively ignore it.
* writelines() no longer uses the (deprecated) old buffer protocol, and is now 
much simpler.
* Currently, calling next() on a writable BZ2File results in a rather unhelpful 
error message; the patched version checks that the file is readable before 
trying to actually read.
* The docstrings have been rewritten to clarify that all of the methods deal 
with bytes and not text strings.

One thing I was unsure of is how to handle exceptions that occur in 
BZ2File_dealloc(). Does the error status need to be cleared before it returns?

The documentation for the bz2 module appears to be quite out of date; I will 
upload a patch in the next day or so.

On a related note, the 'buffering' argument to __init__() is ignored, and I was 
wondering whether this should be documented explicitly? The current 
documentation claims that it allows the caller to specify a buffer size, or 
request unbuffered I/O.

----------
keywords: +patch
Added file: http://bugs.python.org/file20510/bz2module-v1.diff

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

Reply via email to