summaryrefslogtreecommitdiff
path: root/libmat2
diff options
context:
space:
mode:
authorjvoisin2019-07-13 14:57:12 +0200
committerjvoisin2019-07-13 15:04:43 +0200
commitbdd55810330701e13dd9a0a5f6bb34652fe601eb (patch)
tree3be27346e0e4a510b9797391bfea74ba648f4ca6 /libmat2
parent47f9cb33bf3f86382dda29aedebe5bca271af306 (diff)
Compress cleaned zip archives by default
Diffstat (limited to 'libmat2')
-rw-r--r--libmat2/archive.py15
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):
99 def _get_member_name(member: ArchiveMember) -> str: 99 def _get_member_name(member: ArchiveMember) -> str:
100 """Return the name of the given member.""" 100 """Return the name of the given member."""
101 101
102 @staticmethod 102 @abc.abstractmethod
103 @abc.abstractstaticmethod 103 def _add_file_to_archive(self, archive: ArchiveClass, member: ArchiveMember,
104 def _add_file_to_archive(archive: ArchiveClass, member: ArchiveMember,
105 full_path: str): 104 full_path: str):
106 """Add the file at full_path to the archive, via the given member.""" 105 """Add the file at full_path to the archive, via the given member."""
107 106
@@ -313,8 +312,7 @@ class TarParser(ArchiveBasedAbstractParser):
313 metadata['gname'] = member.gname 312 metadata['gname'] = member.gname
314 return metadata 313 return metadata
315 314
316 @staticmethod 315 def _add_file_to_archive(self, archive: ArchiveClass, member: ArchiveMember,
317 def _add_file_to_archive(archive: ArchiveClass, member: ArchiveMember,
318 full_path: str): 316 full_path: str):
319 assert isinstance(member, tarfile.TarInfo) # please mypy 317 assert isinstance(member, tarfile.TarInfo) # please mypy
320 assert isinstance(archive, tarfile.TarFile) # please mypy 318 assert isinstance(archive, tarfile.TarFile) # please mypy
@@ -358,6 +356,7 @@ class ZipParser(ArchiveBasedAbstractParser):
358 super().__init__(filename) 356 super().__init__(filename)
359 self.archive_class = zipfile.ZipFile 357 self.archive_class = zipfile.ZipFile
360 self.member_class = zipfile.ZipInfo 358 self.member_class = zipfile.ZipInfo
359 self.zip_compression_type = zipfile.ZIP_DEFLATED
361 360
362 def is_archive_valid(self): 361 def is_archive_valid(self):
363 try: 362 try:
@@ -392,13 +391,13 @@ class ZipParser(ArchiveBasedAbstractParser):
392 391
393 return metadata 392 return metadata
394 393
395 @staticmethod 394 def _add_file_to_archive(self, archive: ArchiveClass, member: ArchiveMember,
396 def _add_file_to_archive(archive: ArchiveClass, member: ArchiveMember,
397 full_path: str): 395 full_path: str):
398 assert isinstance(archive, zipfile.ZipFile) # please mypy 396 assert isinstance(archive, zipfile.ZipFile) # please mypy
399 assert isinstance(member, zipfile.ZipInfo) # please mypy 397 assert isinstance(member, zipfile.ZipInfo) # please mypy
400 with open(full_path, 'rb') as f: 398 with open(full_path, 'rb') as f:
401 archive.writestr(member, f.read()) 399 archive.writestr(member, f.read(),
400 compress_type=self.zip_compression_type)
402 401
403 @staticmethod 402 @staticmethod
404 def _get_all_members(archive: ArchiveClass) -> List[ArchiveMember]: 403 def _get_all_members(archive: ArchiveClass) -> List[ArchiveMember]: