diff options
| author | jvoisin | 2019-07-13 14:57:12 +0200 |
|---|---|---|
| committer | jvoisin | 2019-07-13 15:04:43 +0200 |
| commit | bdd55810330701e13dd9a0a5f6bb34652fe601eb (patch) | |
| tree | 3be27346e0e4a510b9797391bfea74ba648f4ca6 | |
| parent | 47f9cb33bf3f86382dda29aedebe5bca271af306 (diff) | |
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): | |||
| 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]: |
