Skip to content

Commit 0ebcf6c

Browse files
committed
Checking for naive datetime now occurs in GzipFile.__init__ instead of GzipFile._write_gzip_header to avoid file staying open on raising ValueError.
1 parent 431c18b commit 0ebcf6c

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

Lib/gzip.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,8 @@ def __init__(self, filename=None, mode=None,
225225
-zlib.MAX_WBITS,
226226
zlib.DEF_MEM_LEVEL,
227227
0)
228+
if isinstance(mtime, datetime) and mtime.tzinfo is None:
229+
raise ValueError("Refusing to write naive datetime to Gzip header")
228230
self._write_mtime = mtime
229231
self._buffer_size = _WRITE_BUFFER_SIZE
230232
self._buffer = io.BufferedWriter(_WriteBufferStream(self),
@@ -281,8 +283,6 @@ def _write_gzip_header(self, compresslevel):
281283
if mtime is None:
282284
mtime = time.time()
283285
elif isinstance(mtime, datetime):
284-
if mtime.tzinfo is None:
285-
raise ValueError("Refusing to write naive datetime to Gzip header")
286286
mtime = mtime.timestamp()
287287
write32u(self.fileobj, int(mtime))
288288
if compresslevel == _COMPRESS_LEVEL_BEST:

0 commit comments

Comments
 (0)