Skip to main content

A libarchive wrapper for Python supporting password protection.

Project description

ci pypi

A SmartFile Open Source project.

SmartFile

Overview

A complete wrapper for the libarchive library generated using SWIG. Also included in the package are compatibility layers for the Python zipfile and tarfile modules.

Libarchive supports the following:

  • Reads a variety of formats, including tar, pax, cpio, zip, xar, lha, ar, cab, mtree, rar, and ISO images.

  • Writes tar, pax, cpio, zip, xar, ar, ISO, mtree, and shar archives.

  • Automatically handles archives compressed with gzip, bzip2, lzip, xz, lzma, or compress.

For information on installing libarchive and python-libarchive, see the Building.

Introduction

There are actually two APIs exposed by this library.

The first API is a high level pythonic class-based interface that should seem comfortable to Python developers. If you are just getting started with python-libarchive, this is probably where you should start.

The second API is a low-level wrapper around libarchive. This wrapper provides access to the C API exposed by libarchive. A few additions or changes were made to allow easy consumption from Python, but otherwise, most libarchive example code will work (although with Python syntax). This API will be useful to those familiar with libarchive, or those that need functionality not available in the high level API.

Using the high-level API

The high level API provides a pythonic class-based interface for working with archives. On top of this is a very thin compatibility wrapper for the standard Python zipfile and tarfile modules. Since the standard Python zipfile and tarfile modules both present a different interface, so do the compatibility wrappers.

These compatibility wrappers are provided so that python-libarchive can be a drop-in replacement for the standard modules. A reason to use libarchive instead of the standard modules is that it provides native performance and better memory consumption. So if you already have code using one of these modules, you can sin many cases just replace the standard module with the libarchive alternative.

However, if you are developing a new project, it is recommended that you forgo the compatibility wrappers. Using the high-level API directly means you can support the many archive formats that libarchive does through the same standard interface.

The workhorse of the high-level API is the Archive class. This is a forward-only iterator that allows you to open an archive of any supported formant and iterate it’s contents.

import libarchive

a = libarchive.Archive('my_archive.zip')
for entry in a:
    print entry.pathname
a.close()

python-libarchive is also a context manager, so the above could be written as:

import libarchive

with libarchive.Archive('my_archive.zip') as a:
    for entry in a:
        print entry.pathname

You can also extract files. However, you can only extract the current item. Once you have iterated past an entry, there is no going back.

import libarchive

with libarchive.Archive('my_archive.zip') as a:
    for entry in a:
        if entry.pathname == 'my_file.txt':
            print 'File Contents:', a.read()

Besides the read() method, there is also readpath() and readstream(). Readpath() will extract the file to a path or already opened file. Readstream() will return a file-like object that can be used to read chunks of the file. Larger files being read from the archive should probably use one of these functions instead of read() which will read then entire contents into memory.

Writing archives is also straightforward. You open an Archive() class then add files to it using one of the write() methods.

import libarchive

with libarchive.Archive('my_archive.zip', 'w') as a:
    for name in os.listdir('.'):
        a.write(libarchive.Entry(name), file(name, 'r').read())

Again, there is also a writepath() method which will write a file-like object or path directly to the archive. The above example could have been written as the following.

import libarchive

with libarchive.Archive('my_archive.zip', 'w') as a:
    for name in os.listdir('.'):
        a.writepath(libarchive.Entry(name), name)

In addition to the Archive class. There is also SeekableArchive. This class provides random access when reading an archive. It will remember where entries are located within the archive stream, and will close/reopen the stream and seek to the entry’s location. So, you can extract an item directly. The first example can be written as follows.

import libarchive

with libarchive.SeekableArchive('my_archive.zip') as a:
    print 'File Contents:', a.read('my_file.txt')

There is overhead involved in using the SeekableArchive, so it is suggested that you use the Archive in cases that you don’t need random access to an archives entries. In fact, the above example was probably better off using the Archive class.

Using the low-level API

Using the low-level API leaves all the work to you. You will need to be careful to create and free libarchive structures yourself. You will also need to be well-versed in the return codes and expected parameters of libarchive. In fact, if you are not, then you probably should stop reading now.

from libarchive import _libarchive

a = _libarchive.archive_read_new()
_libarchive.archive_read_support_filter_all(a)
_libarchive.archive_read_support_format_all(a)
_libarchive.archive_read_open_fd(a, f.fileno(), 10240)
while True:
    e = _libarchive.archive_entry_new()
    try:
        r = _libarchive.archive_read_next_header2(a, e)
        if r != _libarchive.ARCHIVE_OK:
            break
        n = _libarchive.archive_entry_pathname(e)
        if n != 'my_file.txt':
            continue
        l = _libarchive.archive_entry_size(e)
        s = _libarchive.archive_read_data_into_str(a, l)
        print 'File Contents:', s
    finally:
        _libarchive.archive_entry_free(e)
_libarchive.archive_read_close(a)
_libarchive.archive_read_free(a)

As you can see this is a lot more work for little benefit. But as stated before, you may end up interacting with the low-level API if some of the functionality you require is not covered in the high-level API.

And as always, patches are appreciated!

Installing libarchive

Many Linux distributions include libarchive 2. This extension only works with libarchive 3. In these cases, you must install libarchive to a /usr/local. This will allow it to co-exist with the version installed with your distribution. To install libarchive using autoconf, follow the instructions below.

Prerequisites.

You will need either automake or cmake to install libarchive. Also required is python-dev. In addition, you will also need a compiler and some other tools. To install these prerequisites do the following:

On Debian/Ubuntu:

# Install compiler and tools
$ sudo apt-get install build-essential libtool python-dev

# Install automake
$ sudo apt-get install automake

# Or install cmake
$ sudo apt-get install cmake

Or CentOS/Fedora:

# Install compiler and tools
$ sudo yum groupinstall "Development Tools"
$ sudo yum install python-devel libtool

# Install automake
$ sudo yum install automake

# Or install cmake
$ sudo yum install cmake

You should now be able to install libarchive.

$ wget http://libarchive.googlecode.com/files/libarchive-3.0.3.tar.gz
$ tar xzf libarchive-3.0.3.tar.gz

# Configure using automake...
$ cd libarchive-3.0.3/
$ build/autogen.sh
$ ./configure --prefix=/usr/local

# Or configure using cmake...
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local ../libarchive-3.0.3

# Now compile and install...
$ make
$ sudo make install

Now that the library is installed, you need to tell ld where to find it. The easiest way to do this is to add /usr/local/lib to the ld.so.conf.

$ sudo sh -c 'echo /usr/local/lib > /etc/ld.so.conf.d/libarchive3.conf'
$ sudo ldconfig

Now libarchive 3.0.3 is installed into /usr/local/. The next step is to build and install python-libarchive.

Installing python-libarchive

Now that libarchive is installed, you can install the python extension using the steps below.

$ wget http://python-libarchive.googlecode.com/files/python-libarchive-3.0.3-2.tar.gz
$ tar xzf python-libarchive-3.0.3-2.tar.gz
$ cd python-libarchive-3.0.3-2/
$ sudo python setup.py install

You can also install using pip.

$ pip install python-libarchive

setup.py will explicitly link against version 3.0.3 of the library.

Hacking / Running the Test Suite

The test suite is located in the root directory. This is done purposefully to make hacking easier. If you make changes to the library, you can run the test suite against the local copy in the libarchive/ subdirectory rather than the version installed on your system.

However, this means you need to have the extension compiled in this same directory. You will also need SWIG for this step. You can accomplish this using the following commands.

On Debian/Ubuntu:

$ sudo apt-get install swig

Or CentOS/Fedora:

$ sudo yum install swig

Now you can re-SWIG the interface and recompile the extension.

$ cd libarchive/
$ make
$ cd ..

Now you can run the test suite from the main directory.

$ python tests.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-libarchive-4.2.0b1.tar.gz (57.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

python_libarchive-4.2.0b1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

python_libarchive-4.2.0b1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (515.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

python_libarchive-4.2.0b1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

python_libarchive-4.2.0b1-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (516.0 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

python_libarchive-4.2.0b1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

python_libarchive-4.2.0b1-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (516.0 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

python_libarchive-4.2.0b1-cp311-cp311-musllinux_1_1_x86_64.whl (657.5 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

python_libarchive-4.2.0b1-cp311-cp311-musllinux_1_1_i686.whl (676.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ i686

python_libarchive-4.2.0b1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

python_libarchive-4.2.0b1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (643.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

python_libarchive-4.2.0b1-cp310-cp310-musllinux_1_1_x86_64.whl (650.9 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

python_libarchive-4.2.0b1-cp310-cp310-musllinux_1_1_i686.whl (670.2 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ i686

python_libarchive-4.2.0b1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

python_libarchive-4.2.0b1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (636.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

python_libarchive-4.2.0b1-cp39-cp39-musllinux_1_1_x86_64.whl (650.5 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

python_libarchive-4.2.0b1-cp39-cp39-musllinux_1_1_i686.whl (669.9 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ i686

python_libarchive-4.2.0b1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

python_libarchive-4.2.0b1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (636.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686

python_libarchive-4.2.0b1-cp38-cp38-musllinux_1_1_x86_64.whl (649.5 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

python_libarchive-4.2.0b1-cp38-cp38-musllinux_1_1_i686.whl (669.2 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ i686

python_libarchive-4.2.0b1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

python_libarchive-4.2.0b1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (632.5 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ i686

python_libarchive-4.2.0b1-cp37-cp37m-musllinux_1_1_x86_64.whl (646.0 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ x86-64

python_libarchive-4.2.0b1-cp37-cp37m-musllinux_1_1_i686.whl (665.9 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ i686

python_libarchive-4.2.0b1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

python_libarchive-4.2.0b1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (630.6 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ i686

python_libarchive-4.2.0b1-cp36-cp36m-musllinux_1_1_x86_64.whl (645.0 kB view details)

Uploaded CPython 3.6mmusllinux: musl 1.1+ x86-64

python_libarchive-4.2.0b1-cp36-cp36m-musllinux_1_1_i686.whl (665.0 kB view details)

Uploaded CPython 3.6mmusllinux: musl 1.1+ i686

python_libarchive-4.2.0b1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

python_libarchive-4.2.0b1-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl (630.6 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ i686

File details

Details for the file python-libarchive-4.2.0b1.tar.gz.

File metadata

  • Download URL: python-libarchive-4.2.0b1.tar.gz
  • Upload date:
  • Size: 57.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for python-libarchive-4.2.0b1.tar.gz
Algorithm Hash digest
SHA256 f00dc56eb03b57682761e78774c22d97da8ed9db36e253e2eb00b21a01061e0c
MD5 86715e68e552676dfcf8c8aed9f69468
BLAKE2b-256 1f015745b51e7e2e3c01e8061da5ffab79019c2bd21e630f5908d7650f2f0147

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3904f29f03726dd156e757e6c04a2574c2e869d3c91c56c2ec2039f73c32d42a
MD5 45032dc152614e6e3960d8db7d40c1aa
BLAKE2b-256 acdc0af2699d2c5bd51d04e03228b732e92c1abd6cd00ac4d9b88b64f560bba5

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ad7b628c70f28030c5b689c0d88cc30826aedf7a24bbef40f79a9ea2d963e17f
MD5 0c87d1f7ef55225b211a3e8abd5e8665
BLAKE2b-256 76dcb55b2ee72af4ec14f3f3abe87e722ea8b5e3a519a8f19d2db917195d5b85

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 07a850833b2ca92e92b71469ff352ff664da190627268fb645d4f9553cc41f42
MD5 1fb29015dcc603f7940581d52512a5f7
BLAKE2b-256 7ca504b02a1126595df431c0f0b2a2b60ff62172990c79ca9ea4bf0cfcf16322

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 90715b39fb98eb463679b9ec37773529cf5bb9c56930510228211cfe23f0a410
MD5 e324777e2cd04fee8c186f8cd4b78693
BLAKE2b-256 04e3885d57b614a6ec0cecb37f237b6cb9e2ab96c09594b3c543daaaaeee8517

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cbd274f4faaf4576980ee8cd731e967438724126d2d00482b42d1316d5f38d28
MD5 24a1ef1888af509dda30eaea1a8ae398
BLAKE2b-256 98c4a1daec9d7700e78e452961e8dbdfe74e98d33654da1be9a3d4f402c8fe78

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d8ce2f1c06a2f1af5469d6c30cf8213d55a8fbecf4ea754dc9ecbc042108561b
MD5 9c7e1474b25b63d989a61f5dc5729e4e
BLAKE2b-256 81266d250e4ed1e238a12bf31f003a89f55d71172237bc427f42d3c8c1d55bd1

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f2160fb79b0114229ad1edf8a5be71af5565d2d84929a48c282d4fa2b2ba5d00
MD5 a0078bfc1d91ef908e94d64fa6c42b51
BLAKE2b-256 56c2e90e8ac587a6a4d4c6c3974ae0806a1e58a542f9b563763fc756ea91a1a4

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp311-cp311-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 cafbecd37217a66868a8d608ad8e32b4941c981b6be18a56cfe1453bc202671e
MD5 db3edcdcb247b0f0f526c13111cd2667
BLAKE2b-256 25af0272d3779e02523aa19a5ba8322b465c51f247ff6fb637f488dea807b9cc

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 551a5a4f26ff6b173c03aa425219fa403b4be0739957cfd840bbd1882876ae5a
MD5 74c359c4cf3cb49608c5389d2d8a7849
BLAKE2b-256 914324df6f6f90452cfc5b47901f89d7e1ff82f197f11771661ace3790d0160c

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b620a5443fa6fc04a6293a021939ee904a864f16083fe5928a0c1b886aaabe1d
MD5 d7ad233a1ec0a64cf7650c94dde0b157
BLAKE2b-256 7fe8fc2cdcb13ac1aabbdf6d4e628db795b10ab0f1b9c9f3e98881111585775e

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a9fbfdf7bca8304e1957d6871a7c17e3350b50f538a9be4d4ada5c3015244393
MD5 bcfec43aa0ccd429406ed265847f2815
BLAKE2b-256 d32f287d8022a10b31dba420054c57fb22c4b6c74b127d254d51f4b1476394b4

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp310-cp310-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 ff79b56d5f3513a83323f023c35369a48c8d13d5fd67072c09606fc4e117666a
MD5 2544696b378d2699837f3c6bae614c93
BLAKE2b-256 d22d2a799a20037ffdb337e6c8453941e4a348b5c7339bd9b4992436c2f49fd3

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ed9b635722901ec1cbfb490c3df80f3887ef9fde9a4a6ee3c9c4bc474d5d3cc0
MD5 cde3a0faa518eee4944084d88203d8be
BLAKE2b-256 8148a53a52f2360c944438c7f80fba9e74dbbf10974099e6deaab38b2a63a877

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 372da764b516921836d1d34538a460b865cddb86ccbe11579e52e6fed4bdd0dc
MD5 2d1eb4b30e2a02117acb0af98b5de2aa
BLAKE2b-256 70a45e14c7d4e15c61da225475092f357deec14f58673b3643e84593c7c93d39

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b9b00948fe6ca391dcd80e1b152c22f050dd0f8664ee48c0e03502a970924f0b
MD5 132af7a1d1efdf6c028e3ef6a53500de
BLAKE2b-256 2067c1a3d6ca6292a2e8ee771c44e38c8ec284c0d9b9621b66550db8c13d8972

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp39-cp39-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 d0a16ee7b3bfb8f0e7eff79186e61d3b3786fe70466ab698f9f91a428f8996bf
MD5 dc2fab928bde059dadf7d5f3d4d70b36
BLAKE2b-256 712a97e040cc099d7aeab7317992506a36ee1c37b928b183f38fa7011928a1a5

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 98afb76547207ee21a25e99355becef24e414099dd83596788913a28db242acb
MD5 624b78ed3462aa590eda04baf885f32d
BLAKE2b-256 f47a122e0b5dbf0e9fcbe19551fa076a63e6ef17e90bda28ccb60df39ea55dc3

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 fbcc45e31da410f968e3f947e89b6144ff7639ecfe709f3ee9126156845eab56
MD5 3c2778ce7eb473ac2b933fc3897b2985
BLAKE2b-256 7d959f67655099789eb3de1fa6ebda9b3b4515421bbfdd5244ad13fd8ab75826

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 dc4e17101ee4ab2773a4e87e2625812c93b3064004ddf73c7b94fbdbdf65e347
MD5 7ee5ad5cfd66d542de7851277a1b0280
BLAKE2b-256 27e0667968c33fd440ee9bf01e823935f2660419f305485a035f26830da2c69d

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp38-cp38-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 d397b1ca94378c96b207507508aaec6b75d00636352a9563f0141bbf10bbcb2e
MD5 6857d0c4f121f8dbc6f9396e8af3a13d
BLAKE2b-256 d6aff7703e9a8cefdbc743a6e92a87e9775bce072de9a57789e4641e31966254

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 970313f50a6591bdf4b93e1863db2e9c741e7b283acd02e87dfd0a36d22966b0
MD5 f44e22bd17c5650b6f643ee3f1ba60c7
BLAKE2b-256 49c4e620a67e558f2c4d4dfb02fb2627a95339ce00260f560cbf7be1051750a6

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 12ff59546c3e42fc7b0c329afcee6fb68523360303339ca34c140661581dac96
MD5 f4074c1b520af509331f210ee63777fe
BLAKE2b-256 af5ecf640b85e32b7439313dcfbeffe829d35cdb9022017148807aaf49581558

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 621046edfe4cde0a0392baaedc020376816002f86c7f6e411fc4686589f6b762
MD5 09ddd1ea534c3351f7298476b29ddbe0
BLAKE2b-256 942267eb3ba39b2c2a4309aa59224ce7b3a0cda7f557d7317e8effe38349822d

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp37-cp37m-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 e620fda106eb61df277f9e0ff7c0b57ae3b51fee1a826087e82b720ae4ece6a6
MD5 5643e3d6b7591993f27e009f7c91b1d4
BLAKE2b-256 4436b1535c85dd4633abae83f126c8ea9615182fd7bcf4d0651c553cf58fcff6

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae8d9503c651b2951df2c793131f264a21076f26f676b568009edbf045821768
MD5 f94236a7af3544dc650b22f229e38915
BLAKE2b-256 3a04b0f5d40fcaa087ae55b3d2993ac4cfefac36bc6d1649d5aec9d76e72e053

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5498f6912da7e696e52d35170a40495d5550014e9d877794f7f8d63a9470fa9a
MD5 48d84a3129d0fede2a15bc6db22c18b5
BLAKE2b-256 ad999b4f4a85e52ef2016903b093f2b0ce95369cd3f2c7985e8604a34f46f388

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp36-cp36m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 37a1908542285b7a7157d8e537bc3116915e64508d70e9f5ea2f00f1b26044e7
MD5 9f174b670689d68de1883e2bd7bbf8c8
BLAKE2b-256 dccbfe8c43e1a702270c18cabf4789a10bbf9ee307f33fd46872bf655788f9ba

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp36-cp36m-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 17b18a4da196d16ba47d1ece6eb49d5f8d5e6f93fdaa867b08a7c2a306ae9006
MD5 ac3490dcac6e21460a03a05b53af90e1
BLAKE2b-256 357ee990a1f4952656eef6646497038f6ac9ae570b9eeb78853dfbfaec5417b0

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d655632d29ca23e3b167451d5e04aee6b847abbb6c33c9bef75969f0c9456abe
MD5 fcfb5853a09a3071e23902911177550f
BLAKE2b-256 98a0c268bcc78b62efcd4608b652d2695cb5e2640cfbb495f2ba9bb955d1860c

See more details on using hashes here.

File details

Details for the file python_libarchive-4.2.0b1-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for python_libarchive-4.2.0b1-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0defe416bf261d36548c5f553b95629f8d46da31014a94917c51a33c0cc9a347
MD5 55c38cd0e7286ee1b96f572b2a2d44e5
BLAKE2b-256 21c79b0855d8f292cb11f5d0c01ab61f4aafa2ec3f551cfa1ad001e2cd1f8e9e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page