Skip to main content

Portable and blazingly fast whole slide image compression and serialization library for the Iris File Extension

Project description

Iris Codec Community Module

Copyright © 2025 Iris Developers; MIT Software License

The Iris Codec Community module is a part of the Iris Digital Pathology project. This module allows for the reading and writing of Iris whole slide image (WSI) digital slide files (.iris) and allows for the decoding of Iris Codec-type compressed tile image data. This repository was designed to allow for extremely fast slide access using what we consider a very simple API as we want to simplify access to these files for you. It may downloaded as pre-compiled binaries in the releases tab, or may be built as a static or dynamically linked C++ library or python modules. We have additionally provided these python modules in prebuilt releases on the Anaconda Conda-Forge Python package manager.

[!NOTE] If you are a scanning device manufacturer or programmer developing a custom encoder/decoder, the Iris File Extension (IFE) repository will provide the necessary calls to read, write, and validate slide files in accordance with the Iris File Extension Specification. The current repository (Iris Codec Module) applies higher level abstractions for slide access and incorporates image codecs for image compression. The IFE repository does not. It is limited to (de)serialization and validation. The Iris Codec Module incorporates the IFE repository as a dependency, so if you use the IFE respository instead, the Iris Codec module source files may be a helpful guide in how we choose to read and write to Iris files using the IFE's API.

[!WARNING] The Iris Codec module is still in active development. We do not anticipate altering the established API functions in the header files but as we add in new features, some elements of the API may change slightly. Please check in regularly if you intend to update your dynamically linked libraries to ensure no API breaking changes have been merged.

This module has reliatively limited dependencies. As our encoder builds shift away from using OpenSlide, we will add additional library dependencies for reading vendor files.

  • Iris File Extension
  • Libjpeg-turbo
  • Libavif
  • OpenSlide (optional, encoder-only)

    Note: We may remove this dependency in future releases of the encoder. At the present, this limits Windows encoder builds to x86_64 only. You must disable openslide for ARM based windows encoder builds.

If you are a software engineer looking to help with Iris, we are always looking for additional passionate engineers to help in developing the Iris Project.

Installation

Building From Source

This library can be built from source using CMake.

Iris Codec CMake macOS CI
Iris Codec Linux CMake CI
Iris Codec Windows CMake CI

The following shell commands clone and build the repository. Remember to -DCMAKE_INSTALL_PREFIX your chosen install directory if not installing system-wide. Additionally, Iris Codec CMake script is designed to look for and dynamically link turbo-jpeg and AVIF by default; however, some implementations would rather simply build a self-contained statically linked binary without the need to dynamically load libraries. In some instances where reliablity is key, this may be the most secure option. Some architectures, such as iOS require this. To enable static dependency linkage, instead set -DIRIS_BUILD_DEPENDENCIES=ON. More info on the dependencies lookup and cross compiling Iris Codec in the cmake directory.

git clone --depth 1 https://github.com/IrisDigitalPathology/Iris-Codec.git
# Configure your install directory with -DCMAKE_INSTALL_PREFIX=''
# The following CMake Arguments are the default arguments; you may remove the -DARG_NAME entries below and it will build the same. I have just included them to add clarity to optional configurations.
cmake -B build \
    -D IRIS_BUILD_SHARED=ON \
    -D IRIS_BUILD_STATIC=ON \
    -D IRIS_BUILD_ENCODER=ON \
    -D IRIS_BUILD_DEPENDENCIES=OFF \
    -D IRIS_BUILD_PYTHON=OFF \
    -D IRIS_USE_OPENSLIDE=ON \
    ./Iris-Codec
cmake --build ./Iris-Codec/build --config Release -j$CPU_COUNT
cmake --install ./Iris-Codec/build

Python

Status Name Downloads Version
Conda-Build Conda Recipe Conda Downloads Conda Version

Supported Python Platforms
Conda Platforms

[!NOTE] The python Iris Codec Encoder does not support OpenSlide on Windows presently as OpenSlide does not support windows with its official Conda-Forge package. We are building in native support for vendor files and DICOM for re-encoding.

