Skip to main content

Fast integer image histograms

Project description

ihist

Fast histogram computation for image data with APIs in Python, Java, and C.

Currently experimental and API may still change.

Only 64-bit platforms are currently supported (let us know in an issue if you have a use case requiring 32-bit support).

Python API

Quick Start

pip install ihist
import numpy as np
import ihist

# Grayscale image
image = np.random.randint(0, 256, (100, 100), dtype=np.uint8)
hist = ihist.histogram(image)  # Shape: (256,)

# RGB image
rgb = np.random.randint(0, 256, (100, 100, 3), dtype=np.uint8)
hist = ihist.histogram(rgb)  # Shape: (3, 256)

# With masking
mask = np.ones((100, 100), dtype=np.uint8)
hist = ihist.histogram(image, mask=mask)

Function

The Python API provides a single function for computing histograms:

import ihist

histogram = ihist.histogram(image, bits=None, mask=None,
                            components=None, out=None,
                            accumulate=False, parallel=True)

Parameters

image : array_like Input image data. Must be uint8 or uint16, and 1D, 2D, or 3D.

  • 1D arrays (W,) are interpreted as (1, W, 1)
  • 2D arrays (H, W) are interpreted as (H, W, 1)
  • 3D arrays (H, W, C) use C as number of components

Total pixel count must not exceed 2^32-1.

bits : int, optional Number of significant bits per sample. If not specified, defaults to full depth (8 for uint8, 16 for uint16). Valid range: [0, 8] for uint8, [0, 16] for uint16.

mask : array_like, optional Per-pixel mask. Must be uint8. Shape must match image dimensions:

  • For 1D images (W,): mask must be 1D, shape (W,)
  • For 2D/3D images: mask must be 2D, shape (H, W)

Only pixels with non-zero mask values are included. If not specified, all pixels are included.

components : sequence of int, optional Indices of components to histogram. If not specified, all components are histogrammed. Each index must be in range [0, n_components).

Examples:

  • [0] - histogram only the first component (e.g., red in RGB)
  • [0, 1, 2] - histogram first three components (e.g., RGB in RGBA, skipping alpha)

out : array_like, optional Pre-allocated output buffer. Must be uint32, and either:

  • 1D with shape (2^bits,) for single-component histogram, or
  • 2D with shape (n_hist_components, 2^bits)

If not specified, a new array is allocated and returned.

accumulate : bool, optional If False (default), the output buffer is zeroed before computing the histogram. If True, histogram values are accumulated into the existing buffer values. No effect if out is not given.

parallel : bool, optional If True (default), allows automatic multi-threaded execution for large images. If False, guarantees single-threaded execution.

Returns

histogram : ndarray Histogram(s) as uint32 array.

  • If the image is 1D or 2D and components is not specified, returns 1D array of shape (2^bits,)
  • If the image is 3D or components is explicitly specified, returns 2D array of shape (n_hist_components, 2^bits)
  • If out was provided, returns the same array after filling

Java API

Quick Start

import io.github.marktsuchida.ihist.HistogramRequest;
import java.nio.IntBuffer;

// Grayscale image
byte[] image = new byte[100 * 100];
IntBuffer hist = HistogramRequest.forImage(image, 100, 100).compute(); // 256 bins
// hist.remaining() == 256, access with hist.get(i)

// RGB image
byte[] rgb = new byte[100 * 100 * 3];
IntBuffer hist = HistogramRequest.forImage(rgb, 100, 100, 3).compute(); // 3 * 256 bins

// With advanced options
IntBuffer hist = HistogramRequest.forImage(image, 100, 100)
    .roi(10, 10, 80, 80)       // Region of interest
    .mask(maskData, 80, 80)    // Per-pixel mask
    .bits(8)                   // Significant bits
    .parallel(true)            // Allow multi-threading
    .compute();

Classes

HistogramRequest - Builder-style interface:

// Multi-component image (e.g., RGB)
IntBuffer hist = HistogramRequest.forImage(image, width, height, 3)
    .selectComponents(0, 1, 2)      // Which components to histogram
    .roi(x, y, roiWidth, roiHeight) // Region of interest
    .mask(maskData, maskWidth, maskHeight)  // Per-pixel mask with dimensions
    .maskOffset(offsetX, offsetY)   // Mask offset for ROI alignment
    .bits(sampleBits)               // Significant bits per sample
    .output(preallocatedBuffer)     // Pre-allocated output (size must be exact)
    .accumulate(true)               // Add to existing values
    .parallel(true)                 // Allow multi-threading
    .compute();

// All methods except for forImage() and compute() are optional.

