Skip to main content

Fast random access of gzip files in Python

Project description

indexed_gzip

PyPi version Anaconda versionTest status

Fast random access of gzip files in Python

Overview

The indexed_gzip project is a Python extension which aims to provide a drop-in replacement for the built-in Python gzip.GzipFile class, the IndexedGzipFile.

indexed_gzip was written to allow fast random access of compressed NIFTI image files (for which GZIP is the de-facto compression standard), but will work with any GZIP file. indexed_gzip is easy to use with nibabel (http://nipy.org/nibabel/).

The standard gzip.GzipFile class exposes a random access-like interface (via its seek and read methods), but every time you seek to a new point in the uncompressed data stream, the GzipFile instance has to start decompressing from the beginning of the file, until it reaches the requested location.

An IndexedGzipFile instance gets around this performance limitation by building an index, which contains seek points, mappings between corresponding locations in the compressed and uncompressed data streams. Each seek point is accompanied by a chunk (32KB) of uncompressed data which is used to initialise the decompression algorithm, allowing us to start reading from any seek point. If the index is built with a seek point spacing of 1MB, we only have to decompress (on average) 512KB of data to read from any location in the file.

Intended use

You may find indexed_gzip useful if you need to read from large GZIP files. A major advantage of indexed_gzip is that it will work with any GZIP file. However, if you have control over the creation of your GZIP files, you may wish to consider some alternatives:

  • mgzip provides an accelerated GZIP compression and decompression library.
  • Compression formats other than GZIP, such as bzip2 and xz, have better support for random access.

Installation

indexed_gzip is available on PyPi - to install, simply type:

pip install indexed_gzip

You can also install indexed_gzip from conda-forge:

conda install -c conda-forge indexed_gzip

To compile indexed_gzip, make sure you have cython installed (and numpy if you want to compile the tests), and then run:

python setup.py develop

To run the tests, type the following; you will need numpy, nibabel, pytest, pytest-cov, and coverage installed:

python -m indexed_gzip.tests

Usage

You can use the indexed_gzip module directly:

import indexed_gzip as igzip

# You can create an IndexedGzipFile instance
# by specifying a file name, or an open file
# handle. For the latter use, the file handle
# must be opened in read-only binary mode.
# Write support is currently non-existent.
myfile = igzip.IndexedGzipFile('big_file.gz')

some_offset_into_uncompressed_data = 234195

# The index will be automatically
# built on-demand when seeking.
myfile.seek(some_offset_into_uncompressed_data)
data = myfile.read(1048576)

Using with in-memory data

You can use indexed_gzip with any Python file-like object. For example:

import io
import indexed_gzip as igzip

# Load some gzip data from somewhere
with open('my_file.gz') as f:
    data = f.read()

# Create an IndexedGzipFile based on the
# in-memory data buffer
gzf = igzip.IndexedGzipFile(fileobj=io.BytesIO(data))
uncompressed = gzf.read(1048576)

Using with nibabel

You can use indexed_gzip with nibabel. nibabel >= 2.3.0 will automatically use indexed_gzip if it is present:

import nibabel as nib

image = nib.load('big_image.nii.gz')

If you are using nibabel 2.2.x, you need to explicitly set the keep_file_open flag:

import nibabel as nib

image = nib.load('big_image.nii.gz', keep_file_open='auto')

To use indexed_gzip with nibabel 2.1.0 or older, you need to do a little more work:

import nibabel      as nib
import indexed_gzip as igzip

# Here we are using 4MB spacing between
# seek points, and using a larger read
# buffer (than the default size of 16KB).
fobj = igzip.IndexedGzipFile(
    filename='big_image.nii.gz',
    spacing=4194304,
    readbuf_size=131072)

# Create a nibabel image using
# the existing file handle.
fmap = nib.Nifti1Image.make_file_map()
fmap['image'].fileobj = fobj
image = nib.Nifti1Image.from_file_map(fmap)

# Use the image ArrayProxy to access the
# data - the index will automatically be
# built as data is accessed.
vol3 = image.dataobj[:, :, :, 3]

Index import/export

If you have a large file, you may wish to pre-generate the index once, and save it out to an index file:

import indexed_gzip as igzip

# Load the file, pre-generate the
# index, and save it out to disk.
fobj = igzip.IndexedGzipFile('big_file.gz')
fobj.build_full_index()
fobj.export_index('big_file.gzidx')

The next time you open the same file, you can load in the index:

import indexed_gip as igzip
fobj = igzip.IndexedGzipFile('big_file.gz', index_file='big_file.gzidx')

Write support

indexed_gzip does not currently have any support for writing. Currently if you wish to write to a file, you will need to save the file by alternate means (e.g. via gzip or nibabel), and then re-create a new IndexedGzipFile instance. For example:

import nibabel as nib

# Load the entire image into memory
image = nib.load('big_image.nii.gz')
data = image.get_data()

# Make changes to the data
data[:, :, :, 5] *= 100

# Save the image using nibabel
nib.save(data, 'big_image.nii.gz')

# Re-load the image
image = nib.load('big_image.nii.gz')

Performance

A small test script is included with indexed_gzip; this script compares the performance of the IndexedGzipFile class with the gzip.GzipFile class. This script does the following:

  1. Generates a test file.

  2. Generates a specified number of seek locations, uniformly spaced throughout the test file.

  3. Randomly shuffles these locations

  4. Seeks to each location, and reads a chunk of data from the file.

This plot shows the results of this test for a few compresed files of varying sizes, with 500 seeks:

Indexed gzip performance

Acknowledgements

The indexed_gzip project is based upon the zran.c example (written by Mark Alder) which ships with the zlib source code.

indexed_gzip was originally inspired by Zalan Rajna's (@zrajna) zindex project:

Z. Rajna, A. Keskinarkaus, V. Kiviniemi and T. Seppanen
"Speeding up the file access of large compressed NIfTI neuroimaging data"
Engineering in Medicine and Biology Society (EMBC), 2015 37th Annual
International Conference of the IEEE, Milan, 2015, pp. 654-657.

https://sourceforge.net/projects/libznzwithzindex/

Initial work on indexed_gzip took place at Brainhack Paris, at the Institut Pasteur, 24th-26th February 2016, with the support of the FMRIB Centre, at the University of Oxford, UK.

Many thanks to the following contributors (listed chronologically):

  • Zalan Rajna (@zrajna): Bug fixes (#2)
  • Martin Craig (@mcraig-ibme): Porting indexed_gzip to Windows (#3)
  • Chris Markiewicz (@effigies): Option to drop file handles (#6)
  • Omer Ozarslan (@ozars): Index import/export (#8)
  • @DarioDaF: Windows overflow bug (#30)
  • Sławomir Zborowski (@szborows): seek_points method (#35), README fixes (#34)
  • Ashwin Ramaswami (@epicfaace): Support for in-memory file objects (#55), bug fixes (#63, #64, #65).
  • Michał Górny (@mgorny): Remove hard dependency on nibabel from test suite (#78).
  • Alexander Gorban (@alexgorban) Fix memory leak (#82, #83).
  • Maximilian Knespel (@mxmlnkn) Change default read buffer size to improve performance (#90).
  • Ben Beasley (@musicinmybrain) Python 3.12 compatibility (#126).

License

indexed_gzip inherits the zlib license, available for perusal in the LICENSE file.

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

indexed_gzip-1.8.5.tar.gz (74.7 kB view details)

Uploaded Source

Built Distributions

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

indexed_gzip-1.8.5-cp311-cp311-win_amd64.whl (843.5 kB view details)

Uploaded CPython 3.11Windows x86-64

indexed_gzip-1.8.5-cp311-cp311-win32.whl (794.7 kB view details)

Uploaded CPython 3.11Windows x86

indexed_gzip-1.8.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

indexed_gzip-1.8.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

indexed_gzip-1.8.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (4.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.12+ i686manylinux: glibc 2.17+ i686

indexed_gzip-1.8.5-cp311-cp311-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

indexed_gzip-1.8.5-cp311-cp311-macosx_10_9_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

indexed_gzip-1.8.5-cp311-cp311-macosx_10_9_universal2.whl (2.0 MB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

indexed_gzip-1.8.5-cp310-cp310-win_amd64.whl (840.1 kB view details)

Uploaded CPython 3.10Windows x86-64

indexed_gzip-1.8.5-cp310-cp310-win32.whl (794.7 kB view details)

Uploaded CPython 3.10Windows x86

indexed_gzip-1.8.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

indexed_gzip-1.8.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

indexed_gzip-1.8.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (4.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ i686manylinux: glibc 2.17+ i686

indexed_gzip-1.8.5-cp310-cp310-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

indexed_gzip-1.8.5-cp310-cp310-macosx_10_9_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

indexed_gzip-1.8.5-cp310-cp310-macosx_10_9_universal2.whl (2.0 MB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

indexed_gzip-1.8.5-cp39-cp39-win_amd64.whl (840.8 kB view details)

Uploaded CPython 3.9Windows x86-64

indexed_gzip-1.8.5-cp39-cp39-win32.whl (795.3 kB view details)

Uploaded CPython 3.9Windows x86

indexed_gzip-1.8.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

indexed_gzip-1.8.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

indexed_gzip-1.8.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (4.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ i686manylinux: glibc 2.17+ i686

indexed_gzip-1.8.5-cp39-cp39-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

indexed_gzip-1.8.5-cp39-cp39-macosx_10_9_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

indexed_gzip-1.8.5-cp39-cp39-macosx_10_9_universal2.whl (2.0 MB view details)

Uploaded CPython 3.9macOS 10.9+ universal2 (ARM64, x86-64)

indexed_gzip-1.8.5-cp38-cp38-win_amd64.whl (843.2 kB view details)

Uploaded CPython 3.8Windows x86-64

indexed_gzip-1.8.5-cp38-cp38-win32.whl (797.4 kB view details)

Uploaded CPython 3.8Windows x86

indexed_gzip-1.8.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

indexed_gzip-1.8.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

indexed_gzip-1.8.5-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (4.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ i686manylinux: glibc 2.17+ i686

indexed_gzip-1.8.5-cp38-cp38-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

indexed_gzip-1.8.5-cp38-cp38-macosx_10_9_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

indexed_gzip-1.8.5-cp38-cp38-macosx_10_9_universal2.whl (1.9 MB view details)

Uploaded CPython 3.8macOS 10.9+ universal2 (ARM64, x86-64)

indexed_gzip-1.8.5-cp37-cp37m-win_amd64.whl (820.0 kB view details)

Uploaded CPython 3.7mWindows x86-64

indexed_gzip-1.8.5-cp37-cp37m-win32.whl (784.0 kB view details)

Uploaded CPython 3.7mWindows x86

indexed_gzip-1.8.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.2 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

indexed_gzip-1.8.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.1 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

indexed_gzip-1.8.5-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (4.0 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ i686manylinux: glibc 2.17+ i686

indexed_gzip-1.8.5-cp37-cp37m-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

Details for the file indexed_gzip-1.8.5.tar.gz.

File metadata

  • Download URL: indexed_gzip-1.8.5.tar.gz
  • Upload date:
  • Size: 74.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.18

File hashes

Hashes for indexed_gzip-1.8.5.tar.gz
Algorithm Hash digest
SHA256 87d26062af4ac66927691b8c82afb961603cb5468593e95c964a9d3409ebfdc2
MD5 cf6acc742a58baa7c95886bb88bdb456
BLAKE2b-256 592ddf6b83dc6e80eab8dc977def77fb2c0402516fdeefff829748e5e035a863

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6f3e5c6c7c103c1dbcf77461f310af527773ba0f7dc62ecab0bdb069e2abbec2
MD5 05d62c69d349fe5a0bb0f16049e3f686
BLAKE2b-256 2b1633747aae15ddd7e2762b9660182c29b77f724decfde612ea4d31ab7fe726

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp311-cp311-win32.whl.

File metadata

  • Download URL: indexed_gzip-1.8.5-cp311-cp311-win32.whl
  • Upload date:
  • Size: 794.7 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.18

File hashes

Hashes for indexed_gzip-1.8.5-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 de43cff6d5423104c55d3c6fa064629a991a4b884d176bdc49c9d17479b2aab1
MD5 d8e157218d39fff752dd76f11e626f56
BLAKE2b-256 3d8209bf1ac311c82419b9682bfc16d844ceb287bce4c2b6fe3d24d8d8f43c0c

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 29529bc9a479ff2c1eca847161bf406c99d1902d9c70951d0cf7bced6653bfb8
MD5 57f676c1b97c9b02ebfd78f9c5966e42
BLAKE2b-256 95f49210721a39566c873950a5cc6f42bb2b33123d95f79ab544d3d72c3e0512

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dfea5fc1d678a5df4f5519ff0dfc1c0d44a108c1c31032b6e4eaf1ce07f73f28
MD5 96c77a91c45dd0bb0fc818cecbe840c5
BLAKE2b-256 49fc458ccc93ea41165b41fd5cfe90ca4eebd40205a4b44d13591840e0da3c86

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b1d12fa25b5a53de5167f3c0d542fc8a965e1505a3a55e21e0231927a212cdf3
MD5 b00a787c43af4c7fbc4fed92980f2e7d
BLAKE2b-256 38c52a83dd71427803fe3fab8187df258eaea514c310aa560409a62e62918063

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 555a577a2daf9223cf4ed80f43b8b48ecb2201d9e837ce693831b78aa3c06b75
MD5 73238e0ae1623c11640e7892cddaa387
BLAKE2b-256 cb2fe13ee8b5cdddbbfa2d625ccce7ac6fe61092ead613cb5f501e1c3cda7d17

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e77add08203877e0e10e5a6d80e496f3da36861b1efb0f6a8a5926bb5c0f26c1
MD5 8577447a29e93c2afef6ef3f3ab3b5da
BLAKE2b-256 f5473afb1bb81e71651736104a80775bc891076f8c4cfacf6a2693010e107bf8

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d6858f21a3eed31d8ae818a305da1109a00b82516746de7c8686004a2b931a90
MD5 10d880a6aa7ab1f8e496dfabae928ef5
BLAKE2b-256 28be4758908c68da138471f1ff33bc9be628a0de8fdc502b4fdd609481b8a842

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d7b2fb425c9107ddd0f257d9196853c9dff0b2eefa7ac8ee549f0dc711d8dd46
MD5 510dee6f2926cc961a9f4664d9676092
BLAKE2b-256 a6c15391c1aba95d788fb62d79473fe318bcabbf7692a9dbd0607c1a2a4189a8

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp310-cp310-win32.whl.

File metadata

  • Download URL: indexed_gzip-1.8.5-cp310-cp310-win32.whl
  • Upload date:
  • Size: 794.7 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.18

File hashes

Hashes for indexed_gzip-1.8.5-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 fcc2e2f132ef173944651fc8fd0fe329427f6721bd15b8ab89f3eae0ea339937
MD5 e96cea6e45a3aa89a0f7a000535b6fdc
BLAKE2b-256 fe199a1e43ae242af859bd1775c5820c84e6906af7dd9a95fa245ebe5bb05e54

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 47d3bb36a382a6af442332c4676490a8d86a52a64d9505d22972300c2b6eb20f
MD5 eab8ce198ec146150a56a1a8da8e6ede
BLAKE2b-256 f0862be811ad86e8e77798d9a870d47dfd2488bdcfcdf05bfe1c24eb8de86469

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a5fcea96602a3924b33fdf38fd6d2f7541fcbe030f5abbe04a497203526f18f3
MD5 0ee67e84f938ab9f1a55589ef1aa9d18
BLAKE2b-256 8565207d2e24fee4e401a8382c4f9fb579dcf505fed0a31f1b6d77d5f5d451d3

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 846eaa69215ebf663dc10ef93f525a3991062b3c005b77847879a48ab8c31d76
MD5 ccd04df0c91d6b3002645cde64f6fe1d
BLAKE2b-256 eb66e63459d991100892d33e78876c8c2b40480db8111c10ba7140dd1302d754

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7a9a29665a9009330c0f15191f7c9d37a71453e35feea7af2a5e7ed343880bd6
MD5 ab08653f25417f84f1fe0e0fdeadf589
BLAKE2b-256 2c01fd67943d0be1c4df687f0568f30a47ed0b63cafd77158b633c95921712ae

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 359addf9a5c3f877ba1c5634d4362bad710da3919b3c12dcf99ddb774d27fa7d
MD5 c3458fc60b4562ea2fdcec3601adb339
BLAKE2b-256 8f180aa75bcba97b0199963543b8e880871e4ad4bf4a00aa60c47a48764335b0

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 1d16aa03789a21d51801e8ab526183f3e45dbc19eb7520abdf92c1527e17d948
MD5 94686a0d727e6fb5c7e8f5bf603d0540
BLAKE2b-256 8cca06d2d16f52a4f6bcd6dc4af47276a7d3b4192d7b786579a2f827dcd57185

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: indexed_gzip-1.8.5-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 840.8 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.18

File hashes

Hashes for indexed_gzip-1.8.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d57569826cf14b3d858258eeeaa8b25f7c9a0ac0418c0c14d2f9b08b02e556f6
MD5 3f0e38df0e19cf2b8e003db3d646eff4
BLAKE2b-256 9c864d3619025ad1dbb65fe9a967da5086980a29ef5a90c6b5ec30b9d62199d8

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp39-cp39-win32.whl.

File metadata

  • Download URL: indexed_gzip-1.8.5-cp39-cp39-win32.whl
  • Upload date:
  • Size: 795.3 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.18

File hashes

Hashes for indexed_gzip-1.8.5-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 a6d2bcfb9bbd18be3a2a1bc05dfa543bcf7b4ba9085e9db27ca99271bba9bc71
MD5 3302c373b77eae7e779a1fde2414ab42
BLAKE2b-256 78daec9db2550bb3f97edbd8b95268407fe9d68c4acbcb600cb46232006bb539

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cf62dcf32aeae7eafd52cce76d2e147ae26c1e2687b85e1ec691e9766237e0c8
MD5 5aba539508bf41337772fffbe7752435
BLAKE2b-256 055090cc57efabc855ab27a5bc694d67f50caa831b57160c078469a945d21fdc

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0e00cc043d56d89584f7c5a3f8b3713d38f567e5e6b91c91bd5692738de600b2
MD5 4158353de91389b9c36d4b04181ac6c1
BLAKE2b-256 1294cbac794cbd90338855ee7717e71f2f3d00b48fbe710a4d62639add399869

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 291f5c6a7fc4fffc8ad5bad29931cf0eadc897d35727fc01f980d61f7a87576c
MD5 2cbf47cd71bf7e87e9e5cfe9b3860a98
BLAKE2b-256 27987a7198560f32ab00070b8217eaaf4a95dd1e8547c341bbbe24936b0107b8

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 00dd5116a9eb5041f310b9d2572b03d1137c06b829972b7b94839d1f4f3d1782
MD5 9c4a3da24bcd6b7ca0990eafb19bde96
BLAKE2b-256 904d094608adb66e33511792df386dfeff54422ea88690e78b58e9475a584912

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ea258ef09562dc45d76114086788c634503f74b36108e3f7bed5ff52c47a31db
MD5 67e27c3ebaab5c05341c154dca1ee2fe
BLAKE2b-256 c2ba20d5d94ba1beb5f7eab5304e1e210a8955c1897d2dbb0d9f4b6f0c38ad5c

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d8172797697e60020e218279dfe94ee9880a259f1387619f90c66b281cae48ad
MD5 1bc41f7e4827366ab9c356417535d3bf
BLAKE2b-256 34c9117a0760fd963270dca377115a02757bdd5bcfe2f5ccc26261412c21de8b

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: indexed_gzip-1.8.5-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 843.2 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.18

File hashes

Hashes for indexed_gzip-1.8.5-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 02f80694e3cffa2b8654b433a155e1c5f6709223aa5a037dd65b802afd9ea911
MD5 dc24afce512c5b6e2ad98a5873d6fec6
BLAKE2b-256 cefed3b059518e7b8381674706414fc8ed5c3e82a9c5d68b5d84dbf44bb3e293

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp38-cp38-win32.whl.

File metadata

  • Download URL: indexed_gzip-1.8.5-cp38-cp38-win32.whl
  • Upload date:
  • Size: 797.4 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.18

File hashes

Hashes for indexed_gzip-1.8.5-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 ccce1645bb274be06fed72d1e268fb1a2ee10387564fe6c0d252011e48ee4a28
MD5 9297a9bbc931a8418708bbf0f04948af
BLAKE2b-256 179bb1a7bda2d07561bd1c420e6188418a0215acfcc02c0a0c4d7cbf2a9a9f1a

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 078ab2b29bf7b90bd4bfebb6c96b0e6e98d6193073e0270917f032094bace8c6
MD5 f13d186ccabf878a17f727b0222ab82d
BLAKE2b-256 48b1438f4176fe5cd39f6ad4fc0694a6d8e8df99a1605346bee5f817290c3f12

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 13df3c83584b0b004f78f1ce97f51b82e9e7d05a76471027a909849ccd4ebe17
MD5 11dc845d3d3d5bffa3204c0c03994eb6
BLAKE2b-256 ce5964efb83466aaebe0697abfd82dce753bb287ec5946acebd97c1fa0f26b9c

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1072e1a72acbd7cd58c855ec57ec661c05e524c78434b3b673f299d7a0f1bb5c
MD5 6bff5ee8b7fc912ebc1add41c62c6816
BLAKE2b-256 d65d3d8c32db3e6672b4634b88073d10754e3d41a4819718b7a1ce0cf3ee03ab

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0c2d06cb6369704b7c9ae186d47545598f2fe7538c07eac89fea76325c1ae6c8
MD5 519724c1e28dd3d999258db34efba4d5
BLAKE2b-256 1cc6c0359a5a5d4861589bb3e08af8baaceadd945c690cd322337cdefc5d6b4e

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 330958ead41748f1ca97ca15d703d05aa2c7543d25eeb03268547f04eae8fdd1
MD5 773466c4a62b0be6babd1f7bb3860499
BLAKE2b-256 314629feb0d060b67cb82bfa25cfd485a3fe15e1843693ff67f970b13cf4e70b

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 54c68fad4c852dcadb6912b1d46bf4f0d3c6bcecc2d643689c397aacef18a3a7
MD5 98e43a1f0be2d72d650dba171a3bf530
BLAKE2b-256 8f660fef7d99edf3fad93f7c8c2af12dc6974c157f8b5cfa61b5e6a54c0ea9e5

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 ae1846d372a290587954c55ffa38691309bc992abeab279d02327f076b91d916
MD5 d8e56ea8d644e48bc6ff649a36d87e4c
BLAKE2b-256 dd3a3453533dc1e4a13c2c81a67efa3f539100794b28dff0965e19f6ee14363c

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp37-cp37m-win32.whl.

File metadata

  • Download URL: indexed_gzip-1.8.5-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 784.0 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.18

File hashes

Hashes for indexed_gzip-1.8.5-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 c5b674426f374e7d485f27eae3bd79068ef8a21a09098de32c3b0de7955d6e2e
MD5 d5e04cf49329c565b1c4cfb4b26f6b7f
BLAKE2b-256 35e84c560904ff4ab3ef04e9036f577e74c599b780b0e3279e84e18520ff026c

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f687d97868c60eea7e76c844352343b093ea2e7468b32ab05a83235c86b0ea85
MD5 ca56d0b747c03aeb0d6dda8c9589867f
BLAKE2b-256 7002707831bbdf574a2d0e7406530f549deaa9e4acf603603df65c239b269846

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f3803b4678dea8e2af0d8e6cb45edaaff02e16a5e8205d601564876223facd23
MD5 44dc68dac853167708d9be7419200b26
BLAKE2b-256 f2e268fb9ce0994aed99c7b86ff523b9436c7c86cd7262076627122900cba966

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0e6b4dab1e5f46ff37beb55f288988d25718d77b89d248b9187b9c0c27e42679
MD5 5717d86cc63f01db8fb6e5b1789ad323
BLAKE2b-256 d822438157baca7d69e8749f752f904a9185858899fcd50e3c9b8bee72dbffd1

See more details on using hashes here.

File details

Details for the file indexed_gzip-1.8.5-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for indexed_gzip-1.8.5-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ecdb8b8bd6c8eb3c5f69af6511b036a7eb9fb6627218d7584b46bc0d33f9e4ba
MD5 5f233aa73ae6d14b4f6dd70d643a6fb2
BLAKE2b-256 851ab6caef6fc37695e192a63bd83689bf40fa5c7b3a438abdcd01ff7cb7912f

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