Iris Codec is also available as a Python conda package on the Conda-Forge Anaconda package manager channel. The corresponding python module may also be built from source by setting -DIRIS_BUILD_PYTHON=ON in the above CMake command if you would rather build the module rather than install it via Anaconda.

conda install -c conda-forge Iris-Codec 

Javascript

Iris Codec Emscripten Webassembly Build

The Iris-Codec-JavaScript repository contains the WebAssembly (WASM) build of the Iris Codec library, allowing it to be used in web browsers and Node.js applications. This implementation does not have the same dependencies, as image decoding is performed in the browser with JavaScript native codec tools.

Implementations

C++

Iris is natively a C++ program and the majority of features will first be supported in C++ followed by the other language bindings as we find time to write the bindings.

Begin by importing the Iris Codec Core header; it contains references to the Iris Codec specific type definitions as well as the general Iris Core type definitions. You may chose to perform your own file system validations and recovery routines. Iris will, however catch all of these as the main API methods are declared noexcept. Should an runtime error occur, it will be reported in the form of an IrisResult message, as seen in the IrisResult validate_slide (const SlideOpenInfo&) noexcept; call below. Successful loading of a slide file will return a valid IrisCodec::Slide object; failure will return a nullptr.

// Import the Iris Codec header
// This import includes the types header automatically
#import <filesystem>
#import <Iris/IrisCodecCore.hpp>
int main(int argc, char const *argv[])
{
    using namespace IrisCodec;
    std::filesystem::path file_path = "path/to/slide_file.iris";

    // You can check the file system to see if the slide exists
    // If you choose not to, that's fine too. Iris will tell you.
    if (!std::filesystem::exists(file_path)) {
        printf(file_path.string() + " file does not exist\n");
        return EXIT_FAILURE;
    }

    // You can quickly check if the header starts with Iris
    // file extension signatures. If not, that's fine too.
    // Iris will catch it during validation.
    if (!is_iris_codec_file(file_path.string())) {
        printf(file_path.string() + " is not a valid Iris slide file\n");
        return EXIT_FAILURE;
    }

    // Create an open slide info struct. Ignore the other
    // parameters at the moment; they will default.
    SlideOpenInfo open_info {
        .filePath = file_path.string();
    };
    // Perform a deep validation of the slide file structure
    // This will navigate the internal offset-chain and
    // check for violations of the IFE standard.
    IrisResult result = validate_slide (open_info);
    if (result != IRIS_SUCCESS) {
        printf (result.message);
        return EXIT_FAILURE;
    }
    
    // Finally create the slide object.
    // Most Iris objects are shared_ptrs,
    // so Iris will handle the memory clean-up
    auto slide = open_slide (open_info);
    if (slide) return EXIT_SUCCESS;
    else return EXIT_FAILURE;
}

Once opened, the slide IrisCodec::SlideInfo structure can be loaded using the Result get_slide_info (const Slide&, SlideInfo&) noexcept call and used as an initialized structure containing all the information needed to navigate the slide file and read elements.

// Read the slide information
SlideInfo info;
IrisResult result = get_slide_info (slide, info);
if (result != IRIS_SUCCESS) {
    printf (result.message);
    return EXIT_FAILURE;
}

// Slide tile read info provides a simple mechanism
// for reading slide data.
struct SlideTileReadInfo read_info {
    .slide                  = slide,
    .layer                  = 0,
    .optionalDestination    = NULL, /*wrapper can go here*/
    .desiredFormat          = Iris::FORMAT_R8G8B8A8,
};
// Iterate
for (auto& layer : info.extent.layers) {
    for (int y_index = 0; y_index < layer.yTiles; ++y_index) {
        for (int x_index = 0; x_index < layer.xTiles; ++x_index) {
            // Read the tile slide tile
            auto rgba = read_slide_tile (read_info);
            // Do something with the tile pixel values
            // Do not worry about clean up; the slide
            // pixel values are in a Iris::Buffer shared_ptr
        }
    }
    read_info.layer++;
}
if (optional_buffer) free (optional_buffer);

Decompressed slide data can be optionally read into preallocated memory. If the optional destination buffer is insufficiently sized, Iris will instead allocate a new buffer and return that new buffer with the pixel data. The Iris::Buffer should weakly reference the underlying memory as strongly referenced Iris::Buffer objects free underlying memory on deletion.

