Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
235c5e0d
Commit
235c5e0d
authored
Nov 23, 2013
by
Serhiy Storchaka
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Issue #17201: ZIP64 extensions now are enabled by default.
Patch by William Mallard.
parent
8b78493d
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
22 additions
and
15 deletions
+22
-15
Doc/library/zipfile.rst
Doc/library/zipfile.rst
+10
-7
Lib/test/test_zipfile.py
Lib/test/test_zipfile.py
+2
-2
Lib/test/test_zipfile64.py
Lib/test/test_zipfile64.py
+2
-2
Lib/zipfile.py
Lib/zipfile.py
+4
-4
Misc/ACKS
Misc/ACKS
+1
-0
Misc/NEWS
Misc/NEWS
+3
-0
No files found.
Doc/library/zipfile.rst
View file @
235c5e0d
...
...
@@ -130,7 +130,7 @@ ZipFile Objects
---------------
.. class:: ZipFile(file, mode='
r
', compression=ZIP_STORED, allowZip64=
Fals
e)
.. class:: ZipFile(file, mode='
r
', compression=ZIP_STORED, allowZip64=
Tru
e)
Open a ZIP file, where *file* can be either a path to a file (a string) or a
file-like object. The *mode* parameter should be ``'
r
'`` to read an existing
...
...
@@ -147,12 +147,9 @@ ZipFile Objects
:const:`ZIP_BZIP2` or :const:`ZIP_LZMA` is specified but the corresponding module
(:mod:`zlib`, :mod:`bz2` or :mod:`lzma`) is not available, :exc:`RuntimeError`
is also raised. The default is :const:`ZIP_STORED`. If *allowZip64* is
``True``
zipfile will create ZIP files that use the ZIP64 extensions when
the zipfile is larger than 2 GiB. If it is false (the default)
:mod:`zipfile`
``True``
(the default) zipfile will create ZIP files that use the ZIP64
extensions when the zipfile is larger than 2 GiB. If it is false
:mod:`zipfile`
will raise an exception when the ZIP file would require ZIP64 extensions.
ZIP64 extensions are disabled by default because the default :program:`zip`
and :program:`unzip` commands on Unix (the InfoZIP utilities) don'
t
support
these
extensions
.
If the file is created with mode ``'
a
'`` or ``'
w
'`` and then
:meth:`closed <close>` without adding any files to the archive, the appropriate
...
...
@@ -171,6 +168,9 @@ ZipFile Objects
..
versionchanged
::
3.3
Added
support
for
:
mod
:`
bzip2
<
bz2
>`
and
:
mod
:`
lzma
`
compression
.
..
versionchanged
::
3.4
ZIP64
extensions
are
enabled
by
default
.
..
method
::
ZipFile
.
close
()
...
...
@@ -374,12 +374,15 @@ PyZipFile Objects
The
:
class
:`
PyZipFile
`
constructor
takes
the
same
parameters
as
the
:
class
:`
ZipFile
`
constructor
,
and
one
additional
parameter
,
*
optimize
*.
.. class:: PyZipFile(file, mode='r', compression=ZIP_STORED, allowZip64=
Fals
e, \
..
class
::
PyZipFile
(
file
,
mode
=
'r'
,
compression
=
ZIP_STORED
,
allowZip64
=
Tru
e
,
\
optimize
=-
1
)
..
versionadded
::
3.2
The
*
optimize
*
parameter
.
..
versionchanged
::
3.4
ZIP64
extensions
are
enabled
by
default
.
Instances
have
one
method
in
addition
to
those
of
:
class
:`
ZipFile
`
objects
:
..
method
::
PyZipFile
.
writepy
(
pathname
,
basename
=
''
,
filterfunc
=
None
)
...
...
Lib/test/test_zipfile.py
View file @
235c5e0d
...
...
@@ -506,12 +506,12 @@ class StoredTestZip64InSmallFiles(AbstractTestZip64InSmallFiles,
compression
=
zipfile
.
ZIP_STORED
def
large_file_exception_test
(
self
,
f
,
compression
):
with
zipfile
.
ZipFile
(
f
,
"w"
,
compression
)
as
zipfp
:
with
zipfile
.
ZipFile
(
f
,
"w"
,
compression
,
allowZip64
=
False
)
as
zipfp
:
self
.
assertRaises
(
zipfile
.
LargeZipFile
,
zipfp
.
write
,
TESTFN
,
"another.name"
)
def
large_file_exception_test2
(
self
,
f
,
compression
):
with
zipfile
.
ZipFile
(
f
,
"w"
,
compression
)
as
zipfp
:
with
zipfile
.
ZipFile
(
f
,
"w"
,
compression
,
allowZip64
=
False
)
as
zipfp
:
self
.
assertRaises
(
zipfile
.
LargeZipFile
,
zipfp
.
writestr
,
"another.name"
,
self
.
data
)
...
...
Lib/test/test_zipfile64.py
View file @
235c5e0d
...
...
@@ -38,7 +38,7 @@ class TestsWithSourceFile(unittest.TestCase):
def
zipTest
(
self
,
f
,
compression
):
# Create the ZIP archive.
zipfp
=
zipfile
.
ZipFile
(
f
,
"w"
,
compression
,
allowZip64
=
True
)
zipfp
=
zipfile
.
ZipFile
(
f
,
"w"
,
compression
)
# It will contain enough copies of self.data to reach about 6GB of
# raw data to store.
...
...
@@ -92,7 +92,7 @@ class OtherTests(unittest.TestCase):
def
testMoreThan64kFiles
(
self
):
# This test checks that more than 64k files can be added to an archive,
# and that the resulting archive can be read properly by ZipFile
zipf
=
zipfile
.
ZipFile
(
TESTFN
,
mode
=
"w"
)
zipf
=
zipfile
.
ZipFile
(
TESTFN
,
mode
=
"w"
,
allowZip64
=
False
)
zipf
.
debug
=
100
numfiles
=
(
1
<<
16
)
*
3
//
2
for
i
in
range
(
numfiles
):
...
...
Lib/zipfile.py
View file @
235c5e0d
...
...
@@ -876,7 +876,7 @@ class ZipExtFile(io.BufferedIOBase):
class
ZipFile
:
""" Class with methods to open, read, write, close, list zip files.
z = ZipFile(file, mode="r", compression=ZIP_STORED, allowZip64=
Fals
e)
z = ZipFile(file, mode="r", compression=ZIP_STORED, allowZip64=
Tru
e)
file: Either the path to the file, or a file-like object.
If it is a path, the file will be opened and closed by ZipFile.
...
...
@@ -892,7 +892,7 @@ class ZipFile:
fp
=
None
# Set here since __del__ checks it
_windows_illegal_name_trans_table
=
None
def
__init__
(
self
,
file
,
mode
=
"r"
,
compression
=
ZIP_STORED
,
allowZip64
=
Fals
e
):
def
__init__
(
self
,
file
,
mode
=
"r"
,
compression
=
ZIP_STORED
,
allowZip64
=
Tru
e
):
"""Open the ZIP file with mode read "r", write "w" or append "a"."""
if
mode
not
in
(
"r"
,
"w"
,
"a"
):
raise
RuntimeError
(
'ZipFile() requires mode "r", "w", or "a"'
)
...
...
@@ -1561,7 +1561,7 @@ class PyZipFile(ZipFile):
"""Class to create ZIP archives with Python library files and packages."""
def
__init__
(
self
,
file
,
mode
=
"r"
,
compression
=
ZIP_STORED
,
allowZip64
=
Fals
e
,
optimize
=-
1
):
allowZip64
=
Tru
e
,
optimize
=-
1
):
ZipFile
.
__init__
(
self
,
file
,
mode
=
mode
,
compression
=
compression
,
allowZip64
=
allowZip64
)
self
.
_optimize
=
optimize
...
...
@@ -1783,7 +1783,7 @@ def main(args = None):
os
.
path
.
join
(
path
,
nm
),
os
.
path
.
join
(
zippath
,
nm
))
# else: ignore
with
ZipFile
(
args
[
1
],
'w'
,
allowZip64
=
True
)
as
zf
:
with
ZipFile
(
args
[
1
],
'w'
)
as
zf
:
for
src
in
args
[
2
:]:
addToZip
(
zf
,
src
,
os
.
path
.
basename
(
src
))
...
...
Misc/ACKS
View file @
235c5e0d
...
...
@@ -806,6 +806,7 @@ Marek Majkowski
Grzegorz Makarewicz
David Malcolm
Greg Malcolm
William Mallard
Ken Manheimer
Vladimir Marangozov
Colin Marc
...
...
Misc/NEWS
View file @
235c5e0d
...
...
@@ -68,6 +68,9 @@ Core and Builtins
Library
-------
-
Issue
#
17201
:
ZIP64
extensions
now
are
enabled
by
default
.
Patch
by
William
Mallard
.
-
Issue
#
19292
:
Add
SSLContext
.
load_default_certs
()
to
load
default
root
CA
certificates
from
default
stores
or
system
stores
.
By
default
the
method
loads
CA
certs
for
authentication
of
server
certs
.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment