Ezio Melotti
569e61f351
#5511 : Added the ability to use ZipFile as a context manager. Patch by Brian Curtin.
2009-12-30 06:14:51 +00:00
Amaury Forgeot d'Arc
3e5b027a64
#6511 : ZipFile will now raise BadZipfile when opening an empty or tiny file,
...
like it does for larger invalid files.
2009-07-28 22:15:30 +00:00
Gregory P. Smith
2662733bce
Fixes the last problem mentioned in issue1202.
2009-06-26 07:50:21 +00:00
Martin v. Löwis
0b09c42ffe
Issue #6050 : Don't fail extracting a directory from a zipfile if
...
the directory already exists.
2009-05-24 19:30:52 +00:00
Benjamin Peterson
b91e8ede7a
make sure files are closed using the with statement
2009-05-10 02:29:00 +00:00
Antoine Pitrou
97377bf566
Issue #5692 : In :class:`zipfile.Zipfile`, fix wrong path calculation when extracting a file to the root directory.
2009-05-04 21:17:17 +00:00
Benjamin Peterson
bf6c410b2e
revert unrelated change
2009-05-02 17:35:39 +00:00
Benjamin Peterson
6282169142
remove py3k compat code
2009-05-02 17:33:01 +00:00
Martin v. Löwis
0dfcfc8b59
Issue #4710 : Extract directories properly in the zipfile module;
...
allow adding directories to a zipfile.
2009-01-24 14:00:33 +00:00
Amaury Forgeot d'Arc
2407ac9a4b
follow-up of #3997 : since 0xFFFF numbers are not enough to indicate a zip64 format,
...
always try to read the "zip64 end of directory structure".
2009-01-17 22:43:50 +00:00
Amaury Forgeot d'Arc
d25f87ae36
#3997 : zipfiles generated with more than 65536 files could not be opened
...
with other applications.
Reviewed by Martin, will backport to 2.6 and 3.0
2009-01-17 16:40:17 +00:00
Antoine Pitrou
6f193e0e95
Issue #4756 : zipfile.is_zipfile() now supports file-like objects.
...
Patch by Gabriel Genellina.
2008-12-27 15:43:12 +00:00
Antoine Pitrou
ebcd0ced14
Issue #3535 : zipfile couldn't read some zip files larger than 2GB.
...
Reviewed by Amaury Forgeot d'Arc.
2008-09-05 23:30:23 +00:00
Antoine Pitrou
c53427087e
fix ZipFile.testzip() to work with very large embedded files
2008-08-17 13:06:29 +00:00
Antoine Pitrou
5fdfa3e36d
#3394 : zipfile.writestr doesn't set external attributes, so files are extracted mode 000 on Unix
2008-07-25 19:42:26 +00:00
Amaury Forgeot d'Arc
ae6d2b9175
#3317 in zipfile module, restore the previous names of global variables:
...
some applications relied on them.
Also remove duplicated lines.
2008-07-11 21:28:25 +00:00
Martin v. Löwis
8c43641271
Patch #1622 : Correct interpretation of various ZIP header fields.
...
Also fixes
- Issue #1526 : Allow more than 64k files to be added to Zip64 file.
- Issue #1746 : Correct handling of zipfile archive comments (previously
archives with comments over 4k were flagged as invalid). Allow writing
Zip files with archives by setting the 'comment' attribute of a ZipFile.
2008-07-03 12:51:14 +00:00
Georg Brandl
112aa50329
Patch #1775025 : allow opening zipfile members via ZipInfo instances.
...
Patch by Graham Horler.
2008-05-20 08:25:48 +00:00
Martin v. Löwis
471617d6d3
Issue #1734346 : Support Unicode file names for zipfiles.
2008-05-05 17:16:58 +00:00
Gregory P. Smith
bf02e3bb21
Fix the struct module DeprecationWarnings that zipfile was triggering by
...
removing all use of signed struct values.
test_zipfile and test_zipfile64 pass. no more warnings.
2008-03-19 03:14:41 +00:00
Gregory P. Smith
b89a096d6d
Use zlib's crc32 routine instead of binascii when available. zlib's is faster
...
when compiled properly optimized and about the same speed otherwise.
2008-03-19 01:46:10 +00:00
Gregory P. Smith
da407232e0
Document that zipfile decryption is insanely slow and fix a typo and
...
blatant lie in a docstring (it is not useful for security regardless of
how you spell it).
2008-01-20 01:32:00 +00:00
Gregory P. Smith
0c63fc23c4
Fix zipfile decryption. The check for validity only worked on one
...
type of encrypted zip files. Files using extended local headers
needed to compare the check byte against different values. (according
to reading the infozip unzip crypt.c source code)
Fixes issue1003.
2008-01-20 01:21:03 +00:00
Gregory P. Smith
350d03b18a
Fixes/Accepts Patch for issue1189216 - Work properly with archives
...
that have file headers past the 2**31 byte boundary.
2008-01-19 23:10:52 +00:00
Raymond Hettinger
351e1a3e88
Fix 1698398: Zipfile.printdir() crashed because the format string expected a tuple object of length six instead of a time.struct_time object.
2008-01-14 22:58:05 +00:00
Georg Brandl
62416bcf5a
#467924 , patch by Alan McIntyre: Add ZipFile.extract and ZipFile.extractall.
2008-01-07 18:47:44 +00:00
Georg Brandl
4b3ab6fcc0
Patch #1675424 : Added tests for uncovered code in the zipfile module.
...
The KeyError raised by Zipfile.getinfo for nonexistent names now has
a descriptive message.
2007-07-12 09:59:22 +00:00
Tim Peters
ea5962f86e
Whitespace normalization.
2007-03-12 18:07:52 +00:00
Martin v. Löwis
3eb7648986
Patch #1121142 : Implement ZipFile.open.
2007-03-06 10:41:24 +00:00
Martin v. Löwis
84f6de9d7e
Patch #1517891 : Make 'a' create the file if it doesn't exist.
...
Fixes #1514451 .
2007-02-13 10:10:39 +00:00
Martin v. Löwis
c6d626ed9f
Patch #698833 : Support file decryption in zipfile.
2007-02-13 09:49:38 +00:00
Tim Peters
f79c32dbfb
ZipFile.close(): Kill the other struct.pack deprecation
...
warning on Windows.
Afraid I can't detect a pattern to when the pack formats decide
to use a signed or unsigned format code -- appears nearly
arbitrary to my eyes. So I left all the pack formats alone and
changed the special-case data values instead.
2006-07-31 02:53:03 +00:00
Tim Peters
352bf0d7ee
ZipFile.close(): Killed one of the struct.pack deprecation
...
warnings on Win32.
Also added an XXX about the line:
pos3 = self.fp.tell()
`pos3` is never referenced, and I have no idea what the code
intended to do instead.
2006-07-31 02:40:23 +00:00
Tim Peters
a608bb228c
Whitespace normalization.
2006-06-15 18:06:29 +00:00
Ronald Oussoren
143cefb846
Patch #1446489 (zipfile: support for ZIP64)
2006-06-15 08:14:18 +00:00
Georg Brandl
8f7c54eaa5
Bug #1413790 : zipfile now sanitizes absolute archive names that are
...
not allowed by the specs.
2006-02-20 08:40:38 +00:00
Martin v. Löwis
0075690ced
Patch #1412872 : zipfile: use correct system type on unixy systems.
2006-02-05 17:09:41 +00:00
Raymond Hettinger
2ca7c190b6
Remove dependency on order of mode flags
2005-02-16 09:27:49 +00:00
Raymond Hettinger
8a92dd5866
Don't choke on modes like rb or wb.
2004-11-06 00:31:51 +00:00
Brett Cannon
ff450f7512
Make struct formats for specifying file size to be unsigned instead of signed
...
(ZIP file spec. says in section K, "General notes" in point 1 that unless
specified otherwise values are unsigned and they are not specified as signed in
the spec).
Closes bug #679953 . Thanks Jimmy Burgett.
2004-07-10 19:09:20 +00:00
Andrew M. Kuchling
55430213c5
[Bug #835415 ] AIX can return modes that are >65536, which causes an OverflowError. Fix from Albert Chin
2004-07-10 15:40:29 +00:00
Raymond Hettinger
c0fac96c29
SF patch #756996 : Bare except in ZipFile.testzip()
...
(Contributed by Steven Taschuk)
Replaces a bare except that caused all errors to be mis-reported as
archive errors.
Added a related NEWS item.
2003-06-27 22:25:03 +00:00
Greg Ward
9b15878369
Remove debug print on filename with NUL byte.
2003-06-18 00:54:28 +00:00
Greg Ward
8e36d28f3c
SF patch #755987 (Jim Ahlstrom):
...
This is a patch for Bug 755031: If a null byte appears in
a file name, Python zipfile.py retains it, but InfoZip
terminates the name. Null bytes in file names are used
as a trick by viruses. I tested WinZip, and it also
truncates the file name at the null byte.
The patch also fixes a buglet: If a zipfile incorrectly
uses a directory separator other than '/', there was an
invalid complaint that the central directory name does
not match the file header name.
I also removed my name from the top of the file. It was
there for legal reasons which I believe no longer apply.
Many people have worked on this file besides me.
2003-06-18 00:53:06 +00:00
Martin v. Löwis
0c6774d92b
Patch #661719 : Expose compilation errors as exceptions on request.
2003-01-15 11:51:06 +00:00
Just van Rossum
b083cb3901
Patch #651621 , approved by MvL.
...
This patch allows ZipFile.writestr() to be called with
an archive file name instead of a ZipInfo instance:
z = ZipFile("myarchive.zip", "w")
z.writestr("foo/baz/file.ext", data)
z.close()
I found the old writestr() method very inconvenient
for simple (but common) things.
If called with a file name instead of a ZipInfo
instance, the date_time is set to the current date/time,
which makes sense to me for anonymous data.
2002-12-12 12:23:32 +00:00
Martin v. Löwis
6f6873baa1
Patch #611760 : read archives with comments.
2002-10-13 13:54:50 +00:00
Guido van Rossum
1ae4c3d0d8
Avoid warnings about <<. external_attr is now an unsigned long.
2002-08-12 15:15:51 +00:00
Walter Dörwald
65230a2de7
Remove uses of the string and types modules:
...
x in string.whitespace => x.isspace()
type(x) in types.StringTypes => isinstance(x, basestring)
isinstance(x, types.StringTypes) => isinstance(x, basestring)
type(x) is types.StringType => isinstance(x, str)
type(x) == types.StringType => isinstance(x, str)
string.split(x, ...) => x.split(...)
string.join(x, y) => y.join(x)
string.zfill(x, ...) => x.zfill(...)
string.count(x, ...) => x.count(...)
hasattr(types, "UnicodeType") => try: unicode except NameError:
type(x) != types.TupleTuple => not isinstance(x, tuple)
isinstance(x, types.TupleType) => isinstance(x, tuple)
type(x) is types.IntType => isinstance(x, int)
Do not mention the string module in the rlcompleter docstring.
This partially applies SF patch http://www.python.org/sf/562373
(with basestring instead of string). (It excludes the changes to
unittest.py and does not change the os.stat stuff.)
2002-06-03 15:58:32 +00:00
Raymond Hettinger
32200aeac6
Replaced obsolete stat module constants with equivalent attributes
2002-06-01 19:51:15 +00:00