Tools for managing archives

archiving, backup, cli, python, tar
pip install archive-tools==0.6


GitHub Workflow Status PyPI version

Tools for managing archives

This package provides tools for managing archives. An archive in terms of this package is a (compressed) tar archive file with some embedded metadata on the included files. This metadata include the name, file stats, and checksums of the file.

The package provides a command line tool to enable the following tasks:

  • Create an archive, takes a list of files to include in the archive as input.
  • Check the integrity and consistency of an archive.
  • List the contents of the archive.
  • Display details on a file in an archive.
  • Given a list of files as input, list those files that are either not in the archive or where the file in the archive differs.

All tasks providing information on an archive take this information from the embedded metadata. Retrieving this metadata does not require reading through the compressed tar archive.


The latest release version is available on the Python Package Index (PyPI).

System requirements


  • Python 3.6 or newer.

Required library packages:

Optional library packages:

  • imapclient

    Required for the script.

  • python-dateutil

    If the package is not available, some features will show slightly reduced functionality:

    • date strings will lack time zone indication.
    • the --mtime argument to find recognizes a reduced set of date formats.
  • setuptools_scm

    The version number is managed using this package. All source distributions add a static text file with the version number and fall back using that if setuptools_scm is not available. So this package is only needed to build out of the plain development source tree as cloned from GitHub.

  • pytest >= 3.0

    Only needed to run the test suite.

  • distutils-pytest

    Only needed to run the test suite.

  • pytest-dependency >= 0.2

    Only needed to run the test suite.


This package uses the distutils Python standard library package and follows its conventions of packaging source distributions. See the documentation on Installing Python Modules for details or to customize the install process.

  1. Download the sources, unpack, and change into the source directory.

  2. Build:

    $ python build
  3. Test (optional):

    $ python test
  4. Install:

    $ python install

The last step might require admin privileges in order to write into the site-packages directory of your Python installation.

Copyright and License

Copyright 2019–2021 Rolf Krahl

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.