Skip to main content

WIM2 hybrid image codec with a Python frontend and portable C++ core

Project description

Worst Image Format

WIMF — Worst IMage Format

PyPI Python CI License

WIMF is an experimental, versioned image codec with a Python frontend and a portable C++17 backend. New still images use the WIM2 hybrid container: every 128×128 tile independently chooses Raw, Predictive, Palette, or CDF Wavelet coding and records its mode, entropy backend, bounds, size, offset, and checksum.

WIMF 2.2 makes WIM2 the only recommended authoring format. It provides hybrid tile coding, ROI decoding, high bit depth, native orchestration, anti-rot recovery, and indexed chrono history. Existing WIMF v1, AWIF, and ROT! files remain readable through isolated compatibility paths.

Legacy timeline: WIMF 2.2 warns when legacy writers, the old .wif filename alias, or specialist tools are used. WIMF 3.0 removes those writers and the wimf-convert/wimf-meta entry points, while retaining read-only WIMF v1, AWIF, ROT!, and .wif input compatibility. Use .wimf for new WIM2 files.

WIMF compression is not encryption. Pixels and metadata can be recovered by anyone who can read the file; never store passwords, tokens, or other secrets in metadata.

Highlights

  • Per-tile hybrid selection with Fast, Balanced, and Extreme search presets.
  • Exact lossless coding and quality-controlled CDF 9/7 lossy wavelets.
  • Palette coding for local regions with at most 256 colors.
  • Spatial prediction with row-level predictor selection.
  • Independently decodable tiles for bounded ROI reads.
  • RGB, RGBA, grayscale, and 8/10/16-bit pixel pipelines.
  • Zstandard-compressed structured symbols and per-tile CRC32 checksums.
  • Optional WIM2 anti-rot data capable of repairing up to two damaged shards.
  • Indexed WIM2 chrono states with random state decoding.
  • Portable C++17 kernels with a Python reference fallback.

Installation

Install the published package with Python 3.10 or newer:

python -m pip install wimf

Precompiled wheels are published for Linux x86-64, Windows x86-64, macOS Intel, and macOS Apple Silicon across CPython 3.10–3.14. A matching wheel does not require a local compiler.

For development:

git clone https://github.com/benchware/WorstImageFormat.git
cd WorstImageFormat
python -m pip install -e .

Source installations require a C++17 compiler and pybind11; the Python fallback remains usable when the native extension is unavailable.

Choose a configuration

Goal Recommended settings Notes
General photographs quality=7, preset="Balanced", codec="auto" Default; lets every tile choose its best family.
Maximum compression search preset="Extreme", codec="auto" Evaluates every eligible tile mode and encodes more slowly.
Fast preview or batch work preset="Fast", codec="auto" Evaluates one classified mode plus Raw fallback.
Exact archival pixels lossless=True, codec="auto" Chooses the smallest exact candidate per tile.
Force photographic coding codec="wavelet" CDF 9/7 lossy or reversible CDF 5/3 lossless.
Flat graphics and icons codec="palette" Uses a local palette where eligible and Raw fallback otherwise.
Text and sharp edges codec="predictive" Reversible spatial prediction in lossless mode.
Diagnostic baseline codec="raw" Minimal codec logic; usually the largest output.

Quality ranges from 1 through 10. Every quality is continuously tested under Fast, Balanced, and Extreme; the preset changes search effort, while quality controls lossy quantization.

Python API

from PIL import Image
import wimf

image = Image.open("photo.png")

# Balanced per-tile selection is the default.
output = wimf.save("photo.wimf", image, quality=7)

# Exact reconstruction and explicit legacy output.
wimf.save("exact.wimf", image, lossless=True)
wimf.save("legacy.wimf", image, lossless=True, format_version=1)

decoded = wimf.open("photo.wimf")
decoded.pil.save("decoded.png")

# Memory-only applications can use bytes directly.
payload = wimf.encode(image, lossless=True, metadata={"author": "Bee"})
decoded = wimf.decode(payload)
details = wimf.inspect(payload)

codec accepts auto, wavelet, predictive, palette, or raw. preset accepts Fast, Balanced, or Extreme.

Complete save options

