From 8204728d61c9a6e8196fa0465722c5d720944d53 Mon Sep 17 00:00:00 2001
From: Thomas Reifenberger <tom-mi@users.noreply.github.com>
Date: Sat, 14 Nov 2020 13:10:13 +0100
Subject: [PATCH] Small refactoring

---
 mkp/__init__.py | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/mkp/__init__.py b/mkp/__init__.py
index bec3233..4758688 100644
--- a/mkp/__init__.py
+++ b/mkp/__init__.py
@@ -81,9 +81,7 @@ def pack_to_bytes(info, path):
     _patch_info(info)
     bytes_io = io.BytesIO()
     with tarfile.open(fileobj=bytes_io, mode='w:gz') as archive:
-        info_data = encode_info(info)
-        tarinfo, fileobj = _create_tarinfo_and_buffer(info_data, 'info')
-        archive.addfile(tarinfo, fileobj=fileobj)
+        _add_to_archive(archive, 'info', encode_info(info))
 
         for directory in _DIRECTORIES:
             files = info['files'].get(directory, [])
@@ -91,8 +89,7 @@ def pack_to_bytes(info, path):
                 continue
 
             directory_archive = _create_directory_archive(os.path.join(path, directory), files)
-            tarinfo, fileobj = _create_tarinfo_and_buffer(directory_archive, directory + '.tar')
-            archive.addfile(tarinfo, fileobj)
+            _add_to_archive(archive, directory + '.tar', directory_archive)
 
     return bytes_io.getvalue()
 
@@ -110,6 +107,11 @@ def _create_directory_archive(path, files):
     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):
     tarinfo = tarfile.TarInfo(filename)
     tarinfo.size = len(data)
-- 
GitLab