Ezio Melotti added the comment:

After further investigation it seems to me that read can't raise 
NotImplementedError.  ZipFile also won't raise it, but will raise a 
RuntimeError:
>>> zipfile.ZipFile('spam.zip', 'w', compression=zipfile.ZIP_BZIP2)
RuntimeError: Compression requires the (missing) bz2 module

By looking at the code, ZipFile calls _check_compression (Lib/zipfile.py:904) 
and _check_compression raises RuntimeError (Lib/zipfile.py:579).
ZipExtFile calls _get_decompressor (Lib/zipfile.py:651) and _get_decompressor 
raises NotImplemented (Lib/zipfile.py:610).
This behavior seems inconsistent and perhaps should be fixed (in this case a 
new issue should be created), however this will probably be 
backward-incompatible.

Regardless of this, it seems that currently NotImplementedError can be raised 
in some situations, and the zipfile docs don't mention it, so the doc can still 
be improved.

@Martin
Do you have any opinion on the aforementioned inconsistency?

@Jason
Did you actually manage to get a NotImplementedError from ZipFile.read() or 
from somewhere else?

----------
assignee: docs@python -> ezio.melotti
nosy: +ezio.melotti, loewis, serhiy.storchaka

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

Reply via email to