This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2011年03月14日 16:19 by nessita, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| pycon-issue11501.patch | nessita, 2011年03月15日 13:58 | review | ||
| Messages (12) | |||
|---|---|---|---|
| msg130847 - (view) | Author: Natalia Bidart (nessita) * | Date: 2011年03月14日 16:19 | |
When creating a zipfile, the code: zip = zipfile.ZipFile(zip_filename, "w", compression=zipfile.ZIP_DEFLATED) does not handle the potential RuntimeError casued by: "If ZIP_DEFLATED is specified but the zlib module is not available, RuntimeError is also raised." |
|||
| msg130894 - (view) | Author: Natalia Bidart (nessita) * | Date: 2011年03月14日 20:46 | |
Attaching patch that performs the following: * skip all the distutils tests that need zlib in order to run properly. * add a new test (test_make_zipfile_no_zlib) to ensure that make_zipfile uses the compression option from zipfile module that works without zlib. * add a helper method to patch objects. The fix itself was discussed with Tarek, and the patch helper implementation was discussed with Michael Foord. |
|||
| msg130896 - (view) | Author: Éric Araujo (eric.araujo) * (Python committer) | Date: 2011年03月14日 20:55 | |
Thanks. One question: why not using a clause like "if zlib is not None" instead of catching a RuntimeError? The if test looks more specific to me, whereas the RuntimeError might come from something else, and thus shouldn’t always e ignored. In the patch function, I would not use assert but hasattr and a real exception (so that the behavior does not change when run under python -O). |
|||
| msg130898 - (view) | Author: Natalia Bidart (nessita) * | Date: 2011年03月14日 21:08 | |
Hi Éric, Thanks for looking at the patch. I'm not using "if zlib is not None" since the archive_utils module never explicitly imports zlib. Only the zipfile module imports zlib and raises RuntimeError if not available (as per http://docs.python.org/library/zipfile.html#zipfile-objects). I'm changing the patch function to raise an exception as requested. |
|||
| msg130902 - (view) | Author: Natalia Bidart (nessita) * | Date: 2011年03月14日 21:16 | |
* Added change notice to Misc/NEWS. * changed patch method implementation so AttributeError is raised when trying to patch a non-existent attribute for an object (see Éric's comment). |
|||
| msg130962 - (view) | Author: Éric Araujo (eric.araujo) * (Python committer) | Date: 2011年03月15日 11:15 | |
> I'm not using "if zlib is not None" since the archive_utils module > never explicitly imports zlib. Well, you can import zlib in that module too to detect in advance whether zipfile will work. |
|||
| msg130967 - (view) | Author: Natalia Bidart (nessita) * | Date: 2011年03月15日 12:40 | |
On Tue, Mar 15, 2011 at 7:15 AM, Éric Araujo <report@bugs.python.org> wrote: > > Éric Araujo <merwok@netwok.org> added the comment: > >> I'm not using "if zlib is not None" since the archive_utils module >> never explicitly imports zlib. > > Well, you can import zlib in that module too to detect in advance whether zipfile will work. Indeed, but from my POV that's less cleaner than the proposed solution: importing a module that is not used (other than checking for a condition) may generate confusion to a reader. IMHO, the proposed solution may ease the readability of the code block by being super-explicit about what condition is being handled when creating the ZipFile. Let me know if you still consider I should change that. |
|||
| msg130973 - (view) | Author: Natalia Bidart (nessita) * | Date: 2011年03月15日 13:58 | |
Attaching a new patch with latest changes from trunk merged in (conflicts resolved). |
|||
| msg131034 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2011年03月15日 20:17 | |
New changeset 6b33aa811821 by Antoine Pitrou in branch '3.1': On behalf of Tarek: Issue #11501: disutils.archive_utils.make_zipfile no http://hg.python.org/cpython/rev/6b33aa811821 New changeset 1bf4383f190a by Antoine Pitrou in branch '3.2': Merge fix for issue #11501 http://hg.python.org/cpython/rev/1bf4383f190a New changeset cccddd797d95 by Antoine Pitrou in branch 'default': Merge fix for issue #11501 http://hg.python.org/cpython/rev/cccddd797d95 |
|||
| msg158079 - (view) | Author: Éric Araujo (eric.araujo) * (Python committer) | Date: 2012年04月11日 21:38 | |
Reopening for 2.7.4. |
|||
| msg228421 - (view) | Author: R. David Murray (r.david.murray) * (Python committer) | Date: 2014年10月04日 00:38 | |
If this is still wanted for python2, someone should create a 2.7 specific patch. |
|||
| msg267034 - (view) | Author: Berker Peksag (berker.peksag) * (Python committer) | Date: 2016年06月03日 04:53 | |
Tests are already skipped if zlib is not available in 2.7. To backport test_make_zipfile_no_zlib we also need the 'patch' helper so I'm not sure it's worth it at this point. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:14 | admin | set | github: 55710 |
| 2016年09月28日 00:30:25 | berker.peksag | set | status: pending -> closed resolution: fixed stage: needs patch -> resolved |
| 2016年06月03日 04:53:53 | berker.peksag | set | status: open -> pending nosy: + berker.peksag messages: + msg267034 |
| 2014年10月04日 00:38:22 | r.david.murray | set | type: crash -> behavior versions: - Python 3.1, Python 3.2, Python 3.3 keywords: + easy nosy: + r.david.murray messages: + msg228421 stage: commit review -> needs patch |
| 2012年04月11日 21:38:51 | eric.araujo | set | status: closed -> open versions: + Python 2.7 messages: + msg158079 assignee: tarek -> eric.araujo resolution: fixed -> (no value) stage: resolved -> commit review |
| 2011年03月15日 20:25:32 | pitrou | set | status: open -> closed nosy: tarek, ezio.melotti, eric.araujo, nessita, alexis, python-dev versions: + Python 3.1, Python 3.2 resolution: fixed stage: resolved |
| 2011年03月15日 20:17:20 | python-dev | set | nosy:
+ python-dev messages: + msg131034 |
| 2011年03月15日 19:30:30 | tarek | set | files:
- pycon-issue11501.patch nosy: tarek, ezio.melotti, eric.araujo, nessita, alexis |
| 2011年03月15日 19:30:20 | tarek | set | files:
- pycon-issue11501.patch nosy: tarek, ezio.melotti, eric.araujo, nessita, alexis |
| 2011年03月15日 13:58:26 | nessita | set | files:
+ pycon-issue11501.patch nosy: tarek, ezio.melotti, eric.araujo, nessita, alexis messages: + msg130973 |
| 2011年03月15日 12:40:33 | nessita | set | nosy:
tarek, ezio.melotti, eric.araujo, nessita, alexis messages: + msg130967 |
| 2011年03月15日 11:15:10 | eric.araujo | set | nosy:
tarek, ezio.melotti, eric.araujo, nessita, alexis messages: + msg130962 |
| 2011年03月14日 21:16:50 | nessita | set | files:
+ pycon-issue11501.patch nosy: tarek, ezio.melotti, eric.araujo, nessita, alexis messages: + msg130902 |
| 2011年03月14日 21:08:58 | nessita | set | nosy:
tarek, ezio.melotti, eric.araujo, nessita, alexis messages: + msg130898 versions: - Python 3.1, Python 2.7, Python 3.2 |
| 2011年03月14日 20:55:51 | eric.araujo | set | nosy:
tarek, ezio.melotti, eric.araujo, nessita, alexis messages: + msg130896 versions: + Python 3.1, Python 2.7, Python 3.2 |
| 2011年03月14日 20:46:06 | nessita | set | files:
+ pycon-issue11501.patch nosy: tarek, ezio.melotti, eric.araujo, nessita, alexis messages: + msg130894 components: + Distutils, - Distutils2 keywords: + patch |
| 2011年03月14日 16:21:24 | ezio.melotti | set | nosy:
+ ezio.melotti |
| 2011年03月14日 16:19:38 | nessita | create | |