char* some_GPU_upload_buffer;
size_t tile_byte_offset;
char* destination = some_GPU_upload_buffer + tile_byte_offest;
size_t tile_bytes = 256*256*4;
Iris::Buffer wrapper = Wrap_weak_buffer_fom_data (destination, tile_bytes);
struct SlideTileReadInfo read_info {
    .slide                  = slide,
    .optionalDestination    = NULL, /*wrapper can go here*/
    .desiredFormat          = Iris::FORMAT_R8G8B8A8,
};
Buffer result = read_slide_tile (read_info);
if (weak_wrapper != result) {
    printf ("Insufficient sized buffer provided");
}

Python

#Import the Iris Codec Module
from Iris import Codec
slide_path = 'path/to/slide_file.iris'

# Perform a deep validation of the slide file structure
# This will navigate the internal offset-chain and
# check for violations of the IFE standard.
result = Codec.validate_slide_path(slide_path)
if (result.success() == False):
    raise Exception(f'Invalid slide file path: {result.message()}')
print(f"Slide file '{slide_path}' successfully passed validation")

# Open a slide file
slide = Codec.open_slide(slide_path)

# The following conditional will return True in this instance
# as the slide has already passed validation;
# We simply include it as an example of how to check the slide
if (not slide):
    raise Exception(f'Invalid slide file path: {result.message()}')

# Get the slide abstraction
result, info = slide.get_info()
if (result.success() == False):
    raise Exception(f'Failed to read slide information: {result.message()}')

# Print the slide extent to the console
extent = info.extent
print(f"Slide file {extent.width} px by {extent.height}px with an encoding of {info.encoding}. The layer extents are as follows:")
print(f'There are {len(extent.layers)} layers comprising the following dimensions:')
for i, layer in enumerate(extent.layers):
    print(f' Layer {i}: {layer.x_tiles} x-tiles, {layer.y_tiles} y-tiles, {layer.scale:0.0f}x scale')

# Generate a quick view of a slide tile in the middle of the slide using matplotlib imshow function
import matplotlib.pyplot as plt
layer_index = 0
x_index = int(extent.layers[layer_index].x_tiles/2)
y_index = int(extent.layers[layer_index].y_tiles/2)
tile_index = extent.layers[layer_index].x_tiles * y_index + x_index
fig = plt.figure()
plt.imshow(slide.read_slide_tile(layer_index,tile_index), interpolation='none')
plt.show()

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

iris_codec-2025.1.0a3.tar.gz (66.7 kB view details)

Uploaded Source

Built Distributions

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

iris_codec-2025.1.0a3-cp313-cp313-win_amd64.whl (10.0 MB view details)

Uploaded CPython 3.13Windows x86-64

