diff options
author | jvoisin <julien.voisin@dustri.org> | 2019-07-13 14:57:12 +0200 |
---|---|---|
committer | jvoisin <julien.voisin@dustri.org> | 2019-07-13 15:04:43 +0200 |
commit | bdd55810330701e13dd9a0a5f6bb34652fe601eb (patch) | |
tree | 3be27346e0e4a510b9797391bfea74ba648f4ca6 | |
parent | 47f9cb33bf3f86382dda29aedebe5bca271af306 (diff) | |
download | external_mat2-bdd55810330701e13dd9a0a5f6bb34652fe601eb.tar.gz external_mat2-bdd55810330701e13dd9a0a5f6bb34652fe601eb.tar.bz2 external_mat2-bdd55810330701e13dd9a0a5f6bb34652fe601eb.zip |
Compress cleaned zip archives by default
-rw-r--r-- | libmat2/archive.py | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/libmat2/archive.py b/libmat2/archive.py index e6c11c1..15f9d49 100644 --- a/libmat2/archive.py +++ b/libmat2/archive.py @@ -99,9 +99,8 @@ class ArchiveBasedAbstractParser(abstract.AbstractParser): def _get_member_name(member: ArchiveMember) -> str: """Return the name of the given member.""" - @staticmethod - @abc.abstractstaticmethod - def _add_file_to_archive(archive: ArchiveClass, member: ArchiveMember, + @abc.abstractmethod + def _add_file_to_archive(self, archive: ArchiveClass, member: ArchiveMember, full_path: str): """Add the file at full_path to the archive, via the given member.""" @@ -313,8 +312,7 @@ class TarParser(ArchiveBasedAbstractParser): metadata['gname'] = member.gname return metadata - @staticmethod - def _add_file_to_archive(archive: ArchiveClass, member: ArchiveMember, + def _add_file_to_archive(self, archive: ArchiveClass, member: ArchiveMember, full_path: str): assert isinstance(member, tarfile.TarInfo) # please mypy assert isinstance(archive, tarfile.TarFile) # please mypy @@ -358,6 +356,7 @@ class ZipParser(ArchiveBasedAbstractParser): super().__init__(filename) self.archive_class = zipfile.ZipFile self.member_class = zipfile.ZipInfo + self.zip_compression_type = zipfile.ZIP_DEFLATED def is_archive_valid(self): try: @@ -392,13 +391,13 @@ class ZipParser(ArchiveBasedAbstractParser): return metadata - @staticmethod - def _add_file_to_archive(archive: ArchiveClass, member: ArchiveMember, + def _add_file_to_archive(self, archive: ArchiveClass, member: ArchiveMember, full_path: str): assert isinstance(archive, zipfile.ZipFile) # please mypy assert isinstance(member, zipfile.ZipInfo) # please mypy with open(full_path, 'rb') as f: - archive.writestr(member, f.read()) + archive.writestr(member, f.read(), + compress_type=self.zip_compression_type) @staticmethod def _get_all_members(archive: ArchiveClass) -> List[ArchiveMember]: |