Skip to content

Commit 7d3a02f

Browse files
Simplify!!!
1 parent cd788e6 commit 7d3a02f

1 file changed

Lines changed: 10 additions & 10 deletions

File tree

Lib/zipfile/__init__.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -515,7 +515,7 @@ def __repr__(self):
515515
result.append('>')
516516
return ''.join(result)
517517

518-
def FileHeader(self, zip64=None, metadata_encoding=None):
518+
def FileHeader(self, zip64=None):
519519
"""Return the per-file header as a bytes object.
520520
521521
When the optional zip64 arg is None rather than a bool, we will
@@ -557,17 +557,19 @@ def FileHeader(self, zip64=None, metadata_encoding=None):
557557

558558
self.extract_version = max(min_version, self.extract_version)
559559
self.create_version = max(min_version, self.create_version)
560-
filename, flag_bits = self._encodeFilenameFlags(metadata_encoding)
560+
filename, flag_bits = self._encodeFilenameFlags()
561561
header = struct.pack(structFileHeader, stringFileHeader,
562562
self.extract_version, self.reserved, flag_bits,
563563
self.compress_type, dostime, dosdate, CRC,
564564
compress_size, file_size,
565565
len(filename), len(extra))
566566
return header + filename + extra
567567

568-
def _encodeFilenameFlags(self, encoding):
569-
if not encoding or self.flag_bits & _MASK_UTF_FILENAME:
568+
def _encodeFilenameFlags(self):
569+
if self.flag_bits & _MASK_UTF_FILENAME:
570570
encoding = 'ascii'
571+
else:
572+
encoding = 'cp437'
571573
try:
572574
return self.filename.encode(encoding), self.flag_bits & ~_MASK_UTF_FILENAME
573575
except UnicodeEncodeError:
@@ -1372,7 +1374,7 @@ def close(self):
13721374
# Preserve current position in file
13731375
self._zipfile.start_dir = self._fileobj.tell()
13741376
self._fileobj.seek(self._zinfo.header_offset)
1375-
self._fileobj.write(self._zinfo.FileHeader(self._zip64, self._zipfile.metadata_encoding))
1377+
self._fileobj.write(self._zinfo.FileHeader(self._zip64))
13761378
self._fileobj.seek(self._zipfile.start_dir)
13771379

13781380
# Successfully written: Add file to our caches
@@ -1573,8 +1575,6 @@ def _RealGetContents(self):
15731575
else:
15741576
# Historical ZIP filename encoding
15751577
filename = filename.decode(self.metadata_encoding or 'cp437')
1576-
if not self.metadata_encoding and not filename.isascii():
1577-
self.metadata_encoding = "cp437"
15781578
# Create ZipInfo instance to store file information
15791579
x = ZipInfo(filename)
15801580
x.extra = fp.read(centdir[_CD_EXTRA_FIELD_LENGTH])
@@ -1834,7 +1834,7 @@ def _open_to_write(self, zinfo, force_zip64=False):
18341834
self._writecheck(zinfo)
18351835
self._didModify = True
18361836

1837-
self.fp.write(zinfo.FileHeader(zip64, self.metadata_encoding))
1837+
self.fp.write(zinfo.FileHeader(zip64))
18381838

18391839
self._writing = True
18401840
return _ZipWriteFile(self, zinfo, zip64)
@@ -2066,7 +2066,7 @@ def mkdir(self, zinfo_or_directory_name, mode=511):
20662066

20672067
self.filelist.append(zinfo)
20682068
self.NameToInfo[zinfo.filename] = zinfo
2069-
self.fp.write(zinfo.FileHeader(False, self.metadata_encoding))
2069+
self.fp.write(zinfo.FileHeader(False))
20702070
self.start_dir = self.fp.tell()
20712071

20722072
def __del__(self):
@@ -2137,7 +2137,7 @@ def _write_end_record(self):
21372137

21382138
extract_version = max(min_version, zinfo.extract_version)
21392139
create_version = max(min_version, zinfo.create_version)
2140-
filename, flag_bits = zinfo._encodeFilenameFlags(self.metadata_encoding)
2140+
filename, flag_bits = zinfo._encodeFilenameFlags()
21412141
centdir = struct.pack(structCentralDir,
21422142
stringCentralDir, create_version,
21432143
zinfo.create_system, extract_version, zinfo.reserved,

0 commit comments

Comments
 (0)