iris_codec-2025.1.0a3-cp313-cp313-musllinux_1_2_aarch64.whl (9.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

iris_codec-2025.1.0a3-cp313-cp313-manylinux_2_34_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

iris_codec-2025.1.0a3-cp313-cp313-manylinux_2_34_aarch64.whl (8.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

iris_codec-2025.1.0a3-cp313-cp313-macosx_14_0_arm64.whl (6.1 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

iris_codec-2025.1.0a3-cp313-cp313-macosx_13_0_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

iris_codec-2025.1.0a3-cp312-cp312-win_amd64.whl (10.0 MB view details)

Uploaded CPython 3.12Windows x86-64

iris_codec-2025.1.0a3-cp312-cp312-musllinux_1_2_aarch64.whl (9.4 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

iris_codec-2025.1.0a3-cp312-cp312-manylinux_2_34_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

iris_codec-2025.1.0a3-cp312-cp312-manylinux_2_34_aarch64.whl (8.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64

iris_codec-2025.1.0a3-cp312-cp312-macosx_14_0_arm64.whl (6.1 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

iris_codec-2025.1.0a3-cp312-cp312-macosx_13_0_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

iris_codec-2025.1.0a3-cp311-cp311-win_amd64.whl (10.0 MB view details)

Uploaded CPython 3.11Windows x86-64

iris_codec-2025.1.0a3-cp311-cp311-musllinux_1_2_aarch64.whl (9.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

iris_codec-2025.1.0a3-cp311-cp311-manylinux_2_34_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

iris_codec-2025.1.0a3-cp311-cp311-manylinux_2_34_aarch64.whl (8.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ ARM64

iris_codec-2025.1.0a3-cp311-cp311-macosx_14_0_arm64.whl (6.1 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

iris_codec-2025.1.0a3-cp311-cp311-macosx_13_0_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

File details

Details for the file iris_codec-2025.1.0a3.tar.gz.

File metadata

  • Download URL: iris_codec-2025.1.0a3.tar.gz
  • Upload date:
  • Size: 66.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for iris_codec-2025.1.0a3.tar.gz
Algorithm Hash digest
SHA256 5a4a1bdc17bc39920275e8b028b2784e3bf75dcd66608928eb6721cc28e6388d
MD5 17d3b856f1692da515ae7cd0420814fb
BLAKE2b-256 b3e6eab928cf1696a42ad1691670ef35ac056b94e7d71d7773f3b66e99116c98

See more details on using hashes here.

Provenance

The following attestation bundles were made for iris_codec-2025.1.0a3.tar.gz:

Publisher: distribute-pypi.yml on IrisDigitalPathology/Iris-Codec

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

File details

Details for the file iris_codec-2025.1.0a3-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for iris_codec-2025.1.0a3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ede274189bff4b89ad4fade95c52ee067fbc25ede97c9208ca322fc444091427
MD5 a1b8088029e2adbaa582cf4156dedcb3
BLAKE2b-256 03cf812b172c6f05455b2a05509e182dc0ba7225d85a18aa2ac42d04dbd12d0c

See more details on using hashes here.

Provenance

The following attestation bundles were made for iris_codec-2025.1.0a3-cp313-cp313-win_amd64.whl:

Publisher: distribute-pypi.yml on IrisDigitalPathology/Iris-Codec

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

File details

Details for the file iris_codec-2025.1.0a3-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for iris_codec-2025.1.0a3-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d8db742d8199ee99de6972012bc71ecdfc7c6286afd089fc8262f40a36703613
MD5 ef210ac8f5e9153dcf83d395e3fba2a3
BLAKE2b-256 8451da38904e72783a70aca715f7138d10d84010bc43f77a5605d405cbc87444

See more details on using hashes here.

Provenance

The following attestation bundles were made for iris_codec-2025.1.0a3-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: distribute-pypi.yml on IrisDigitalPathology/Iris-Codec

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

File details

Details for the file iris_codec-2025.1.0a3-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for iris_codec-2025.1.0a3-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d1960c7f79ae3db8fbb1079ecbb011425ddcdef34c7e8e2511c4a5c2988a053a
MD5 155618bbb5dc15a6dd7ddd087a599849
BLAKE2b-256 402a79ab76a67eedd486d67699f1a10c4b6d06bb77aa22fd000099a5fc348421

See more details on using hashes here.

Provenance

The following attestation bundles were made for iris_codec-2025.1.0a3-cp313-cp313-manylinux_2_34_x86_64.whl:

Publisher: distribute-pypi.yml on IrisDigitalPathology/Iris-Codec

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

File details

Details for the file iris_codec-2025.1.0a3-cp313-cp313-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for iris_codec-2025.1.0a3-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 b0ecc517e6be5fe403440b5a1f279c9c47deda82d8200d80f281b8628536b208
MD5 c6f3fdc2ffeb308c423fe4f3d728763c
BLAKE2b-256 c459f7eef2010d2668d4729d08b9093cd6a463825bac7469edcd9eac33419020

See more details on using hashes here.

Provenance

The following attestation bundles were made for iris_codec-2025.1.0a3-cp313-cp313-manylinux_2_34_aarch64.whl:

Publisher: distribute-pypi.yml on IrisDigitalPathology/Iris-Codec

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

File details

Details for the file iris_codec-2025.1.0a3-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for iris_codec-2025.1.0a3-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 061762b0618872d18be0986e950f761875b049c958e0e69231cb8b6a6ae184d7
MD5 4b75ada7a840f64d7271beeb273fb9d5
BLAKE2b-256 27a29bfd17aca5dac4fab09ad09de124039cf9e31502be83daa7c89081583ee3

See more details on using hashes here.

Provenance

The following attestation bundles were made for iris_codec-2025.1.0a3-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: distribute-pypi.yml on IrisDigitalPathology/Iris-Codec

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

File details

Details for the file iris_codec-2025.1.0a3-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for iris_codec-2025.1.0a3-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 1678927c4a84163d1ae5c103cefcad0a485f703cda69600a2199ce11c50aee0a
MD5 7cafb382f550d4e266d08cadf822242b
BLAKE2b-256 7c637d8b2d26bffa4b3aa8db04e87a689a82171a341d30d6e0ed68d70a589fcb

See more details on using hashes here.

Provenance

The following attestation bundles were made for iris_codec-2025.1.0a3-cp313-cp313-macosx_13_0_x86_64.whl:

Publisher: distribute-pypi.yml on IrisDigitalPathology/Iris-Codec

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

File details

Details for the file iris_codec-2025.1.0a3-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for iris_codec-2025.1.0a3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 12d40a247d67ec188d9b9cd4a18c4c217f935487d11ec78ae9ad2fdd672c0f04
MD5 8f3d2f6167716b27c1545d8b7db61b47
BLAKE2b-256 405d1ff86c0ce133a23247ecafd607d0480608c7968a3fb99b9b75bb5cb9ef39

See more details on using hashes here.

Provenance

The following attestation bundles were made for iris_codec-2025.1.0a3-cp312-cp312-win_amd64.whl:

Publisher: distribute-pypi.yml on IrisDigitalPathology/Iris-Codec

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

File details

Details for the file iris_codec-2025.1.0a3-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for iris_codec-2025.1.0a3-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 24d94cb68955c8ed70b8f036475f8e16b951d2a01b2393f0bb8639405fd948ad
MD5 e9a3231c21d70c33449405e60aa121aa
BLAKE2b-256 49d139094274d68fd3efa4b7c5109e04e698b56ab27d88634e86a377d79aa8b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for iris_codec-2025.1.0a3-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: distribute-pypi.yml on IrisDigitalPathology/Iris-Codec

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

File details

Details for the file iris_codec-2025.1.0a3-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for iris_codec-2025.1.0a3-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ef6dc27383e3d5af8536d32df816f391cea80221bea75bc89a1883430b0f1228
MD5 def8bf89a16d4a11a8ef0720cf122aec
BLAKE2b-256 42dd00392add173bbd3e6d8fc180a83ed2133c13c9f092ae22552ee25ab183d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for iris_codec-2025.1.0a3-cp312-cp312-manylinux_2_34_x86_64.whl:

Publisher: distribute-pypi.yml on IrisDigitalPathology/Iris-Codec

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

File details

Details for the file iris_codec-2025.1.0a3-cp312-cp312-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for iris_codec-2025.1.0a3-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 f29f62eb6c306c43be6ec45956533a3ba5558060b066ac8daa20e16f5d2c23e9
MD5 e79b3068dd3c410115b215584589d584
BLAKE2b-256 401a0272c35c158caff557da2be042e30854ae8a08fffbc8027d3835a26d557a

See more details on using hashes here.

Provenance

The following attestation bundles were made for iris_codec-2025.1.0a3-cp312-cp312-manylinux_2_34_aarch64.whl:

Publisher: distribute-pypi.yml on IrisDigitalPathology/Iris-Codec

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

File details

Details for the file iris_codec-2025.1.0a3-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for iris_codec-2025.1.0a3-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8e5ceb3cb433725850791934f326496e9dbb231bf60d3580ea0e21c5cacf3188
MD5 579f3d92b864da068971e38c7bcf09f8
BLAKE2b-256 7f1d6950784133788ffeb8dac6e9805d9c89eae7377e9a0d4aa3233442d63aa4

See more details on using hashes here.

Provenance

The following attestation bundles were made for iris_codec-2025.1.0a3-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: distribute-pypi.yml on IrisDigitalPathology/Iris-Codec

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

File details

Details for the file iris_codec-2025.1.0a3-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for iris_codec-2025.1.0a3-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 2e501d967fcd7c9d448085af2de2dced6f51139f309304c78add6a4aeec26aea
MD5 44c8d9a905889140eaae20c0408b30e8
BLAKE2b-256 461978448c529cad85eb8e1b4577cf86707a63e6e78363582aa3e9e7fc4e7cc6

See more details on using hashes here.

Provenance

The following attestation bundles were made for iris_codec-2025.1.0a3-cp312-cp312-macosx_13_0_x86_64.whl:

Publisher: distribute-pypi.yml on IrisDigitalPathology/Iris-Codec

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

File details

Details for the file iris_codec-2025.1.0a3-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for iris_codec-2025.1.0a3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 694e3ca992d20910ff2c083fcd4ef7716024fb71843f1fff35c78098e75e7ce6
MD5 96effacaeda20f5ee29f1309820bae5c
BLAKE2b-256 04fbed10dfa3b02360785113794c6d8844c70e51161855f9ffddcc33287e86e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for iris_codec-2025.1.0a3-cp311-cp311-win_amd64.whl:

Publisher: distribute-pypi.yml on IrisDigitalPathology/Iris-Codec

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

File details

Details for the file iris_codec-2025.1.0a3-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for iris_codec-2025.1.0a3-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3535feb2471b26c1e69027b5b0fa5bbc034b6a1b6b4d6a6dcd91eabf3fb5fc82
MD5 15a60730a342c8350feeeb6e0ab890fd
BLAKE2b-256 ab6facb90350f66da28dfa47559ae1174e49515b465cd747d1534429e8d48d9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for iris_codec-2025.1.0a3-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: distribute-pypi.yml on IrisDigitalPathology/Iris-Codec

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

File details

Details for the file iris_codec-2025.1.0a3-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for iris_codec-2025.1.0a3-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 3fb53d0f85cee3a3073f7f03a96adb7760b12dc38024a12f12d9e88ae92deca5
MD5 a15d785265a3c64ff9c922f1a685bbeb
BLAKE2b-256 93d3f0bfbe534c26a5d5139e221074639d297273d65579422300aa921e816de0

See more details on using hashes here.

Provenance

The following attestation bundles were made for iris_codec-2025.1.0a3-cp311-cp311-manylinux_2_34_x86_64.whl:

Publisher: distribute-pypi.yml on IrisDigitalPathology/Iris-Codec

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

File details

Details for the file iris_codec-2025.1.0a3-cp311-cp311-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for iris_codec-2025.1.0a3-cp311-cp311-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 e18a8d504331a6cbda7f69622ba0c73e55e78fadd0966583a9e5571a8b29912a
MD5 372d92aefd6a0bf28ee8e61449609747
BLAKE2b-256 2f2feeddaafd8eb0f40a09a59d58c928ed082df99b2b15fcabf4ca359243965d

See more details on using hashes here.

Provenance

The following attestation bundles were made for iris_codec-2025.1.0a3-cp311-cp311-manylinux_2_34_aarch64.whl:

Publisher: distribute-pypi.yml on IrisDigitalPathology/Iris-Codec

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

File details

Details for the file iris_codec-2025.1.0a3-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for iris_codec-2025.1.0a3-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ffcdf6d6c0e06ff1879424a666915b536cdea864f0b205e839e987ea7442f347
MD5 d7ce09fa26d922445bd4ae9b2bf5cf70
BLAKE2b-256 75e2226f003e972c3dd9126240bbabadc3f1c50a4c747655a43659b1aeabef1a

See more details on using hashes here.

Provenance

The following attestation bundles were made for iris_codec-2025.1.0a3-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: distribute-pypi.yml on IrisDigitalPathology/Iris-Codec

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

File details

Details for the file iris_codec-2025.1.0a3-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for iris_codec-2025.1.0a3-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 d05dcf7fa249dc805a20c7c4e2c79aa9ad804e59e0375dffa631607ec9455d27
MD5 25245f3147a991000fcfb5508296705a
BLAKE2b-256 980c20f36fc00728eb5657a8dbbda132281d09b82f0160c8993c5b3983017fc9

See more details on using hashes here.

Provenance

The following attestation bundles were made for iris_codec-2025.1.0a3-cp311-cp311-macosx_13_0_x86_64.whl:

Publisher: distribute-pypi.yml on IrisDigitalPathology/Iris-Codec

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