Option Values Default Meaning
quality 110 7 Lossy quality and rate-distortion target.
lossless Boolean False Require exact pixel reconstruction.
preset Fast, Balanced, Extreme Balanced Number of candidate modes evaluated per tile.
codec auto, wavelet, predictive, palette, raw auto Automatic hybrid selection or forced family.
format_version 1, 2 2 WIM2 output or explicit legacy WIMF output.
threads positive integer or None None Conservative automatic count or explicit tile workers.
anti_rot Boolean False Append WIM2 protection capable of bounded recovery.
metadata dictionary {} Application metadata stored in the container.

ROI decoding

decoder = wimf.WIMFDecoder("large.wimf")
region = decoder.decode(roi=(1024, 768, 640, 480))

Only intersecting WIM2 tile payloads are decompressed.

Anti-rot and chrono history

encoder = wimf.WIMFEncoder(image).set_anti_rot()
encoder.add_chrono_state(edited_image)
payload = encoder.encode(lossless=True)

decoder = wimf.WIMFDecoder(payload)
original = decoder.decode_chrono_state(0)
edited = decoder.decode_chrono_state(1)
print(decoder.was_protected, decoder.was_repaired)

WIM2 extensions are appended after the base tile payload. Existing WIM2 files remain valid and older readers can still decode the primary image.

Metadata without recompression

updated = wimf.rewrite_metadata(payload, {"author": "Bee", "license": "CC0"})

WIM2 tile payloads remain byte-for-byte identical. Tile offsets and checksums are recalculated, history is retained, and anti-rot protection is regenerated when present.

Base64 and data URLs

text = wimf.to_base64(payload, wrap=76)
assert wimf.from_base64(text) == payload

url = wimf.to_data_url(payload)
assert wimf.from_data_url(url) == payload

These helpers use strict parsing, bounded input sizes, and the image/x-wimf MIME type. Base64 is transport encoding, not image compression.

Runtime diagnostics

print(wimf.runtime_info())

The result reports whether native kernels are active, architecture, SIMD path, hardware and effective thread counts, codec version, and Zstandard version.

Mandelbrot example

The included generator renders a Mandelbrot set with NumPy and writes WIMF directly:

python examples/mandelbrot_wimf.py mandelbrot.wimf --width 1920 --height 1080 --quality 7

Use --lossless, force a tile mode with --codec, or zoom using --center-x, --center-y, and --span.

Command-line tools

The unified command covers the normal workflow:

wimf encode photo.png photo.wimf --quality 7
wimf encode artwork.png artwork.wimf --lossless
wimf decode photo.wimf photo.png
wimf decode huge.wimf crop.png --roi 100 200 640 480
wimf info photo.wimf
wimf runtime
wimf view photo.wimf
wimf base64 encode photo.wimf photo.txt --data-url
wimf corrupt photo.wimf damaged.wimf --seed 42 --area payload
wimf diagnose damaged.wimf --unsafe-preview damaged-preview.png

Run wimf <command> --help for focused options. Metadata uses repeatable --metadata KEY=VALUE arguments. The original specialized commands remain available:

  • wimf-convert and wimf-meta are deprecated compatibility tools in 2.2. Use the unified wimf CLI or WIMF Studio.
  • AWIF authoring is deprecated. Existing animations remain readable, including historical timing metadata.
  • wimf-studio opens the encoder, comparison viewer, tile inspector, protection/history tools, and codec lab.
  • wimf-view is a compatibility alias that opens WIMF Studio.
  • wimf-cat renders supported images in compatible terminals.
  • wimf-meta inspects and edits legacy metadata.

WIMF Studio and corruption experiments

WIMF Studio uses four focused panels: Encode & Compare, Inspect, Protection & History, and Codec Lab. Long-running encoding runs outside the Tk event loop and native tile progress can be cancelled between tiles.

The Codec Lab never disables normal checksum validation. Its unsafe preview decodes only checksum-valid independent tiles and replaces rejected tiles with an obvious checkerboard. Base64 is treated as a transport representation, including data:image/x-wimf;base64,... URLs; it is not a new compression mode.

Tested feature matrix

Feature Status Continuous verification
WIM2 Raw, Predictive, Palette, and Wavelet Implemented Forced modes, automatic mixed modes, exact/lossy reconstruction
Qualities and presets Implemented All qualities 1–10 × Fast/Balanced/Extreme
RGB, RGBA, grayscale, LA, depth channel Implemented Odd dimensions, edge tiles, alpha, five-channel depth access
8-, 10-, and 16-bit pixels Implemented Exact high-bit-depth lossless round trips and native/reference parity
ROI and independent tiles Implemented Cross-tile crops and checksum-isolated corruption
Threading and cancellation Implemented Deterministic 1/2/4-thread output, progress contract, bounded cancellation
Metadata rewrite Implemented Tile payload identity, history retention, anti-rot regeneration
Anti-rot Experimental Two-shard repair, three-shard rejection, damaged parity, protected history
Chrono history Experimental Unchanged/changed states, ordering, random state access, protected history
Base64 and data URLs Implemented Strict alphabet, MIME validation, whitespace and safety bounds
Corruption laboratory Experimental Header, metadata, index, payload, extension, and parity targeting
AWIF animation Legacy decode compatibility Committed fixtures and malformed-input safety
WIMF v1, .wif, and ROT! Deprecated authoring; legacy decoding Warning coverage, migration, and protected decode
WIMF Studio and headless CLI Implemented Headless state tests, command help, installed-wheel smoke tests

The visual report separately exercises synthetic mixed content, a credited nature photograph, and a credited animal photograph. It publishes decoded outputs, amplified differences, exact configurations, tile-mode counts, timings, WIMF payloads, and JSON metrics as CI artifacts.

Compatibility and status

Capability WIM2 Legacy decode
Hybrid still images Implemented WIMF v1 supported
Lossless and lossy coding Implemented Supported
ROI and independent tiles Implemented Format-dependent
Anti-rot Two-shard WIM2 extension ROT! supported
Chrono history Indexed WIM2 extension AWIF states supported
Animation creation Legacy-only AWIF encode/decode with preserved timing
Wavelet watermark creation Planned v1 only

See the WIM2 format overview, legacy migration guide, native embedding guide, and release checklist.

Verification and roadmap

CI separates Python quality, cross-platform API/feature tests, legacy decode compatibility, standalone C++, sanitizers, packaging, visual evidence, and non-blocking performance measurements. Python-versus-C++ benchmarks cover current WIM2 still images on Windows, Linux, and macOS. The active roadmap is:

  • Profile the completed native orchestration and optimize only measured allocation, transform, or entropy-coding hotspots.
  • Verify Linux ARM64 and Windows ARM64 wheels on dedicated native runners.
  • Expand measured AVX2 and NEON optimization only where profiling justifies it.
  • Validate the memory-only synchronous core with Emscripten on the future web branch without changing the WIM2 bitstream.
  • Migrate animation and watermark creation only after the still-image path meets throughput targets.

Target performance is at least 10 MP/s Balanced encoding and 50 MP/s decoding on reference hardware; benchmark results are hardware-dependent and are not claimed until measured.

License

WIMF is licensed under GPL-3.0-or-later.

Reporting bugs

WIMF is experimental. If something breaks, please open a GitHub issue with your operating system, Python version, wimf runtime --json output, and a minimal sample file when possible. WIMF Studio's Help → Report a Bug command copies the relevant runtime diagnostics and opens the issue page.

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

wimf-2.2.0.tar.gz (639.8 kB view details)

Uploaded Source

Built Distributions

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

wimf-2.2.0-cp314-cp314-win_amd64.whl (710.6 kB view details)

Uploaded CPython 3.14Windows x86-64

wimf-2.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (6.6 MB view details)

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

wimf-2.2.0-cp314-cp314-macosx_11_0_arm64.whl (637.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

wimf-2.2.0-cp314-cp314-macosx_10_15_x86_64.whl (714.9 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

wimf-2.2.0-cp313-cp313-win_amd64.whl (692.6 kB view details)

Uploaded CPython 3.13Windows x86-64

wimf-2.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (6.6 MB view details)

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

wimf-2.2.0-cp313-cp313-macosx_11_0_arm64.whl (636.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

wimf-2.2.0-cp313-cp313-macosx_10_13_x86_64.whl (714.4 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

wimf-2.2.0-cp312-cp312-win_amd64.whl (692.5 kB view details)

Uploaded CPython 3.12Windows x86-64

wimf-2.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (6.6 MB view details)

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

wimf-2.2.0-cp312-cp312-macosx_11_0_arm64.whl (636.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

wimf-2.2.0-cp312-cp312-macosx_10_13_x86_64.whl (714.2 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

wimf-2.2.0-cp311-cp311-win_amd64.whl (686.1 kB view details)

Uploaded CPython 3.11Windows x86-64

wimf-2.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (6.5 MB view details)

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

wimf-2.2.0-cp311-cp311-macosx_11_0_arm64.whl (633.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

wimf-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl (709.9 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

wimf-2.2.0-cp310-cp310-win_amd64.whl (684.3 kB view details)

Uploaded CPython 3.10Windows x86-64

wimf-2.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (6.5 MB view details)

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

wimf-2.2.0-cp310-cp310-macosx_11_0_arm64.whl (631.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

wimf-2.2.0-cp310-cp310-macosx_10_9_x86_64.whl (706.8 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file wimf-2.2.0.tar.gz.

File metadata

  • Download URL: wimf-2.2.0.tar.gz
  • Upload date:
  • Size: 639.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for wimf-2.2.0.tar.gz
Algorithm Hash digest
SHA256 087a6e218cca26c60799bcb8758f8ad3b2f593fab6ace49f5e4dd099ffef08fb
MD5 5ada52bb2f8a432480568c0e46c72b93
BLAKE2b-256 84e447d2c46bd6644fc34e17bcc87f1264f487d371cd81bc6233ebf0e9b9207c

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0.tar.gz:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: wimf-2.2.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 710.6 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for wimf-2.2.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 320d0ccb53338181513ab11cefe1aa92d7856be1e3fe07355ac39a8c81303863
MD5 46f2b8428e03173b12b812852d86816b
BLAKE2b-256 03aaa56429ff9580d49de62e964f73c7a365e40395b663ac2d2b370f1b778085

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp314-cp314-win_amd64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wimf-2.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e93d9f2f78d3bb262299e0f7a7d04551f8f5d6cc3af1f0eb03627b5741fbdb88
MD5 bcc0de6f33db5eb8bd59b3b14b1b006b
BLAKE2b-256 5367c2eb2fbb097b3019c407c2681339350d73fa16f7fb16fbc38d312f3ff07a

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wimf-2.2.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c2d0f9ace61805eaee5ea6fdabdbef4d7a1239530e8fb3e692ec36f907095421
MD5 7d97c96967220be87b345f492bff205c
BLAKE2b-256 2b2b8815205b928e247b754c0a21bd714500a96edadff471b28b748a863d89fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for wimf-2.2.0-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5ebb145b4f35dab6ba156005a17040641173dc2c1058942f5b612236dd72f624
MD5 0506b57fdfc0032f6e6b7f03958f1624
BLAKE2b-256 f1806bc123540ce14a344ca31d8fef4cf96a18226cb6cc24b18a8c0d0cf252f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: wimf-2.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 692.6 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for wimf-2.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d44825904afcd07b19a09f74806a93f065a8fe8062e323e3cadb2b57bf387630
MD5 65667ce4e0d0649d5ac65a84eff6eec7
BLAKE2b-256 90cd6ab7e87523299f7154fa0152c741d0f31650770035197b8cb0a92cf6e4de

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp313-cp313-win_amd64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wimf-2.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5b9e920fea7b7855a4716aa5f8bf5d599eb20e54128964a7936a5c5291425f28
MD5 4b164427a3a1fc3e2c6114cdeee2b76f
BLAKE2b-256 4967aa5c50d8e44c3423d9a3d467a5175332bcb723fd0c8f3b6b6e1b96645335

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wimf-2.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8ca47535d49055aac390a2d95816f29e9b40dc81b3ea685c68bd2fc93f8a2e03
MD5 360f8723b671c6525ac56347e274d039
BLAKE2b-256 822ddff513a47b10d1aa43664e78742586da1714f39c9f631458a7dc8d3b6cc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for wimf-2.2.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 c193aac2f8bc47f75815cac82b8b43fee38c3de7c3dab4977f9bff5ad1176e2e
MD5 8aba0167a00baeb525672f4b633ef204
BLAKE2b-256 1ee056d5b88ba00a71712b6ffffb94f1351332c39300e5c96f1eade0b9618286

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: wimf-2.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 692.5 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for wimf-2.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 94a5a73f90a83aedb56e6cb30fc98d265bf2bb9de87bb12751e4fca6d6e7f124
MD5 fd48a997fcf9ac544a09e0e4a0db542b
BLAKE2b-256 74ddfe35df42c0d777f5231358171c17e4ef395c9a409c883f6438ac3ee44072

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp312-cp312-win_amd64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wimf-2.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 83a91fac2edc0dd1b5855c47e7d441cd871265b66126cfa1747ea4592ec8fc7e
MD5 1c73430ade261d5651b728c0603a3ccb
BLAKE2b-256 ffa8af63e1d239c1a92f5fa750e72bcf5b90658364486f3096e73c4c869e89ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wimf-2.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 249418a32ba7c780365506dec73a8b577359ae4185c468367e5b23a0974eef67
MD5 c00ebf785a64e30c7634e0fa3ccf1bad
BLAKE2b-256 2f8b3846b295b9991dbbfb1f8bcec9d19410d1e35566f35d33dbcd206055526b

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for wimf-2.2.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 bdab76e652f0fd158e5044b57ec6c86bd348ab804aecb485455758687b1a1352
MD5 e087f20367c54f1df491cf98d3bf14b5
BLAKE2b-256 0df5571f9e2eb6a1cb8a38c486473a12cb9b393c400d6155b9ac6f99e842f3d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: wimf-2.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 686.1 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for wimf-2.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fc05e136c7ba188b8b3a692a2fbb3735f3974cea3fb9c937685c15c1a2e14992
MD5 02441fae22c0ede506c3db71f8f68add
BLAKE2b-256 f526409369054d1f869506ea9923b1ddc57c3c5e4a5bc900d88f5ecd6724c51d

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp311-cp311-win_amd64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wimf-2.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 178efb4d4ec1e3aa02e026d59b98350204d58b619556e04f27269417990a122e
MD5 248a5a68c311a5567dca7b915df039a6
BLAKE2b-256 55afe8a3486762c8c0108bea95def9864312587a81c39bdda39c081ea35f3e4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wimf-2.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 de595665045186dfb6103e385f22d3eeb505a42034e1d81b50b0e8e4d77b747d
MD5 e1fbc9a12f36ce3a683dad3a932a69a7
BLAKE2b-256 9363fd334685531957d8ae97cb772284597042f7ee6199f91825d594c3b1a193

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for wimf-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3b9d9b74a7273692718b4dc4309a4af8f931b871fde9a7e7955eb24ba319e3d6
MD5 584509f8b32e24305e6e2d4ec5c3834b
BLAKE2b-256 8234c114108b6b35393b8ba663b7be5481072778ae10605469ed04dcc4581ae9

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: wimf-2.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 684.3 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for wimf-2.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0f9e71d9dfafe4ca404fa52ff65ee617773eb5ed68afdf4fd91ffa25c81b773e
MD5 39002cac6b0fa3db0a4dcd7e98f32d86
BLAKE2b-256 394bc41211d95c9ee3c59ff07cb769e377949e4757693e76a9de08c8e44a9630

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp310-cp310-win_amd64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for wimf-2.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0bd1a6afd43871073340a512b824b7f03020ea020fe83c9118e8c9277bb22487
MD5 43e8cd24365a74fc886019f1ec0ce6f3
BLAKE2b-256 98a948934d28f6df192059a0cf881fcaf31943e18f9f6058acf9f059a1faea29

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wimf-2.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 65334c37e9fe153db2862d43dbe806c1150b029a5af414591379345edd10d03f
MD5 23688524f2d56b34832d07cf33d3cf97
BLAKE2b-256 69df51577e7940021c6dccc92dff848f28bfdfc73abc3a26a4971eca30bcce24

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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

File details

Details for the file wimf-2.2.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for wimf-2.2.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2e7da26602984ab6588c758e6d25f95d4390aaa78fdaff4bee1b3030a4b9fc5a
MD5 b70f845ef609bab495f14ff642f98cdb
BLAKE2b-256 fd599e87a8987c128323ff545093ced08b0af4e630f7ac47ce08902f6b535cdb

See more details on using hashes here.

Provenance

The following attestation bundles were made for wimf-2.2.0-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: python-publish.yml on benchware/WorstImageFormat

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