[issue7610] Cannot use both read and readline method in same ZipExtFile object

Nir Aides report at bugs.python.org
Thu Jan 14 20:44:20 CET 2010


Nir Aides <nir at winpdb.org> added the comment:

I uploaded an update for Python 2.7.

> * you should probably write `n = sys.maxsize` instead of `n = 1 << 31 - 1`

sys.maxsize is 64 bit number on my system but the maximum value accepted by zlib's decompress() seems to be INT_MAX defined in pyport.h which equals the number I used.

> * ZipExtFile.read() should support `n=None` as a synonym to `n=-1` 
> (read everything)

Added

> * `bytes` as a variable name isn't very good since it's the built-in 
> name for bytestrings in py3k

Changed (old habits die hard).

> * in ZipExtFile.read(), it seems you have removed the adjustment for 
> encrypted files (see `adjust read size for encrypted files since the 
> first 12 bytes [etc.]`)

Yes, was moved to the constructor.

> * is there a situation where the decompressor might return less bytes 
> than expected? (after all compression doesn't /always/ compress, in 
> unfavourable chunks of data it might actually expand things a bit)

The documentation of io.BufferedIOBase.read() reads "multiple raw reads may be issued to satisfy the byte count". I understood this language to mean satisfying read size is optional. Isn't it?

----------
Added file: http://bugs.python.org/file15882/zipfile_7610_py27_v4.diff

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue7610>
_______________________________________


More information about the Python-bugs-list mailing list