Issue12198
Created on 2011-05-27 18:44 by gnezdo, last changed 2022-04-11 14:57 by admin. This issue is now closed.
| Messages (3) | |||
|---|---|---|---|
| msg137093 - (view) | Author: Greg Steuck (gnezdo) | Date: 2011-05-27 18:44 | |
zipfile.py displays warning when trying to write files timestamped before 1980.
% cat /tmp/a.py
import zipfile
import os
z = zipfile.ZipFile('/tmp/a.zip', 'w')
open("/tmp/a", "w")
os.utime("/tmp/a", (0,0))
z.write("/tmp/a", "a")
% python -V
Python 2.6.5
% uname -mo
x86_64 GNU/Linux
% uname -mor
2.6.32-gg426-generic x86_64 GNU/Linux
% python /tmp/a.py
/usr/lib/python2.6/zipfile.py:1047: DeprecationWarning: struct integer overflow masking is deprecated
self.fp.write(zinfo.FileHeader())
/usr/lib/python2.6/zipfile.py:1047: DeprecationWarning: 'H' format requires 0 <= number <= 65535
self.fp.write(zinfo.FileHeader())
/usr/lib/python2.6/zipfile.py:1123: DeprecationWarning: struct integer overflow masking is deprecated
self.close()
/usr/lib/python2.6/zipfile.py:1123: DeprecationWarning: 'H' format requires 0 <= number <= 65535
self.close()
Similar to, but different from http://bugs.python.org/issue1526.
Amaury Forgeot d'Arc says:
The ZIP file format is unable to store dates before 1980. With version 3.2, your script even raises an exception. Please file this in a different issue.
|
|||
| msg137249 - (view) | Author: Petri Lehtinen (petri.lehtinen) * ![]() |
Date: 2011-05-30 09:02 | |
On 2.7, your example raises an error:
Traceback (most recent call last):
File "a.py", line 7, in <module>
z.write("a", "a")
File "/home/petri/tmp/cpython/cpython/Lib/zipfile.py", line 1071, in write
self.fp.write(zinfo.FileHeader())
File "/home/petri/tmp/cpython/cpython/Lib/zipfile.py", line 348, in FileHeader
len(filename), len(extra))
struct.error: ushort format requires 0 <= number <= USHRT_MAX
I doubt this can be fixed in 2.6 anymore, as it's in security fix only -mode.
What comes to the error on 2.7, it could be better. If zip files simply don't support dates before 1980, an error describing this could be raised. Another possibility would be to clamp too old dates to 1980.
|
|||
| msg139951 - (view) | Author: Petri Lehtinen (petri.lehtinen) * ![]() |
Date: 2011-07-06 20:32 | |
Setting as duplicate of #6090. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-04-11 14:57:17 | admin | set | github: 56407 |
| 2011-07-06 20:32:52 | petri.lehtinen | set | status: open -> closed resolution: duplicate superseder: zipfile: Bad error message when zipping a file with timestamp before 1980 messages: + msg139951 |
| 2011-06-07 11:44:00 | pitrou | set | nosy:
+ amaury.forgeotdarc |
| 2011-06-03 20:57:48 | terry.reedy | set | nosy:
+ alanmcintyre versions: + Python 2.7, - Python 2.6 |
| 2011-05-30 09:02:32 | petri.lehtinen | set | nosy:
+ petri.lehtinen messages: + msg137249 |
| 2011-05-27 18:44:26 | gnezdo | create | |
