Skip to content
Snippets Groups Projects
Commit 8204728d authored by Thomas Reifenberger's avatar Thomas Reifenberger
Browse files

Small refactoring

parent f492d618
No related branches found
No related tags found
No related merge requests found
...@@ -81,9 +81,7 @@ def pack_to_bytes(info, path): ...@@ -81,9 +81,7 @@ def pack_to_bytes(info, path):
_patch_info(info) _patch_info(info)
bytes_io = io.BytesIO() bytes_io = io.BytesIO()
with tarfile.open(fileobj=bytes_io, mode='w:gz') as archive: with tarfile.open(fileobj=bytes_io, mode='w:gz') as archive:
info_data = encode_info(info) _add_to_archive(archive, 'info', encode_info(info))
tarinfo, fileobj = _create_tarinfo_and_buffer(info_data, 'info')
archive.addfile(tarinfo, fileobj=fileobj)
for directory in _DIRECTORIES: for directory in _DIRECTORIES:
files = info['files'].get(directory, []) files = info['files'].get(directory, [])
...@@ -91,8 +89,7 @@ def pack_to_bytes(info, path): ...@@ -91,8 +89,7 @@ def pack_to_bytes(info, path):
continue continue
directory_archive = _create_directory_archive(os.path.join(path, directory), files) directory_archive = _create_directory_archive(os.path.join(path, directory), files)
tarinfo, fileobj = _create_tarinfo_and_buffer(directory_archive, directory + '.tar') _add_to_archive(archive, directory + '.tar', directory_archive)
archive.addfile(tarinfo, fileobj)
return bytes_io.getvalue() return bytes_io.getvalue()
...@@ -110,6 +107,11 @@ def _create_directory_archive(path, files): ...@@ -110,6 +107,11 @@ def _create_directory_archive(path, files):
return bytes_io.getvalue() return bytes_io.getvalue()
def _add_to_archive(archive, filename, data):
tarinfo, fileobj = _create_tarinfo_and_buffer(data, filename)
archive.addfile(tarinfo, fileobj=fileobj)
def _create_tarinfo_and_buffer(data, filename): def _create_tarinfo_and_buffer(data, filename):
tarinfo = tarfile.TarInfo(filename) tarinfo = tarfile.TarInfo(filename)
tarinfo.size = len(data) tarinfo.size = len(data)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment