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.0.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.0-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.0-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.0-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.0-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.0-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.0-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.0-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.0-cp311-cp311-musllinux_1_1_i686.whl (676.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ i686

python_libarchive-4.2.0-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.0-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.0-cp310-cp310-musllinux_1_1_x86_64.whl (650.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.10musllinux: musl 1.1+ i686

python_libarchive-4.2.0-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.0-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.0-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.0-cp39-cp39-musllinux_1_1_i686.whl (669.9 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ i686

python_libarchive-4.2.0-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.0-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.0-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.0-cp38-cp38-musllinux_1_1_i686.whl (669.2 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ i686

python_libarchive-4.2.0-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.0-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.0-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.0-cp37-cp37m-musllinux_1_1_i686.whl (665.9 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ i686

python_libarchive-4.2.0-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.0-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.0-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.0-cp36-cp36m-musllinux_1_1_i686.whl (664.9 kB view details)

Uploaded CPython 3.6mmusllinux: musl 1.1+ i686

python_libarchive-4.2.0-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.0-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.0.tar.gz.

File metadata

  • Download URL: python-libarchive-4.2.0.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.0.tar.gz
Algorithm Hash digest
SHA256 6867f50c29eae62ee72da4283c1ca67d62e9e88d4f7928b682c594300278023a
MD5 2ac7a411b7fb64106b03621e1cf69f3f
BLAKE2b-256 1babf7791f241675e5041a7e466f6990dcb0a58ff9fb7a3495644aef3612ba40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 db1223f9d1ac3d44733482187945d12380509bd51e13baf0c86b164f9d7f718a
MD5 df808e53fff9b7ce60d96722c41d1b05
BLAKE2b-256 9d1d88fb62051914a16317a4386ae77e831a2a6b40557f94a48032871ac38a11

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 09b5e45a1349b157ef119cb7f0210b8cf25862b68af2cb29c008b7ee456fde46
MD5 96a29e363074969449e922afd6d951b5
BLAKE2b-256 582d8b7e0a9526d1a9c00ba967cd17dc8c657d85f21c974224b1766cf7d34881

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6c47ed0d9aa05e03d10f7e4ed2e2f74631bda3d2a7124e506626656ec7a4e84c
MD5 df060b033b0bee1cd3775545fce48ba4
BLAKE2b-256 8625ec6e7ca6a44c2a58625f25424f2ed165e7bf0a372a2ef7a42321d484b6c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 faed7f46797cb4895c7e140b190d60781b5b491d47f3c9246998ab614795f6e9
MD5 f17e4ba53aca7ac25b60e40e18a46cb5
BLAKE2b-256 e7bb3d5135ed4babfd477efeb9268f6b230ace656619e8c82454d8c9734154a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fe5952e651569f5abcd44515544a82de49cab610aa56e56971ad8e54765ff481
MD5 d9b7b66e3dc091e10f97fa6c1e8679f3
BLAKE2b-256 5b7308ca244fa8234f65f5139a8256e9311eba4a1be720e0a08ebd770e7152aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c638633fc80cb306caf35fe46a55f677187a1108af286ac7187b047d1d4e8e9e
MD5 0761cfbf69376fb6415cab3b4c392ffa
BLAKE2b-256 dbef192e41d4fa91ba1f70913ef2859d4fd568c58d257a4dad3743d32e1ec6ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3c8b297e1b407cb18bd733fd0f6d8b3a6a779a7e90f8e71f0070a7dccc73f21c
MD5 3bff79cba7c1f9f46a84a678b7930a76
BLAKE2b-256 1e4632c0f447e39d33fa22f7908c33ae5b2be5df4fea3d57d8d841cc76c23d7d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 1b083f100714adc05c3b88ddabd9446fecb3136603a68e65f7237d9e56204107
MD5 8a76c16edd9f90cc5bd548c17b9eb3c6
BLAKE2b-256 413dcf0c958d7e14c2e2c946989a82ae74566f1b55bc2e75c99307ace8b59138

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 47dfcead0b1f6efe4a341b2ad832d5a1514fda657f80b044beb7a2741da1135b
MD5 278177ae0580b16f9c96f2d9066ee965
BLAKE2b-256 fec7bd8f8644f21c8d8b2b487f8f006ffa2967765efff878cc71f1e12d53262a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ec9f076ad547cb817b92576e32e50cb9975e171bcd0741cf95d3941d7e04bd0b
MD5 8269dfb1198b735a6d898dead0adcf21
BLAKE2b-256 74af715991f3323e5af819b040b43d0ea22727427c676c127e4453c625e5b94f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 17ed7a324554fdd4b8748614061b4a8546ced51d5580caec5b8a729f03b1a43b
MD5 8f184de57ee243a3adc00f7b8966ba7c
BLAKE2b-256 fb7282f87e10d15cde81dc17e34c9ab3197399ad881d593753d055e8f39a6b1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 9a3ae802633b95c52f2a6023e3da41e6033012e5c1b9f2280df4fe00d17d020b
MD5 933092de37387c9194b40e4b4f597ae0
BLAKE2b-256 cefff78dbe17311012615844c74bcb7d6faf19f282e44c8c1dfef8649e0fd179

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 464ad241a9dc8b2b43578ca56669d6f0eaf27775ff76dd53d2bf7edafa0e0e29
MD5 6f7bd9ff68f964ab096e22f958746ac7
BLAKE2b-256 cb9b8d7ea2e08cda73c023c0c787b40bf709964dd76042cf7201eae74698b544

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0104d5e5596c32825b92d5c3e9c335d4490a08176c1c289393090f71d6158ea9
MD5 da52d7a8a978d684ae9ba83230ffd7b5
BLAKE2b-256 613f36154211c82962f47cd2d9b01f369c3c0e3f75b35fe71012dd59db877460

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8610f349fab49b9073e855bbd14bde7a196cd0ef166c4fc949ff22e608595aa4
MD5 82afe1e3921d9f26f9ced5d155e83401
BLAKE2b-256 7a0df23caa775273ee17ba8fa35a8bb8b011507f9622d4f4fa9b81d96345f67c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 d5c1033e5411e866b01e08bdbef10de91ce41a3ad7f7dd63692988e931008e18
MD5 a3f3f133b555e698403661ece6ad001e
BLAKE2b-256 84802d56d7faa50c86030446f4d87e8b3d7fd43d2cb6638e6a52fb1f1c421eb5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 87d716c50177b6108ecd779f36305be4b71cb89c5f4f085e2a53ef2f2f437c0c
MD5 a25f984d15563f7084e07375d0a11c0f
BLAKE2b-256 74ca5624ede61656b98e9efcb586340cb9a447cb8f62a9825f78164e5e51d269

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ad1d85c5d14c800bb96ab832b04aa3ce07e47329205f926ffaeb862afbf2461e
MD5 7b28e9316850ba4b7599b68b8664e86b
BLAKE2b-256 3f16d522800ed45a1b4f16ee63415895e062d46376086fc402dcd1a51bf2946f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0bf9ff16c43726cf9e9035f63f110754baa838c70702298d3561248827cf88f8
MD5 75cd1da515399653074c2aae98428380
BLAKE2b-256 488f5912a123f32f02175236e83c6e21ddc39d1050bf920dbec0001ed3c7f53d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 ef97f972ff7bb81e4467ec0576ab9eecd914d4746678b16d277678ab63ef9989
MD5 cbf93aa13bee746350e7b4545d7c447e
BLAKE2b-256 15d9026b7c2b776216f33f03931b48beda444ce33ac23e29e8d24d43889ff3ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a67d0c87662b1bb43aa18f05406261f33713b47c27682c9b3b2c301aafdd7284
MD5 f301449aa9399d2006cae22b966963a8
BLAKE2b-256 081770653b60ccf0028386701d3e51e02d83c55b4294e502282c2ae7732308be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 86bb239b266a2a93d9b366aec9929b115b21ad91b6095ada4fa0ad1912be53e3
MD5 5ef08c712de189a2a4913970aac68929
BLAKE2b-256 dea7e3b378eb1a24d3998f2552533daf269f092f8300d54dbad0a7d8c782d5fc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 68eb2045c52ae300b389144e31dd4e148e171adbdd1caae4b441c4138cddce57
MD5 aa10b2479216589971a45e54ce2fbe5e
BLAKE2b-256 69e2e90f41691cd8b263592cfa8d1cacb5c1842d0e26d14431213fa407b87df9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 36a54627f5b111d6f88d556d4ab0de3f48c27d25fb74b6b38afbb29b9febcaa2
MD5 8414c44c779501d27f6e49718977d734
BLAKE2b-256 e366d7faa3c08ac9605833a68e2e343f20f0dbcdc923bc60f7f45c16d306c311

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 97b6ba6e6db9897dc1f84bd395d117e437b0f9d0c0114d7ff25a313932995707
MD5 aeba3416edf7b26e90ead2b12ef17d80
BLAKE2b-256 ea67b3b1107159b6ae20e84c960454f63ca6ba3e124a70ffbd0e43dbd0f6e261

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 fc73a1cfadc1093164842ae344077d1183dd1b700d07d7fe388f091297044333
MD5 23b2e358963272d8cf065cc785b1b1e1
BLAKE2b-256 3cdc468e3dbb86f2466e384731537c4d333b12dbb4487a3e93ff858d921d445b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c09e915d571a5d0cd9912c1a3c75298e2d830771fa34ddb9e07a861f1cc5a752
MD5 f2f44febb769c18e5b28a6c07dcd3199
BLAKE2b-256 6733531c3056dcfce99f7b0301f95ae49e292f1503570a2e083060a0bddb10b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 847e77c718047e080f0cca1493b1100f10d0b35756983d6adff156aa65d1b017
MD5 087635a863ba6e277d9e4af9733955bc
BLAKE2b-256 0e6d111c065ccc7a4860b55afbfced2d822a6e49bbdc25b7b6317c86dc4d1601

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2e06a6d7254cfa9f022f8db4a622aad046bb09388a6833ad28d4725676827294
MD5 bcae4bcb7d341878e2c16b4c9be0754a
BLAKE2b-256 f8354e4ce7e9a95930a1ccff659f4e99cf63b5d1afcbab0572ae26606826fc3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_libarchive-4.2.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e667ee265b11755752cd6903f2439fbb9c8780f0fff5c280100d2e1b2a9ae986
MD5 238d5f3ea3ef2eee06d1aa3048adc033
BLAKE2b-256 f550a5967b73792da832d64bcafc34e73acbb17256980fa8e042f0e352f2419b

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