[Python-Dev] BZ2File.writelines should raise more meaningful exceptions (original) (raw)

Lawrence Oluyede l.oluyede at gmail.com
Sun Aug 6 10:41:39 CEST 2006


In the BZ2File object of bz2 module the writelines() method does not check its closed state before doing the actual work so its behavior it's different from write()'s behavior. See:

from bz2 import BZ2File f = BZ2File("foo", "w") f.close() f.closed 1 f.write("foobar") Traceback (most recent call last): File "", line 1, in ValueError: I/O operation on closed file f.closed 1 f.writelines(["foobar"]) Traceback (most recent call last): File "", line 1, in IOError: unknown IO error

It also doesn't check if it can write for real:

from bz2 import BZ2File f = BZ2File("foo", "r") f.write("foobar") Traceback (most recent call last): File "", line 1, in IOError: file is not ready for writing f.writelines(['foobar']) Traceback (most recent call last): File "", line 1, in RuntimeError: wrong sequence of bz2 library commands used

The patch is attached. If you think it's ok to fix this I'll post it to the bug tracker

-- Lawrence http://www.oluyede.org/blog -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: bz2module.diff.txt Url: http://mail.python.org/pipermail/python-dev/attachments/20060806/bd63dc42/attachment.txt



More information about the Python-Dev mailing list