Metadata-Version: 2.4 Name: securetar Version: 2026.4.1 Summary: Python module to handle tarfile backups. Author-email: Pascal Vizeli License: Apache-2.0 Project-URL: Homepage, https://github.com/pvizeli/securetar Classifier: Intended Audience :: Developers Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Topic :: Software Development :: Libraries :: Python Modules Requires-Python: >=3.11.0 Description-Content-Type: text/markdown License-File: LICENSE Requires-Dist: cryptography Requires-Dist: PyNaCl Dynamic: license-file # Secure Tar Secure Tarfile library It's a streaming wrapper around python tarfile and allow secure handling files and support encryption. ```python from securetar import SecureTarFile, atomic_contents_add from pathlib import Path path_to_add = Path(".") with SecureTarFile("test.tar", "w") as tar_file: atomic_contents_add( tar_file, path_to_add, file_filter=lambda _: False, arcname=".", ) with SecureTarFile("test.tar", "w", b"AES128_KEY_SIZE") as tar_file: atomic_contents_add( tar_file, path_to_add, file_filter=lambda _: False, arcname=".", ) ``` A common pattern is to create an outer uncompressed tarfile that contains a variety of inner tar files. This can be accomplished without writing out multiple files with the following pattern. ```python from securetar import SecureTarFile, atomic_contents_add from pathlib import Path path_1 = Path("path1") path_2 = Path("path2") outer_secure_tar_file = SecureTarFile("pkg.tar", "w", gzip=False) with outer_secure_tar_file as outer_tar_file: with outer_secure_tar_file.create_inner_tar( "./backup1.tar.gz", gzip=True ) as inner_tar_file: atomic_contents_add( inner_tar_file, path_1, file_filter=lambda _: False, arcname=".", ) with outer_secure_tar_file.create_inner_tar( "./backup2.tar.gz", gzip=True ) as inner_tar_file: atomic_contents_add( inner_tar_file, path_2, file_filter=lambda _: False, arcname=".", ) ```