diff options
author | flode <flo.de@hotmail.de> | 2023-08-17 15:38:30 +0200 |
---|---|---|
committer | Florian Scheibner <fscheibner@salesforce.com> | 2023-08-17 15:38:48 +0200 |
commit | 76629618788e52ae8264f5df7c99c43d299b69ab (patch) | |
tree | 74bb61574d211a9202fcf053496df7031f9b0a40 /pkg/private/zip/build_zip.py | |
parent | b035a74ffac0f72eadd354cb61585e1954d937c5 (diff) | |
download | bazelbuild-rules_pkg-76629618788e52ae8264f5df7c99c43d299b69ab.tar.gz |
Fix python 3.6, doesn't support compresslevel
Python3.6 is already end-of-life but seems to still be used in the CI.
Diffstat (limited to 'pkg/private/zip/build_zip.py')
-rw-r--r-- | pkg/private/zip/build_zip.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/pkg/private/zip/build_zip.py b/pkg/private/zip/build_zip.py index 61ed9d5..cd58740 100644 --- a/pkg/private/zip/build_zip.py +++ b/pkg/private/zip/build_zip.py @@ -16,6 +16,7 @@ import argparse import datetime import os +import sys import zipfile from pkg.private import build_info @@ -110,6 +111,13 @@ class ZipWriter(object): self.zip_file.close() self.zip_file = None + def writestr(self, entry_info, content: str, compresslevel: int): + if sys.version_info >= (3, 7): + self.zip_file.writestr(entry_info, content, compresslevel=compresslevel) + else: + # Python 3.6 and lower don't support compresslevel + self.zip_file.writestr(entry_info, content) + def make_zipinfo(self, path: str, mode: str): """Create a Zipinfo. @@ -158,7 +166,7 @@ class ZipWriter(object): entry_info.compress_type = self.compression_type # Using utf-8 for the file names is for python <3.7 compatibility. with open(src.encode('utf-8'), 'rb') as src_content: - self.zip_file.writestr(entry_info, src_content.read(), compresslevel=self.compression_level) + self.writestr(entry_info, src_content.read(), compresslevel=self.compression_level) elif entry_type == manifest.ENTRY_IS_DIR: entry_info.compress_type = zipfile.ZIP_STORED # Set directory bits @@ -229,7 +237,7 @@ class ZipWriter(object): entry_info = self.make_zipinfo(path=path, mode=f_mode) entry_info.compress_type = self.compression_type with open(content_path, 'rb') as src: - self.zip_file.writestr(entry_info, src.read(), compresslevel=self.compression_level) + self.writestr(entry_info, src.read(), compresslevel=self.compression_level) else: # Implicitly created directory dir_path = path |