// The returned IntBuffer has position/limit set to cover the histogram data.
// If output(IntBuffer) was used, the returned buffer is a duplicate that shares
// storage with the original; the original's position/limit are not modified.
// For heap buffers (default or when output(int[]) was used), get the array:
int[] array = hist.array();

IHistNative - Low-level JNI wrapper (advanced):

// Buffer-based (direct or array-backed buffers)
IHistNative.histogram8(sampleBits, imageBuffer, maskBuffer,
    height, width, imageStride, maskStride, nComponents, componentIndices,
    histogramBuffer, parallel);

(And, similarly, histogram16() for 16-bit images.)

Input Types

The Java API supports both arrays and NIO buffers:

  • 8-bit images: byte[] or ByteBuffer
  • 16-bit images: short[] or ShortBuffer
  • Mask: byte[] or ByteBuffer
  • Histogram output: int[] or IntBuffer

Performance: Zero-Copy vs Copy

Input Type IHistNative HistogramRequest Notes
Array (byte[], short[], int[]) N/A (wrap first) Zero-copy Wrapped as heap buffer
Direct buffer Zero-copy Zero-copy GetDirectBufferAddress
Array-backed buffer (ByteBuffer.wrap()) Zero-copy Zero-copy GetPrimitiveArrayCritical
View buffer (e.g., asReadOnlyBuffer()) Rejected Copy Copied to temp direct buffer
Read-only heap buffer Rejected Copy (input only) Rejected for histogram output

IHistNative requires buffers to be either direct or array-backed. View buffers and other buffer types are rejected with IllegalArgumentException.

HistogramRequest handles all buffer types automatically. Arrays are wrapped in heap buffers (zero-copy). Unsupported buffer types are silently copied to temporary direct buffers, which incurs a performance overhead but ensures all input types work.

Notes

  • Signed types: Java byte is signed (-128 to 127), but pixel values are interpreted as unsigned (0 to 255). The native code correctly handles this. Similarly for short with 16-bit images.

  • Accumulation: Like the C API, histogram values are accumulated. Use .accumulate(false) (default) to zero the output first.

  • Exact buffer sizes: Buffer and array parameters must have exactly the required size (not just at least the required size). For the image buffer, this is width * height * nComponents; for the mask, width * height; for the histogram output, nHistComponents * 2^bits. For buffers, the size that must match is the value of remaining() (distance from position() to limit()), not capacity().

  • Thread safety: The histogram functions are thread-safe for independent calls. Multiple threads can compute histograms simultaneously.

C API

The C API provides two functions for computing histograms of 2D image data:

  • ihist_hist8_2d() - for 8-bit samples (uint8_t)
  • ihist_hist16_2d() - for 16-bit samples (uint16_t)

Both functions have identical behavior except for the sample data type.

Function Signatures

#include <ihist/ihist.h>

void ihist_hist8_2d(
    size_t sample_bits,
    uint8_t const *restrict image,
    uint8_t const *restrict mask,
    size_t height,
    size_t width,
    size_t image_stride,
    size_t mask_stride,
    size_t n_components,
    size_t n_hist_components,
    size_t const *restrict component_indices,
    uint32_t *restrict histogram,
    bool maybe_parallel);

void ihist_hist16_2d(
    size_t sample_bits,
    uint16_t const *restrict image,
    uint8_t const *restrict mask,
    size_t height,
    size_t width,
    size_t image_stride,
    size_t mask_stride,
    size_t n_components,
    size_t n_hist_components,
    size_t const *restrict component_indices,
    uint32_t *restrict histogram,
    bool maybe_parallel);

Overview

These functions compute histograms for one or more components (stored as interleaved multi-sample pixels) from image data. They support:

  • Multi-component images (e.g., grayscale, RGB, RGBA)
  • Selective histogramming of specific components
  • Optional per-pixel masking
  • Region of interest (ROI) processing via stride and pointer offset
  • Automatic parallelization for large images
  • Arbitrary bit depths (not just full 8 or 16 bits)

Parameters

sample_bits Number of significant bits per sample. Valid range: 1-8 for ihist_hist8_2d(), 1-16 for ihist_hist16_2d(). The histogram will contain 2^sample_bits bins per sample.

Values with bits set beyond sample_bits are discarded and not counted in any bin.

image Pointer to image data. Samples are interleaved in row-major order:

  • Row 0, pixel 0: all samples
  • Row 0, pixel 1: all samples
  • ...
  • Row 1, pixel 0: all samples
  • ...

May be NULL if height or width is 0.

mask (optional) Per-pixel mask for selective histogramming. If non-NULL, must point to height * mask_stride uint8_t values. Only pixels where the corresponding mask value is non-zero are included in the histogram.

Pass NULL to histogram all pixels.

height Image height in pixels. May be 0 for empty input.

width Image width in pixels. May be 0 for empty input.

image_stride Row stride for the image in pixels (not bytes). Must be ≥ width.

When image_stride equals width, the image is treated as contiguous. Use image_stride > width together with an offset image pointer to process a rectangular region of interest (ROI) within a larger image.

mask_stride Row stride for the mask in pixels (not bytes). Must be ≥ width.

When mask_stride equals width, the mask is treated as contiguous. This parameter allows the mask to have a different stride from the image, which is useful, for example, if you have a mask that covers only a rectanglular ROI of the image.

n_components Number of interleaved per pixel. Examples:

  • 1 for grayscale
  • 3 for RGB
  • 4 for RGBA

Must be > 0.

n_hist_components Number of components to histogram. Must be > 0.

This allows histogramming a subset of components, such as skipping the alpha component in RGBA images.

component_indices Array of n_hist_components indices specifying which components to histogram. Each index must be in the range [0, n_components).

Examples:

  • {0} - histogram only the first component (e.g., red in RGB)
  • {0, 1, 2} - histogram first three components (e.g., RGB in RGBA, skipping alpha)
  • {1, 2, 3} - histogram last three components (e.g., skip first component in ARGB)

Must not be NULL.

histogram (output, accumulated) Output buffer for histogram data. Must point to n_hist_components * 2^sample_bits uint32_t values.

Histograms for each component are stored consecutively:

  • Bins for component_indices[0]: histogram[0] to histogram[2^sample_bits - 1]
  • Bins for component_indices[1]: histogram[2^sample_bits] to histogram[2 * 2^sample_bits - 1]
  • ...

Important: The histogram is accumulated into this buffer. Existing values are added to, not replaced. To obtain a fresh histogram, zero-initialize the buffer before calling the function.

maybe_parallel Controls parallelization.

  • true - Allows automatic multi-threaded execution for large images, if ihist was built with parallelization support (TBB).
  • false - Guarantees single-threaded execution.

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

ihist-0.1.2.tar.gz (94.7 kB view details)

Uploaded Source

Built Distributions

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

ihist-0.1.2-cp314-cp314t-win_amd64.whl (185.3 kB view details)

Uploaded CPython 3.14tWindows x86-64

