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
...
@@ -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
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
file-like object. The *mode* parameter should be ``'
r
'`` to read an existing
...
@@ -147,12 +147,9 @@ ZipFile Objects
...
@@ -147,12 +147,9 @@ ZipFile Objects
:const:`ZIP_BZIP2` or :const:`ZIP_LZMA` is specified but the corresponding module
: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`
(:mod:`zlib`, :mod:`bz2` or :mod:`lzma`) is not available, :exc:`RuntimeError`
is also raised. The default is :const:`ZIP_STORED`. If *allowZip64* is
is also raised. The default is :const:`ZIP_STORED`. If *allowZip64* is
``True``
zipfile will create ZIP files that use the ZIP64 extensions when
``True``
(the default) zipfile will create ZIP files that use the ZIP64
the zipfile is larger than 2 GiB. If it is false (the default)
:mod:`zipfile`
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.
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
If the file is created with mode ``'
a
'`` or ``'
w
'`` and then
:meth:`closed <close>` without adding any files to the archive, the appropriate
:meth:`closed <close>` without adding any files to the archive, the appropriate
...
@@ -171,6 +168,9 @@ ZipFile Objects
...
@@ -171,6 +168,9 @@ ZipFile Objects
..
versionchanged
::
3.3
..
versionchanged
::
3.3
Added
support
for
:
mod
:`
bzip2
<
bz2
>`
and
:
mod
:`
lzma
`
compression
.
Added
support
for
:
mod
:`
bzip2
<
bz2
>`
and
:
mod
:`
lzma
`
compression
.
..
versionchanged
::
3.4
ZIP64
extensions
are
enabled
by
default
.
..
method
::
ZipFile
.
close
()
..
method
::
ZipFile
.
close
()
...
@@ -374,12 +374,15 @@ PyZipFile Objects
...
@@ -374,12 +374,15 @@ PyZipFile Objects
The
:
class
:`
PyZipFile
`
constructor
takes
the
same
parameters
as
the
The
:
class
:`
PyZipFile
`
constructor
takes
the
same
parameters
as
the
:
class
:`
ZipFile
`
constructor
,
and
one
additional
parameter
,
*
optimize
*.
:
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
)
optimize
=-
1
)
..
versionadded
::
3.2
..
versionadded
::
3.2
The
*
optimize
*
parameter
.
The
*
optimize
*
parameter
.
..
versionchanged
::
3.4
ZIP64
extensions
are
enabled
by
default
.
Instances
have
one
method
in
addition
to
those
of
:
class
:`
ZipFile
`
objects
:
Instances
have
one
method
in
addition
to
those
of
:
class
:`
ZipFile
`
objects
:
..
method
::
PyZipFile
.
writepy
(
pathname
,
basename
=
''
,
filterfunc
=
None
)
..
method
::
PyZipFile
.
writepy
(
pathname
,
basename
=
''
,
filterfunc
=
None
)
...
...
Lib/test/test_zipfile.py
View file @
235c5e0d
...
@@ -506,12 +506,12 @@ class StoredTestZip64InSmallFiles(AbstractTestZip64InSmallFiles,
...
@@ -506,12 +506,12 @@ class StoredTestZip64InSmallFiles(AbstractTestZip64InSmallFiles,
compression
=
zipfile
.
ZIP_STORED
compression
=
zipfile
.
ZIP_STORED
def
large_file_exception_test
(
self
,
f
,
compression
):
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
,
self
.
assertRaises
(
zipfile
.
LargeZipFile
,
zipfp
.
write
,
TESTFN
,
"another.name"
)
zipfp
.
write
,
TESTFN
,
"another.name"
)
def
large_file_exception_test2
(
self
,
f
,
compression
):
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
,
self
.
assertRaises
(
zipfile
.
LargeZipFile
,
zipfp
.
writestr
,
"another.name"
,
self
.
data
)
zipfp
.
writestr
,
"another.name"
,
self
.
data
)
...
...
Lib/test/test_zipfile64.py
View file @
235c5e0d
...
@@ -38,7 +38,7 @@ class TestsWithSourceFile(unittest.TestCase):
...
@@ -38,7 +38,7 @@ class TestsWithSourceFile(unittest.TestCase):
def
zipTest
(
self
,
f
,
compression
):
def
zipTest
(
self
,
f
,
compression
):
# Create the ZIP archive.
# 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
# It will contain enough copies of self.data to reach about 6GB of
# raw data to store.
# raw data to store.
...
@@ -92,7 +92,7 @@ class OtherTests(unittest.TestCase):
...
@@ -92,7 +92,7 @@ class OtherTests(unittest.TestCase):
def
testMoreThan64kFiles
(
self
):
def
testMoreThan64kFiles
(
self
):
# This test checks that more than 64k files can be added to an archive,
# 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
# 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
zipf
.
debug
=
100
numfiles
=
(
1
<<
16
)
*
3
//
2
numfiles
=
(
1
<<
16
)
*
3
//
2
for
i
in
range
(
numfiles
):
for
i
in
range
(
numfiles
):
...
...
Lib/zipfile.py
View file @
235c5e0d
...
@@ -876,7 +876,7 @@ class ZipExtFile(io.BufferedIOBase):
...
@@ -876,7 +876,7 @@ class ZipExtFile(io.BufferedIOBase):
class
ZipFile
:
class
ZipFile
:
""" Class with methods to open, read, write, close, list zip files.
""" 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.
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.
If it is a path, the file will be opened and closed by ZipFile.
...
@@ -892,7 +892,7 @@ class ZipFile:
...
@@ -892,7 +892,7 @@ class ZipFile:
fp
=
None
# Set here since __del__ checks it
fp
=
None
# Set here since __del__ checks it
_windows_illegal_name_trans_table
=
None
_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"."""
"""Open the ZIP file with mode read "r", write "w" or append "a"."""
if
mode
not
in
(
"r"
,
"w"
,
"a"
):
if
mode
not
in
(
"r"
,
"w"
,
"a"
):
raise
RuntimeError
(
'ZipFile() requires mode "r", "w", or "a"'
)
raise
RuntimeError
(
'ZipFile() requires mode "r", "w", or "a"'
)
...
@@ -1561,7 +1561,7 @@ class PyZipFile(ZipFile):
...
@@ -1561,7 +1561,7 @@ class PyZipFile(ZipFile):
"""Class to create ZIP archives with Python library files and packages."""
"""Class to create ZIP archives with Python library files and packages."""
def
__init__
(
self
,
file
,
mode
=
"r"
,
compression
=
ZIP_STORED
,
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
,
ZipFile
.
__init__
(
self
,
file
,
mode
=
mode
,
compression
=
compression
,
allowZip64
=
allowZip64
)
allowZip64
=
allowZip64
)
self
.
_optimize
=
optimize
self
.
_optimize
=
optimize
...
@@ -1783,7 +1783,7 @@ def main(args = None):
...
@@ -1783,7 +1783,7 @@ def main(args = None):
os
.
path
.
join
(
path
,
nm
),
os
.
path
.
join
(
zippath
,
nm
))
os
.
path
.
join
(
path
,
nm
),
os
.
path
.
join
(
zippath
,
nm
))
# else: ignore
# else: ignore
with
ZipFile
(
args
[
1
],
'w'
,
allowZip64
=
True
)
as
zf
:
with
ZipFile
(
args
[
1
],
'w'
)
as
zf
:
for
src
in
args
[
2
:]:
for
src
in
args
[
2
:]:
addToZip
(
zf
,
src
,
os
.
path
.
basename
(
src
))
addToZip
(
zf
,
src
,
os
.
path
.
basename
(
src
))
...
...
Misc/ACKS
View file @
235c5e0d
...
@@ -806,6 +806,7 @@ Marek Majkowski
...
@@ -806,6 +806,7 @@ Marek Majkowski
Grzegorz Makarewicz
Grzegorz Makarewicz
David Malcolm
David Malcolm
Greg Malcolm
Greg Malcolm
William Mallard
Ken Manheimer
Ken Manheimer
Vladimir Marangozov
Vladimir Marangozov
Colin Marc
Colin Marc
...
...
Misc/NEWS
View file @
235c5e0d
...
@@ -68,6 +68,9 @@ Core and Builtins
...
@@ -68,6 +68,9 @@ Core and Builtins
Library
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
-
Issue
#
19292
:
Add
SSLContext
.
load_default_certs
()
to
load
default
root
CA
certificates
from
default
stores
or
system
stores
.
By
default
the
method
certificates
from
default
stores
or
system
stores
.
By
default
the
method
loads
CA
certs
for
authentication
of
server
certs
.
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