ihist-0.1.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (222.3 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

ihist-0.1.2-cp314-cp314t-macosx_11_0_arm64.whl (142.9 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

ihist-0.1.2-cp314-cp314t-macosx_10_15_x86_64.whl (150.1 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

ihist-0.1.2-cp314-cp314-win_amd64.whl (184.6 kB view details)

Uploaded CPython 3.14Windows x86-64

ihist-0.1.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (224.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

ihist-0.1.2-cp314-cp314-macosx_11_0_arm64.whl (141.4 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

ihist-0.1.2-cp314-cp314-macosx_10_15_x86_64.whl (148.8 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

ihist-0.1.2-cp313-cp313-win_amd64.whl (180.3 kB view details)

Uploaded CPython 3.13Windows x86-64

ihist-0.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (223.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

ihist-0.1.2-cp313-cp313-macosx_11_0_arm64.whl (141.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

ihist-0.1.2-cp313-cp313-macosx_10_15_x86_64.whl (148.7 kB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

ihist-0.1.2-cp312-cp312-win_amd64.whl (180.3 kB view details)

Uploaded CPython 3.12Windows x86-64

ihist-0.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (223.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

ihist-0.1.2-cp312-cp312-macosx_11_0_arm64.whl (141.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

ihist-0.1.2-cp312-cp312-macosx_10_15_x86_64.whl (148.7 kB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

ihist-0.1.2-cp311-cp311-win_amd64.whl (180.2 kB view details)

Uploaded CPython 3.11Windows x86-64

ihist-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (224.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

ihist-0.1.2-cp311-cp311-macosx_11_0_arm64.whl (141.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

ihist-0.1.2-cp311-cp311-macosx_10_15_x86_64.whl (148.6 kB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

ihist-0.1.2-cp310-cp310-win_amd64.whl (180.3 kB view details)

Uploaded CPython 3.10Windows x86-64

ihist-0.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (224.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

ihist-0.1.2-cp310-cp310-macosx_11_0_arm64.whl (141.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

ihist-0.1.2-cp310-cp310-macosx_10_15_x86_64.whl (148.8 kB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

File details

Details for the file ihist-0.1.2.tar.gz.

File metadata

  • Download URL: ihist-0.1.2.tar.gz
  • Upload date:
  • Size: 94.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ihist-0.1.2.tar.gz
Algorithm Hash digest
SHA256 86effbee50b6a2fd8fb59c59dad1bde4803af3de105da792320717d50d1dccb7
MD5 b5bc22cee54e9f3fd8b678e5b4d410de
BLAKE2b-256 da36341749e18e97d9ac92620455b59d13e42b5310514426d5ef862c4116866a

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2.tar.gz:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: ihist-0.1.2-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 185.3 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ihist-0.1.2-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 b95f82d5534da7d509ed65812248b9b1679b0b20ded4a875671c1f24a138a2e3
MD5 bb1ad9e820fe49d1d383ea69d51f3edd
BLAKE2b-256 0a1b54dbb2105d84cd7f610ce496b87f6427d6ad51a44db77ee5f1bc467ef26a

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp314-cp314t-win_amd64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ihist-0.1.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2c1f83836c68f48ade2a6ac92a7ba93b230df87380488b7b4bd042ea1da4678d
MD5 5b53c3a027d690ee18b1fc76b392bacd
BLAKE2b-256 fddefbe0366ba26c8b5dd9214978f23924335367f84cbfc52c3840afa7c4a24b

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ihist-0.1.2-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 77ee5df570918baa74c6016667ed3a9ed0ba90eccead981c60fbe94b331373b9
MD5 332ac5c071033594ba6bc4d4f41a5bbe
BLAKE2b-256 9ab0ec6c63590eb49166a3edc4149f86f742e9c85b65d2ae30c7e9373671dcab

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp314-cp314t-macosx_11_0_arm64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp314-cp314t-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for ihist-0.1.2-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 951a711a279db747a556b8e2513efe87d6a495a4f2e3034d36d38b4e8b2b62d9
MD5 3a24ed9ca23c43c2f8077ae83e3a42e3
BLAKE2b-256 9a47cb5c50725ec1ea74c5da6cc4969d77a28b90e502263c26497abffe476ccc

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp314-cp314t-macosx_10_15_x86_64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: ihist-0.1.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 184.6 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ihist-0.1.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 63fc1ce1c383402485e57f7585fe7cfed8c5689f79360c3b2ae9b5b8f9dc5de7
MD5 dbfea8dbcf9ab90f8620aeb770b8039d
BLAKE2b-256 128dcf87c349f2df46a6b05d2595646cf4e0c43c5a3482cc612fcb428d84b231

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp314-cp314-win_amd64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ihist-0.1.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8454cfa7bb41b1674e76f05c273c8defe556de7087be408e98c8a55ca100b046
MD5 086f706dc83e9fbd6fa8c0143355fa85
BLAKE2b-256 770f73c0f4364ff8be13818d5917cc68439e12117b86924d923c9a57405b5f40

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ihist-0.1.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 25f156e8b80a3e5600e07b939ce81f8e09b834fc6893336dfe6282218a42806d
MD5 e737b929d854ad58a3bb73a6097c09fd
BLAKE2b-256 cddd3916c6f723a4d593a8a895685d87e8d802522cd6dec13602dc560aeccc68

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for ihist-0.1.2-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b326a36328cc6a481bbee96ecea245816e3a8c98d0254cee8de20c485ece39c2
MD5 6b487f2272ea62d337abab006c837226
BLAKE2b-256 cbaf5455e739b1f941cc4f9dd7196e8447d812cb2d89a01b618010cbab3cdc6d

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: ihist-0.1.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 180.3 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ihist-0.1.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 11936beeaff25588d9695e0bd30a1b28aea49590c7d554b562292e663497b49a
MD5 7b81df014e8859ba406d9b64cca681c3
BLAKE2b-256 46155d6b4a80709c44e38936a5a20b2dc5ebe9e4abb3ef798aaa6ce6516e5487

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp313-cp313-win_amd64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ihist-0.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8d268d68beae10d72b3b4a5f23574918d5c49bb36bad266505c789510449aca0
MD5 efd541289c9eb600b38d63eb07457780
BLAKE2b-256 86efe9eeff79bfa2f17cbf2f1d13204663eda9fa67caf3fc9741728f62bfd206

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ihist-0.1.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ecad7759ec6f867cca9660e994bd45baaa435fd3d22af1716173bf8ea1f192bb
MD5 96f5dc7345987cae185b7382cce5ce0e
BLAKE2b-256 58453f00e4513681ec99093a3ea0516d7957da11b38faf8d79395b87d7915032

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp313-cp313-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for ihist-0.1.2-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 02ca2efbdafdcf41554e4115130def2d3d520b71aa1c7e1487750b4b3c1f3fdf
MD5 4a30cac9263fdf254e8b325e7f5a16de
BLAKE2b-256 9f7cb369021bb0fb22658c50b71849e75a56a81c64637401f3f5bc1ba45dfad6

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp313-cp313-macosx_10_15_x86_64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: ihist-0.1.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 180.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ihist-0.1.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a24c7667cf10817177510a35a23ac081254c0b452cce484b4da52066029db9b8
MD5 3d54273f45679109eed3ba3b676e9822
BLAKE2b-256 7e5f9dc7aa53066feed49a535985cef48cb1d513d7b571f0488aaf6e9eeb7cad

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp312-cp312-win_amd64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ihist-0.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7ca5ac1b8a699641811684980a14aa5e7563230c2519ca59174f9f5d0f9a1f56
MD5 c06d2aa199ed566b477ae40d24941eeb
BLAKE2b-256 703c115b6b83e50df8acbd71005e71cd333bc2a53963387bbb6c5917219079c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ihist-0.1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 08a4c75160d9f65f7f830befb537b5167430735710c74a43684dec9d1b676ee2
MD5 a699fd556f563847aae1bb411e014c93
BLAKE2b-256 487a0a5cfd3c56cd6098c82530093f8968171857abd988250594899bfede23d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for ihist-0.1.2-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 45b237330f97f4b8555c4910195b63557371e9df62ff4244b92fbb6a721ec666
MD5 7dca4e3965a53ef620a830af238fb6f2
BLAKE2b-256 a3231728bb66b12f2af73d0d676096221b22fa1170de717e02514613b4a11034

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp312-cp312-macosx_10_15_x86_64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: ihist-0.1.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 180.2 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ihist-0.1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0e63acf582fbd806e21f43bf2186fa54d03101618e39e397c5b6fd46b9cd0ef5
MD5 f115ad4373fe2a6ed7214dc7b82d4036
BLAKE2b-256 078563a7fd960ff2bbcfdd75a64dd6443209ddb6f78b3502d429dad5d183d67a

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp311-cp311-win_amd64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ihist-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3c9c8dfe6921a2b425de4f24b07ae8f8de8ea17855e7748aa0ec5e041e32d278
MD5 294763f23e7ce54f2b396084d9a35cb9
BLAKE2b-256 c632649787d5ef46ac18d4c5eb11a65996724f8ff37b1986a8b51d23fae2a065

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ihist-0.1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ea7b32d18e3faef8c4d39e6e3a05815f1af6c1796040c4b91fd440b5c4a0b36b
MD5 058a0760b18145dade6587313a6e975b
BLAKE2b-256 af5157f6420210da3b9c9d0e8d7bbcd4f81d7c1c2b61305d1f59c27d1c750c4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for ihist-0.1.2-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b4df8b480b8bd4c630e6282ffc536baeba1241d5048f78064c3b37eaf6b1da67
MD5 1c2e2281779015a8d98316130a199425
BLAKE2b-256 b62935883a32bc9600e56a0ae7018506b79f07229b99e2b3adc404a00596e151

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp311-cp311-macosx_10_15_x86_64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: ihist-0.1.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 180.3 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ihist-0.1.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 68d3864b8166c58cb8de9b2a400c8ef3cd310d4c1457c9dd6715e92a23c2b517
MD5 502893504d7c5473992462db90fdaace
BLAKE2b-256 2cd4efd274d11bbd8724de2168da083709a14582074a27a51ab2803329385686

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp310-cp310-win_amd64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ihist-0.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f023dddb157523c868f76f3fa621f885e6899b7d44fbd7a5d0b8b0000c781af5
MD5 1578340d090ea813073f1332b1d57f9d
BLAKE2b-256 f782146bb60edecbb6bd1f0e3ed6a017daca8c1958e24e9c5f317e34c52741a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ihist-0.1.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d45036e11bfc7fac1bfac6f2855fda80ea56b11422d5102e2eed949b3550a2e7
MD5 0059b802a3891e9ec095a018278a9432
BLAKE2b-256 8e6ba6aefec56e5d53cfb37da738d1df048682895fdd82b7548bdc6d0d9d4996

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ihist-0.1.2-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for ihist-0.1.2-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3c73e5294d0004c26ba3b09dae5f2c976560249337bd263c68c937943a78d426
MD5 c9c974d4f30689feaa208b96532f8bca
BLAKE2b-256 65659be1888606fba58d1511856e3354a0099f74b0cfad28c9e450053633e7d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for ihist-0.1.2-cp310-cp310-macosx_10_15_x86_64.whl:

Publisher: ci.yml on marktsuchida/ihist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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