Skip to main content

PyPI version

Crackle: Next gen. 3D segmentation compression codec.

# Command Line Interface
# cckl (compress) and dckl (decompress) are single purpose command line
# utilities like gzip and gunzip 
cckl data.npy # creates data.ckl
cckl -m 5 data.npy # use a 5th order context model
cckl --allow-pins data.npy # use pin encoding for labels
cckl --allow-pins -m 5 data.npy # use pins and markov model
cckl -m 0 data.ckl # change markov model order

dckl data.ckl # recovers data.npy

# crackle is a fully featured utility with a command tree

crackle test data.ckl # check for file corruption

# convert between file types if you have the libraries installed
crackle convert -z --to tiff -k data.ckl # data.ckl -> zlib compressed data.tiff
crackle convert --to nrrd data.ckl # data.ckl -> data.nrrd

crackle info data.ckl # print basic info about the file
crackle labels data.ckl # print labels
crackle view data.ckl # visualize the file

crackle downsample data.ckl -o data_downsampled.ckl # perform 2x2x1 mode pooling and write the output
crackle meta data.ckl # generate data.ckl.meta.parquet

# if you have a directory of 0000.ckl, 0001.ckl, ... etc
# where each incremental number is a z-slice
# you can combine them into a single file
# filenames are sorted in alphabetical order, ensure they 
# are padded
crackle stack ./  # outputs merged.ckl
import crackle
import numpy

labels = np.load("example.npy") # a 2D or 3D dense segmentation

binary = crackle.compress(labels, allow_pins=False, markov_model_order=0)
labels = crackle.decompress(binary, parallel=0) # use all cores (default)

# faster extraction of binary images
binary_image = crackle.decompress(binary, label=1241)

# get unique labels without decompressing
uniq = crackle.labels(binary) 
# get unique labels for a z-range
uniq = crackle.labels_for_z_range(binary, 5, 10)
# get num labels without decompressing
N = crackle.num_labels(binary) 
# get min and max without decompressing
mn = crackle.min(binary)
mx = crackle.max(binary)
# check if label in array in log(N) time
has_label = crackle.contains(binary, label)
# extract a range of labels in something like log(N) time
labels = crackle.contains_range(binary, low, high)

# iterate over all binary images rapidly. crop
# close crops to the ROI and makes iteration a bit faster
for label, binimg in crackle.each(binary, crop=True):
  pass

# iterate over 255 labels at a time. Useful if your downstream
# processing supports multilabel images but you need an 8x reduction
# in memory usage compared to a uint64 image. Much faster than binary
# image iteration. img is reused for 255 iterations before being replaced.
for label, tmp_label, img in crackle.each(binary, multi=True):
  pass

# Remap labels without decompressing. Could
# be useful for e.g. proofreading.
remapped = crackle.remap(
  binary, { 1: 2, 2: 3, ... },
  preserve_missing_labels=True
)

# change dtype to smallest possible w/o precision loss
remapped = crackle.refit(binary)
# renumber array and change dtype to smallest possible
remapped = crackle.renumber(binary, start=0)

is_equal = crackle.array_equal(binary1, binary2)
arr == arr2 # syntactic sugar for CrackleArrays
arr.array_equal(arr2) # method call for CrackleArrays

# for working with files
# if .gz is appended to the filename, the file will be
# automatically gzipped (or ungzipped)
crackle.save(labels, "example.ckl.gz")
labels = crackle.load("example.ckl.gz")

# Save a crackle array as a numpy array
# in a memory efficient manner.
crackle.save(binary, "example.npy.gz")

arr = crackle.CrackleArray(binary, parallel=0) # 0 means use all cores (default)
res = arr[:10,:10,:10] # array slicing (efficient z ranges)
arr[:,:,30] = 20 # write to a crackle array (whole z slices write faster)
20 in arr # log(N) check
arr = arr.numpy() # convert to a numpy array

# low memory extraction of point clouds
ptc = crackle.point_cloud(binary) # { label: np.ndarray, ... }
ptc = crackle.point_cloud(binary, label=777)
ptc = crackle.point_cloud(binary) 

# rapid and low memory
voxel_counts = crackle.voxel_counts(binary)
centroids = crackle.centroids(binary)
bbxes = crackle.bounding_boxes(binary)

# extract the 4-way or 6-way voxel connectivity graph
# note: 4-way is stored in the format so is extremely fast
vcg = crackle.voxel_connectivity_graph(binary, connectivity=6)

# surface area for 6-connected region contacts
contacts = crackle.contacts(binary, anisotropy=(32,32,40))

# low memory CCL, the more memory you provide, the faster it goes
ccl_binary = crackle.connected_components(
  binary, 
  connectivity=26, # 6 (faces) & 26 (faces,edges,corners) supported
  memory_target=int(1e9), # bytes
  progress=True,
  return_mapping = False, # can also return { cc label: original label }
)

# Create a 2x2 downsampled crackle volume
downsampled_binary = crackle.mode_pooling_2x2x1(binary)

# building big arrays with low memory
binary = crackle.zeros([5000,5000,5000], dtype=np.uint64, order='F')

part1 = np.zeros([1000, 1000, 1000], dtype=np.uint32)
part2 = crackle.ones([1000, 1000, 1000], dtype=np.uint32)

binary = crackle.asfortranarray(binary)
binary = crackle.ascontiguousarray(binary)

# creates a crackle binary with part1 stacked atop part2
# in the z dimension. x and y dimensions must match
# without needing to decompress anything.
binary = crackle.zstack([ part1, part2 ])

# splits a crackle binary into before, middle (single slice),
# and after sections without decompressing.
before, middle, after = crackle.zsplit(binary, z=742)

# splits binary into individual z slices
sections = crackle.zshatter(binary)

This repository is currently Beta. It works and the format is reasonably fixed. There may be some improvements down the line (such as 3d compression of crack codes, 2d chunking), but they will be a new format version number if necessary to retain backwards compatibility.

Crackle is a compression codec for 3D dense segmentation (labeled) images. The algorithm accepts both signed and unsigned integer labels (though the implementation currently has some restrictions on signed integers). It is written in C++ and has Python bindings. Crackle uses a two pass compression strategy where the output of crackle may be further comrpessed with a bitstream compressor like gzip, bzip2, zstd, or lzma. However, if the Crackle binary, which is already small, is not further compressed, it supports several efficient operations:

  • Query if a label exists in the image
  • Extract unique labels
  • Remap labels
  • Decode by Z-Range
  • Computing slice by slice multithreaded

Crackle is inspired by Compresso [1]. Compresso innovated by separating labels from boundary structures. There were conceptually four (but really five) elements in the format: header, labels, bit packed and RLE encoded binary image boundaries, and indeterminate boundary locations.

Crackle improves upon Compresso by replacing the bit-packed boundary map with a "crack code" and can also use 3D information to reduce redundancy in labels using "pins".

See benchmarks for more information on Crackle's size and compute effiency.

Optional Performance Enhancing Sidecar .ckl.meta.parquet File

Counting voxels or measuring bounding boxes is fully supported by the bare crackle file, but requires computation which on large images or numerous images can become substantial. Therefore, crackle comes with a facility for generating a .parquet file containing this metadata information for faster retrieval. Currently, to avoid engineering complexity, crackle does not make use of this file, so use pyarrow, duckdb, or similar to read it. This extra file adds nothing except performance enhancement for some use cases. All data can be generated from the crackle file alone, and nothing is lost if the sidecar file is lost.

You will need pyarrow installed to generate this file: pip install pyarrow

crackle -M myfile.ckl # generates myfile.ckl.meta.parquet
import crackle

arr = crackle.aload("myfile.ckl")
arr.cache_meta("myfile.ckl.meta.parquet") # generate the sidecar file

You can then read the parquet files using your favorite parquet reader. Sometimes it is faster to use crackle methods on single files, but when tested on hundreds of thousands of files, reading voxel counts out of parquet was 100x faster (20 files per second versus 2000 on a Macbook M3).

Parquet Schema

Bbox type is uint16 unless the xy dimensions of the crackle file exceed 16-bits (65,535) in which case it is uint32.

label: uint64
voxel_count: uint32
min_x: uint16 or uint32
max_x: uint16 or uint32
min_y: uint16 or uint32
max_y: uint16 or uint32
# if it's a 3d crackle file
min_z: uint16 or uint32
max_z: uint16 or uint32

Reading Example

import pyarrow.parquet as pq
table = pq.read_table("myfile.ckl.meta.parquet")
print(table)

Installation

pip install crackle-codec 

Building from source (requires cmake and a c++ compiler):

git clone https://github.com/seung-lab/crackle.git
cd crackle
git submodule update --init --recursive # fetches google/crc32c library
python setup.py develop

Versions

Format Version Description
0 Initial release w/ flat, pins, crack codes with finite context modeling. Beta.
1 Incr. header to 29 bytes from 24. num_label_bytes u32->u64, adds crcs to protect stream components.

Stream Format

Section Bytes Description
Header v0: 24, v1: 29 Metadata incl. length of fields.
Crack Index header.sz * sizeof(uint32), v1: +4 Number of bytes for the crack codes in each slice + CRC32c(le)
Labels header.num_label_bytes Can be either "flat" labels or "pins". Describes how to color connected components.
Crack Codes Variable length. Instructions for drawing crack boundaries.
Labels crc32c (v1 only) 4(le) v0: n/a, v1: crc32c of the labels binary.
Crack crc32c (v1 only) header.sz * 4(le) v0: n/a, v1: crc32c of the uncompressed uint32_t fortran order connected component labeling of each z-slice.

A Note on CRCs

CRCs protect each step of the decoding process. The fixed width header is protected by crc8, which contains information for decoding the crack index. The crack index is in turn protected by a crc32c. This is not overkill because a very large volume or a volume that is randomly accessible in XY as well as Z would need a crc32 vs a crc16.

The crack index is used for decoding the structural information (the connected components for each slice). We store a crc32c for each z-slice. This allows random z access to be validated while balancing against the storage cost of creating too many crc (e.g. vs. once per a grid).

We also store a crc32c for the labels binary independently of the crack codes.

All crcs are stored little endian.

Why not store a single crc for the entire uncompressed image? This would make it difficult to validate as a single crackle file could represent many terabytes of data. It would also make it difficult to edit the labels (remap) independently of the structure. Storing a crc32c per a z-slice also allows for z-stacking independent slices without recalculating crcs.

The downside to this strategy is a small increase in the file size and an increase in false positives for crc32s. This is the price of having the format be more of a random-access array format than a bitstream format. However, as crackle is designed to be two stage compressed, for example, with lzip, an LZMA variant with error correction properties, these issues are mitigated when archived.

crc8 (0xe7, initialized with 0xFF) was selected due to its ability to reliably detect two bit flips in up to 247 bits of message data, the best available for our header length.

crc32c was selected as the polynomial due to the availability of high performance implementations. This is important to avoid CRC calculation being a significant cost to the codec.

Error Detection and (Limited, Human Assisted) Correction

Due to this mutli-crc strategy, it is possible to narrow down corruptions to the section of the binary where they occur. For example, if you are concerned with only z=1-100 and the error occurs at z=200, you're ok. If the error occurs in the labels_binary, but you were planning on applying a full new mapping anyway, you can get away with discarding the extant labeling. Certain bit flips in the labels binary will create out of range keys, which will aid in identifying exactly where the error occured. Headers can be repaired potentially be human inspection (if they know the dataset).

Header

Attribute Value Type Description
magic crkl char[4] File magic number.
format_version 0 or 1 u8 Stream version.
format_field bitfield u16 See below.
sx, sy, sz >= 0 u32 x 3 Size of array dimensions.
grid_size log2(grid_size) u8 Stores log2 of grid dimensions in voxels.
num_label_bytes Any. u64 Number of bytes of the labels section. Note the labels come in at least two format types.
crc8 Any. u8 CRC8 of format_field thru num_label_bytes using polynomial 0xe7 (implicit) and 0xFF initialization.

Format Field (u16): DDSSCLLFGOOOOURR (each letter represents a bit, left is LSB)

DD: 2^(DD) = byte width of returned array (1,2,4,8 bytes)
SS: 2^(SS) = byte width of stored labels (sometimes you can store values in 2 bytes when the final array is 8 bytes)
C: 1: crack codes denote impermissible boundaries 0: they denote permissible boundaries.
LL: 0: "flat" label format, 1: fixed width pins (unused?) 2: variable width pins 3: reserved
F: whether the array is to be rendered as C (0) or F (1) order
G: Signed (if (1), data are signed int, otherwise unsigned int)
OOOO: Nth-Order of Markov Chain (as an unsigned integer, typical values 0, or 3 to 7). If 0, markov compression is disabled.
U: if 0, unique labels are sorted, else, unsorted
R: Reserved

CRC8 only covers the header. It doesn't cover the magic number or format version since those are easily human correctable if needed.

Flat Label Format

Attribute Type Description
num_unique u64 Number of unique labels in this volume.
unique_labels stored_type[num_unique] Sorted ascending array of all unique values in image, stored in the smallest data type that will hold them.
cc_per_grid smallest_type(sx * sy)[sz] Array containing the number of CCL IDs in each grid (usually a z-slice).
cc_to_labels smallest_type(num_labels)[sum(cc_per_grid)] Array mapping CCL IDs to their proper value by indexing the unique labels array.

Flat labels are random access read, allow efficient reading of unique labels, efficient remapping, and efficient search for a given label's existence. Since the connected component labels can often use a smaller byte width than the unique values, even noise arrays can see some value from compression.

Encoding flat labels is fast.

Condensed (Variable Width) Pins Label Format

Attribute Type Description
background_color stored_data_width Background color of image.
num_unique u64 Number of unique labels in this volume.
unique_labels stored_type[num_unique] Sorted ascending array of all unique values in image, stored in the smallest data type that will hold them.
cc_per_grid smallest_type(sx * sy)[sz] Array containing the number of CCL IDs in each grid (usually a z-slice).
fmt_byte u8 00CCDDNN DD: 2^(DD) is the depth width NN: 2^(NN) is the num pins width, CC: 2^(CC) is the single components width.
pin_section Bitstream to end of labels section. Contains pin information.

PIN SECTION: | PINS FOR LABEL 0 | PINS FOR LABEL 1 | ... | PINS FOR LABEL N |

PINS: | num_pins | INDEX_0 | INDEX_1 | ... | INDEX_N | DEPTH_0 | DEPTH_1 | ... | DEPTH_N | num_single_labels | CC 0 | CC 1 | ... | CC N |

Both num_pins and num_single_labels use the num_pins_width.

Note that INDEX_0 to INDEX_N are stored with a difference filter applied to improve compressibility.

A pin (color, position, depth) is a line segment that joins together multiple connected component IDs and labels them with a color (an index into UNIQUE LABELS) in order to use 3D information to compress the labels as compared with the flat label format. Pins are slow to compute but fast to decode, however random access is lost (a full scan of the labels section is needed to decode a subset of crack codes). The most frequent pin is replaced with a background color. Like with flat, efficient reading of unique labels, efficient remapping, and search are supported.

Depending on the image statistics and quality of the pin solver, pins can be much smaller than flat or larger (some heuristics are used to avoid this case). An excellent example of where pins do well is a binary image where remarkable savings can be achieved in the labels section (though overall it is probably a small part of the file).

For very short pins (e.g. depth 0 or 1) that take more bytes to record than simply listing the corresponding CC label, we list the CC label instead. This calculation is made depending on the dimensions of the image and the max pin depth, and the byte width of the CCL labels.

Example calculation. For a 512 x 512 x 32 file with an average of 1000 CCL's per a slice and a maximum pin depth of 30, a pin takes 4 index + 1 depth = 5 bytes while a CCL takes 2 bytes. Therefore, depth 1 and 2 pins can be efficiently replaced with 1 and 2 CCL labels for a 60% and 20% savings respectively. CCLs are also difference coded to enhance second stage compressibility.

Fixed Width Pins (disabled)

| BACKGROUND COLOR (STORED_DATA_WIDTH) | NUM_LABELS (u64) | UNIQUE LABELS (NUM_LABELS \* STORED_DATA_WIDTH) | PIN SECTION |

PIN SECTION: |PIN0|PIN1|PIN2|...|PINN| PIN: |LABEL|INDEX|DEPTH|

A fixed width variant of pins has also been developed but is not enabled. It frequently is not significantly smaller than flat outside of special circumstances such as a binary image. An advantage this format would have over condensed is that the pins can be sorted and searched rapidly by index, which reduces the amount of reading one might have to do on an mmapped file. Please raise an issue if this seems like something that might be useful to you.

Crack Code Format

CRACK CODE: MARKOV MODEL | CHAIN 0 | CHAIN 1 | ... | CHAIN N |

CHAIN: | BEGINNING OF CHAIN INDEX (sizeof(sx * sy)) | BIT PACKED MOVES (2 bits each) |

MARKOV MODEL (if enabled): priority order of moves UDLR packed per a byte. 4^order bytes.

The BEGINNING OF CHAIN INDEX (BOC) locates the grid vertex where the crack code will begin. Vertices are the corners of the pixel grid, with 0 at the top left and sx*sy-1 at the bottom right (fortran order).

The crack code is a NEWS code (up,right,left,down). Impossible combinations of directions are used to signal branching and branch termination. The next chain begins in the next byte when a termination signal causes the current branch count to reach zero.

There may be ways to further improve the design of the crack code. For example, by applying a difference filter a few more percent compression under gzip can be obtained. In the literature, there are other shorter codes such as a left,right,straight (LRS) code and fancy large context compressors that can achieve fewer than one bit per a move.

Boundary Structure: Crack Code

Our different approach is partially inspired by the work of Zingaretti et al. [2]. We represent the boundary not by border voxels, but by a "crack code" that represents the edges between voxels. This code can be thought of as directions to draw edges on a graph where the vertices are where the corners of four pixels touch and the edges are the cracks in between them.

Since this regular graph is 4-connected, each "move" in a cardinal direction can be described using two bits. To represent special symbols such as "branch" and "terminate", an impossible set of instructions on an undirected graph such as "left-right" or "up-down" can be used (occupying 4 bits). In order to avoid creating palendromic sequences such as (3, 0, 3) meaning (down, branch) but can be read (terminate, down), we can use the left-right impossible directions to rewrite it as (3, 2, 1).

While the image is 3D, we treat the image in layers because working in 3D introduces a large increase in geometric complexity (a cube has 6 faces, 12 edges, and 8 corners while a square has 4 edges and 4 corners). This increase in complexity would inflate the size of the crack code and make the implementation more difficult.

Label Map: Method of Pins

Each 2D CCL region must has a label assigned. Due to the 2D nature of the crack code, we cannot use 3D CCL. However, for example, a solid cube of height 100 would need 100 labels to represent the same color on every slice as in Compresso.

It is still possible to reduce the amount of redundant information even without 3D CCL. For each label, we find a set of vertical line segments ("pins") that fully cover the label's 2D CCL regions. Sharp readers may note that this is the NP-hard set cover problem.

Once a reasonably small or minimal set of pins are found, they can be encoded in two forms:

Condensed Form: [label][num_pins][pin_1][pin_2]...[pin_N] Fixed Width Form: [label][pin_1][label][pin_2]...[label][pin_N] Pin Format: [linear index of pin top][number of voxels to bottom]

Fixed width example with label 1 with a pin between (1,1,1) and (1,1,5) on a 10x10x10 image: [1][111][4]

An alternative formulation [label][idx1][idx2] was shown in an experiment on connectomics.npy.cpso to compress slightly worse than Compresso labels. However, this alternative formulation theoretically allows arbitrary pin orientations and so might be useful for reducing the overall number of pins.

The condensed format is a bit smaller than the fixed width format, but the fixed width format enables rapid searches if the set of pins are sorted by either the label (enables fast label in file) or the likely more useful sorting by top index to filter candidate pins when performing random access to a z-slice.

References

  1. Matejek, B., Haehn, D., Lekschas, F., Mitzenmacher, M., Pfister, H., 2017. Compresso: Efficient Compression of Segmentation Data for Connectomics, in: Descoteaux, M., Maier-Hein, L., Franz, A., Jannin, P., Collins, D.L., Duchesne, S. (Eds.), Medical Image Computing and Computer Assisted Intervention − MICCAI 2017, Lecture Notes in Computer Science. Springer International Publishing, Cham, pp. 781–788. https://doi.org/10.1007/978-3-319-66182-7_89

  2. Zingaretti, P., Gasparroni, M., Vecci, L., 1998. Fast chain coding of region boundaries. IEEE Transactions on Pattern Analysis and Machine Intelligence 20, 407–415. https://doi.org/10.1109/34.677272

  3. Freeman, H., 1974. Computer Processing of Line-Drawing Images. ACM Comput. Surv. 6, 57–97. https://doi.org/10.1145/356625.356627

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crackle_codec-0.46.0.tar.gz (139.3 kB view details)

Uploaded Source

Built Distributions

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

crackle_codec-0.46.0-cp315-cp315-win_amd64.whl (598.7 kB view details)

Uploaded CPython 3.15Windows x86-64

crackle_codec-0.46.0-cp315-cp315-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.15musllinux: musl 1.2+ x86-64

crackle_codec-0.46.0-cp315-cp315-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.15musllinux: musl 1.2+ ARM64

crackle_codec-0.46.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (525.9 kB view details)

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

crackle_codec-0.46.0-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (506.0 kB view details)

Uploaded CPython 3.15manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

crackle_codec-0.46.0-cp315-cp315-macosx_11_0_arm64.whl (532.2 kB view details)

Uploaded CPython 3.15macOS 11.0+ ARM64

crackle_codec-0.46.0-cp315-cp315-macosx_10_15_x86_64.whl (557.3 kB view details)

Uploaded CPython 3.15macOS 10.15+ x86-64

crackle_codec-0.46.0-cp314-cp314t-win_amd64.whl (605.6 kB view details)

Uploaded CPython 3.14tWindows x86-64

crackle_codec-0.46.0-cp314-cp314t-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

crackle_codec-0.46.0-cp314-cp314t-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

crackle_codec-0.46.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (528.7 kB view details)

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

crackle_codec-0.46.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (505.7 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

crackle_codec-0.46.0-cp314-cp314t-macosx_11_0_arm64.whl (537.8 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

crackle_codec-0.46.0-cp314-cp314t-macosx_10_15_x86_64.whl (565.2 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

crackle_codec-0.46.0-cp314-cp314-win_amd64.whl (598.7 kB view details)

Uploaded CPython 3.14Windows x86-64

crackle_codec-0.46.0-cp314-cp314-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

crackle_codec-0.46.0-cp314-cp314-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

crackle_codec-0.46.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (527.8 kB view details)

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

crackle_codec-0.46.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (505.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

crackle_codec-0.46.0-cp314-cp314-macosx_11_0_arm64.whl (528.8 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

crackle_codec-0.46.0-cp314-cp314-macosx_10_15_x86_64.whl (557.3 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

crackle_codec-0.46.0-cp313-cp313-win_amd64.whl (583.0 kB view details)

Uploaded CPython 3.13Windows x86-64

crackle_codec-0.46.0-cp313-cp313-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

crackle_codec-0.46.0-cp313-cp313-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

crackle_codec-0.46.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (527.2 kB view details)

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

crackle_codec-0.46.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (504.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

crackle_codec-0.46.0-cp313-cp313-macosx_11_0_arm64.whl (528.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

crackle_codec-0.46.0-cp313-cp313-macosx_10_13_x86_64.whl (556.9 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

crackle_codec-0.46.0-cp312-cp312-win_amd64.whl (583.0 kB view details)

Uploaded CPython 3.12Windows x86-64

crackle_codec-0.46.0-cp312-cp312-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

crackle_codec-0.46.0-cp312-cp312-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

crackle_codec-0.46.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (527.6 kB view details)

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

crackle_codec-0.46.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (504.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

crackle_codec-0.46.0-cp312-cp312-macosx_11_0_arm64.whl (528.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

crackle_codec-0.46.0-cp312-cp312-macosx_10_13_x86_64.whl (556.8 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

crackle_codec-0.46.0-cp311-cp311-win_amd64.whl (581.0 kB view details)

Uploaded CPython 3.11Windows x86-64

crackle_codec-0.46.0-cp311-cp311-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

crackle_codec-0.46.0-cp311-cp311-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

crackle_codec-0.46.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (523.0 kB view details)

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

crackle_codec-0.46.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (501.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

crackle_codec-0.46.0-cp311-cp311-macosx_11_0_arm64.whl (521.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

crackle_codec-0.46.0-cp311-cp311-macosx_10_9_x86_64.whl (561.2 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

crackle_codec-0.46.0-cp310-cp310-win_amd64.whl (580.0 kB view details)

Uploaded CPython 3.10Windows x86-64

crackle_codec-0.46.0-cp310-cp310-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

crackle_codec-0.46.0-cp310-cp310-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

crackle_codec-0.46.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (522.5 kB view details)

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

crackle_codec-0.46.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (500.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

crackle_codec-0.46.0-cp310-cp310-macosx_11_0_arm64.whl (519.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

crackle_codec-0.46.0-cp310-cp310-macosx_10_9_x86_64.whl (560.1 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

crackle_codec-0.46.0-cp39-cp39-win_amd64.whl (581.2 kB view details)

Uploaded CPython 3.9Windows x86-64

crackle_codec-0.46.0-cp39-cp39-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

crackle_codec-0.46.0-cp39-cp39-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

crackle_codec-0.46.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (522.3 kB view details)

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

crackle_codec-0.46.0-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (499.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

crackle_codec-0.46.0-cp39-cp39-macosx_11_0_arm64.whl (519.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

crackle_codec-0.46.0-cp39-cp39-macosx_10_9_x86_64.whl (559.8 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

Details for the file crackle_codec-0.46.0.tar.gz.

File metadata

  • Download URL: crackle_codec-0.46.0.tar.gz
  • Upload date:
  • Size: 139.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.3

File hashes

Hashes for crackle_codec-0.46.0.tar.gz
Algorithm Hash digest
SHA256 64a82cffcad5fa4e06e75e032aa7e633c7cf5ec397dfa179c293e4a879782b32
MD5 d365efa5b85a203ca26118d2906cdd10
BLAKE2b-256 fe5cba667efde44fcd5e98d2507db9ac22ea253510be69e5db227bf268c4e07c

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp315-cp315-win_amd64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp315-cp315-win_amd64.whl
Algorithm Hash digest
SHA256 9b296bdbe77b9d9e6cc545845d29c6d43e04a4f488719e69328aac09aed1c142
MD5 4e886de343ca5018290a6106c2d02f89
BLAKE2b-256 6fd919f0534d952a2215f0336c3f2d29f91ca5bfe53c09defa349f871cec5032

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp315-cp315-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp315-cp315-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 15c3011bcf9e8e19de12a537c9d393d75d46058f44e1a30efdeed6d73c25baa9
MD5 3628ba81e8d00e04b9839dd3cb6b5f3e
BLAKE2b-256 e8ece38e2320e9e385141b11056f4de4d50588d3b12dd1fffc674c8d0d30b300

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp315-cp315-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp315-cp315-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e54050e5b8022aa6fd94c5a1aa7fb5de9dfe78d4a3834bb7100664a1157f999a
MD5 3598ba3805b07faec1b706f4258c6d5b
BLAKE2b-256 9d841e6b5de25e8d443327b00ab9d686f3ea87f2dfad24ac9281e32e81ab744f

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 77561ad6aae87b3c30d5527d09a7fcb2009cd3b953ae09cfff2e3f20cac6f9de
MD5 7486634b826e071e05da3bb88f2d094c
BLAKE2b-256 b8cda74ba7a82c9ca6198576992c671f9d870240102d585cd12e5fc120ceca0c

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8ff2b59d9fb8b11aacd8e6d7636203b23a5ec327990d609f51ced16c28881b7f
MD5 c0a15c6a8b141e1bb757135d37b9c8f7
BLAKE2b-256 d981f670400ca7d1f00109326666251effa383cf3238b6a63c4084b4c6caa539

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp315-cp315-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp315-cp315-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f1a13060df2f308e93b7735910bc4094e3341e2fa82a95ce68f3b73875cdd7ac
MD5 8df913a5bd9464405a8622eeb3cdfee9
BLAKE2b-256 65d51e6dfefb201a5a9d5274efa7f010c0b2d722501bf155ae86ffba67c11416

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp315-cp315-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp315-cp315-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 07bf4a18d6dc39a8e74b3fda5955e93c2cdf1da61713b1e3804bdf1688da6890
MD5 f01e63d3f429748c1867074c241af2e3
BLAKE2b-256 7018d8237e47ff2208e504c48be0857ee3ff4bbde93a29be6c94f8c47b3e5801

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 dc1ea309a3ed90bad191859593f76c07770506c28312bcff960c2a4227f72318
MD5 0afb95a5ab1b43c32e477bf9daaace96
BLAKE2b-256 628d78357e6f5551cc85acddda6cba7a4b5e04beb0c235c077f2967095fccbfa

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 97dca28a89ac9f9e6fd4e83b2ddbe2df04598a5bf69fccc36f614215d9df2eaf
MD5 6b6bff1a74bfca18cf4d7108af170dda
BLAKE2b-256 4a74de657a584ada69af754113b5c99fb8d665c58dece8b2679cf039853b0251

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7a60f4af63912149661a9c3015d1a2a0ad1c067757de47ea42c1ac880416fae5
MD5 91bb3cacb9505e00938bedb856e2bb19
BLAKE2b-256 e20e5de4b040b89927218a1831f900265515ac0453fa9780c30d49a81b580a0d

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f41205787d571bc6b47bfa9e47ca2f961d9e28a2c95b964b209e024eddbd2154
MD5 53a6992c5d39d36776182078fda0a534
BLAKE2b-256 fde947a167a9b28f03444d75c5f00693db1af78598ea1554e1947dadf4ee8be0

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 86d9bf5a962a426de4976f12feef590f8ba90548072bbe67380728f81d597dfd
MD5 0ab54e0f0dfdda14a31a59a3370c5d9f
BLAKE2b-256 a97ed2e275f977c1cde408868fb0d62dee0df668489a951c817159f92eb8c28d

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a43e41f98e04b02ff9590e1b07aa18face46db6e98aa053e8a0f38844a8ce4e3
MD5 454227728adaab66e22d7ce485d6ee22
BLAKE2b-256 dfa3b358ccf8363c5a340e91dbe25df7356e2dab3b49849f124c0f60c6914e2c

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp314-cp314t-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 2d6cbcac1d1a3100b074a3aa5751f50cfcb22fb9d232436ecb7d5cb1f0c16427
MD5 5f84eeecce4653767b047dbe618b8522
BLAKE2b-256 992ecdd00d8d5abfa8b8ce4b4ee9b10c9f92693ee3377b12473bf75119caed71

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 b09c52917006b5c04e852cea1c5ed9b8f2cd24d019a012f6224fe9904c67acc1
MD5 88b20c0b0b0b97a4c9617c3b95e1b4bd
BLAKE2b-256 9932cba0df3a7d81e2679222cfe3e868dd9a17f297f0664f96ed45e493c8c133

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bb5241a46836315c255b062ce8164a21365ba01a955eee7d211db26fbd0a55db
MD5 489c1704cd1bc55efd119271b87108c3
BLAKE2b-256 8c73065fcd294d7681f7caf831e085b6f3975377271c518749f96d5437ffb917

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a72d9bb958c7f072bbcd04827b1f3affaa7153e872cc074ff1c9832b612a9eac
MD5 cd13d60cdb4f8fda847813accdc9865f
BLAKE2b-256 31e31ff41b07d60d2c463d8cbed3ba14aa496cb8ff705e6728b10157f274cfc5

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1476cb2d848b4a083fbfb5fcfbec62645105970e3d88fc36735fb362fe9d1588
MD5 81ae65f1072fd19fe7cc923e46bfd023
BLAKE2b-256 64ab56615f067e410f4a21e18d9f2aca59864ecc78deb4504524b4e255c81a4b

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a0d57f3bdad723357b4fa7eeedf1f04fde3042b9d15777d5bf50222fbef7ce98
MD5 5f6e54bc2724ee88153dfd272407d086
BLAKE2b-256 0b40fc59d2de37b907c030fe7cc579012befb99009cfbcfc31657f3033a71273

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 91c0b274ca14d37ecdc745b7b5b299eb0166d06f1e47ca76e8b76cc106c789e4
MD5 1eeb34d71291f5a7b914771a9b2f57ff
BLAKE2b-256 183808e470fa875008e3a5bd098bf7b440e3936d6b4135df0f4c905c245d48ce

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 10511768cc01c999fc251d2c17eb280d7e32b27e986ae815f6a6f3df6b514ced
MD5 511812c9eb4b5449b900401797ac0252
BLAKE2b-256 c50bd28cafe2cf4f7bc1ffd72dd2aedc9e3f7f59226c051e923a2fd0ec6d7016

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d83b39aa0e13b00956e32a120a14f5412d90ed4dd4cde1ef906840c1333645af
MD5 ff0bc2c367ac2466a229482b5766f63e
BLAKE2b-256 fa917c9342c705c9d2d7f98777862db820669bdb3dec2752efb7b8cb74f2563b

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 96f40720f2b316d87af4544d83776b19a1356783aa38424005d814fe80f94adf
MD5 acbdbec1501a4c4a30352222ac81f4c4
BLAKE2b-256 0b7662cf36453eda92b11aeb6d59316229df232a6720ad55c2da2fbb837d9940

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 65b4059d262d8f325b73cce821150c32c05207e9c47d0708413214dba14c141e
MD5 e0c3c36e50368eacade9b463e5d1bb14
BLAKE2b-256 61e4a65d91b04d6571f65e01d9149994bffce9326fe2bdb3d06860b1629e1d09

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 592eee8ff04fe6aa2daa8981ca190e9d76a94245b10a9dd28c9ebcbae2d2f237
MD5 1a4eb05eb2fbd449818578e5676f9a7d
BLAKE2b-256 47162986524f7da5944534fd42c00199a77fa6def9ab3cfd8e50dea7b2316c87

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bb2c16b6e18a68e56320fed0e3a3c851b798beb6b0acc8c7cef6e5faa1ad8610
MD5 c9ed06dca9a1b842c225025988092beb
BLAKE2b-256 87a4015dd6c3c7ee0b3713465d2a0e1e9e18150670ac92fa614cad117e5bfc52

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a5554b8e2ddcb5a66b5fd84f464aedf3f7893a7334cb70a23f2c3dd373b07edb
MD5 a5254241cc8eb9d8e87df727feeed784
BLAKE2b-256 643744112ed08de7f7c817794d758ba81f48a56f3c582df8576ff43c39043c88

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b355e0723b67a44aa46a4c3858d21a85091db87e46cf5b8bc74db11764cf1967
MD5 fb5997d0660ade8f4060c5ec2a179965
BLAKE2b-256 8617f8b2ee9cd0ab9fce487c121756621893ec7eb14947c27c53b2537c66eabd

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 926af5adbd7d98aeb85e01a8cf083807ed8e6e5b570a8305788bc22a39fb90c8
MD5 4e59fe8756fca409d07d6a8467a3e5b8
BLAKE2b-256 232649b5f40a1f8e91e97c052a50f92c424b78bae57ee2aad20ba5b4acb11e15

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 78ec7d9f01b11c97fbc15919c502953ed0b9aac87b3bb7d0a89e4c1b41853e16
MD5 0f5a158e6f7535741ebfe4620eefe3be
BLAKE2b-256 7b04d12def15a7925ea5430ab21553380ca791a75986bce863e455fd57cac9c3

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 98c5211ce47e13578d6bdafdd396c9386f73d8f8ed914f691aba87a93b71b937
MD5 1466cb74eeef3553aae55ff1483b8c9f
BLAKE2b-256 0f4baed63d8298a1fb2de7d23b22503abdccb98a5dc57a28f52323670c8b5eff

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 04838b29dad39dc900143412898fe5c868180bf6c3d7c23bbd428880bc8645f3
MD5 5bdd284d7042a084b069bc704f52a4d3
BLAKE2b-256 a2804c04ab82bbdc23c284ce405be936d9d8d813e525b3e78ccc355d3cef07df

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 05fd0770c97b8225fbfe70ef8f11691d243100604c16b87dd8b9bc416a74f556
MD5 5c1f8e3950811236013a3c39cee395b5
BLAKE2b-256 bbc78bb47cde73922152b7c33626b754666e28e740b4223890773a001d43104b

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9ca4c0ac5cb4a761ae7a0fa24b4441bf92f56476e70ddefbe9379c9027063ed0
MD5 2034343e13a6716fdb3c563ec60556c8
BLAKE2b-256 f0912901c7fc6761c3ab9ca82dd80d5b4114085180f7ca312d3df7bae5d117b4

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 4f93172c5ad39003ab918a328b273e4808605b04821b0fd6b044853bdb500173
MD5 33c345960de323e6aea4468cc9b990bd
BLAKE2b-256 bc7aeb03cc94a6beb0be55bb7b1c1c1c4cd03d7a43918316118934cd0404977a

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0d4a5b1224e2084aa515b00dc43d0e9af87c1c228bd101be28d32012e9948ce6
MD5 41bc8c5357e21585f6a64a79136bde6c
BLAKE2b-256 39ed9dd10d747b611a9dce1e4fd56fdf6d82dc286be19ce30586e7977348c1be

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e35f99ffd63362415fcdff9c014646c9e370df35436d0db3de3e1b543efcc513
MD5 08ec97ee03adaf58bd02507868b29c44
BLAKE2b-256 47cc38b0c3de85af031451fdedb0f36e3677023e66798082fc9b45857cf9e89a

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 eafd3890455e49ee02d5795f55a815ffefac05814ee2e67a64b4512b1f4b2425
MD5 c8a6d8df492fde1a95bc733d6fe7a0dd
BLAKE2b-256 29c53f91e58b25f2f056ecdf21323d11781b72704e869cf40ab6f15785593754

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 10be334fd57bc926570348c5b21bbfac684b7cd1b185429506b981c90a44d04b
MD5 db15a531c89e0e431d560bda9bf02e33
BLAKE2b-256 4a58bcce341be83f5e25055868b440086e67bbdfdba19b6907d19e504bfcbcf0

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c3e89dd2910c76acf0b7ae63891978279e0766b20f2ece7270b2f92046be612b
MD5 f09b170ec409cb88f80ee40f28b92706
BLAKE2b-256 dc40a2b70ed8aebbc795abf054f3c00aa1931a98d5e1e182baabe38e8e5a3ecf

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e0b6e91d1497063a589a5eb8eddfb0a8564402cddbbfa7a0ce831c694fffacdc
MD5 0ebcb26558a767aef0a86ab0d5cd61b1
BLAKE2b-256 58d22157bcc28d3914f6f32b200795882a111f9100a695331b7d86ba8b7c9bb1

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8b9c24220a9a3876aa2c54e1aa81045d656aac0ed873f12b20db86558e3bf4bc
MD5 f9537c7e93c908e8366bb71b97fa6e78
BLAKE2b-256 91bae71bd43c79797921636d1773bfcbb754f260b4d38bab94438257e75683f7

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 aa0d90349f8c33288bbdfb2a2c124f1da4a0b41add34d0f4e2789a0325276a30
MD5 67c0ed6bd280c984c5e533b23d418d5e
BLAKE2b-256 46a54bb82536688054eba4c9143714d5150165bb199bbe2180f2a4e83fea5462

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8057a4ee3f254b0593dfc647d8a99b01cbd1b36d95c6d3157893cef753f1c83f
MD5 eba9e25790c3b18fa281e5a189795772
BLAKE2b-256 524a8a0cb649d33adc4a2cf75f98dbdb188bd1bc70cfee2c7f52cda14e162ed7

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d13fc48c45014741b053cac6a72ceebbe01c572851ad3cd3bd31a67bbde4ea77
MD5 fdf5be8b743d69a7b8e55f0eed34c310
BLAKE2b-256 52a1096a3aa4885608ad8b3c87051bf901beb8d13eb7eda15dd1226ac15ed73f

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 141a240e95769179bbf5d961818366f21066a279f7f439f92c54e9821d971976
MD5 2c4f1498971e3adda3cd723be2a1a641
BLAKE2b-256 104cd6ec67e24a2274cd7444b8a4ee7367a82c7c62eed4022ed89781cb2fd70c

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 903076b220001b12fe7fa1df71f85c2935f6e73a4fa7e4381a70fbad64522fed
MD5 f1fe23f40d64868590820ca5af30bb2d
BLAKE2b-256 efe7c2218d2f783f249efdacb7fe3365788c853717932a7550ec1b59d9d80c2a

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aa1cdfc403a061132250c24cefe971bf7f988a0b030c7512b1ebef01476b25c4
MD5 e8221ee9c6283dd39e3e170491f037fc
BLAKE2b-256 f25b840818358a0d19b09a953fb98be5320c6a8ed35b86d355f64a9d8dc1bfe7

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 20d2e56367cc82533bb2dff61d2b4ace74947e69369818910cf40774a2f4fda6
MD5 e676e93672c9049ea8f27c079a57d319
BLAKE2b-256 8805a7d4ba84fe495fc664ff36d34814a42e593ba096f8570365314275bab8ad

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 79d61ebfa2b9ff706ab1763be02a1dadee61289fdf1e57ba6ab516149979f959
MD5 0a98b7c735ee72a7ae461207e422852e
BLAKE2b-256 d619e7d5469fe3c752c6decf187c082db483e033af99ab5b8bca8dda493ac1a0

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 309553ec4a2baed1e8274100a9244a885d6bb597da5f9399632c6452b64104a8
MD5 bf78826a3f56a872b0a893838f50ced6
BLAKE2b-256 ddcf7c35667374feaa52fad49ffc4bb13a5ddf6e3f4ac23b26e61dd131018320

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5abe0bf76ebd048459afec367ae391000781d314a5bb68e03781033c9101cf7a
MD5 902af7125f0100cd3e5a93cb23e843cf
BLAKE2b-256 a290a7571e9f1aa622d13f0c2c10251de71362794b23de087a7c3253b9d144a6

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 93e3e80da782eac5e1cc5a112d6420f7ee7ea624a2faf31556565b01bcca6142
MD5 0167e9ffce6388d57be5068626240637
BLAKE2b-256 df83e073fa7681e0ee66988b9867cac4b0866dca2d744ec319857e510ec28541

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fbacf9688b0dae10117a791b2db53f218b4d2229e122827cf23cc0367e833f4b
MD5 041f3a535fa3529cc5a6489a90bc76ac
BLAKE2b-256 60e64c0ce41b626eebc617b4e76a9ffa2695e3ffac324033392273950a1f42e3

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 548b479b80ce26ac4fec7224d09a00b88a0cbcdc1b499c1ffefd7d081910bd1a
MD5 9265ad7c909f4a4a21b52b3ae62b409b
BLAKE2b-256 1e498eed2ce8b444f28f9bd7a6e2b15e84ffa064ff25a09f150aa1565432ad2a

See more details on using hashes here.

File details

Details for the file crackle_codec-0.46.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.46.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9d7bdabdd5f4b8bbcd2a1ef93b20887f9c30e40a63363d020e2b305377fca784
MD5 8c9ab491c658a425923a439dbe0b9bd4
BLAKE2b-256 85d1b262d8ade8074d3e572326c61658b590c7cb62773f7fdc30e5f01d373c92

See more details on using hashes here.

Release history Release notifications | RSS feed

0.47.0

57 files

This release

0.46.0 This release

57 files

0.45.0

57 files

0.44.0

57 files

0.43.0

36 files

0.42.0

36 files

0.40.0

36 files

0.39.0

36 files

0.38.0

36 files

0.37.0

36 files

0.36.1

36 files

0.36.0

26 files

0.35.1

26 files

0.35.0

26 files

0.34.1

26 files

0.34.0

26 files

0.33.0

26 files

0.32.0

26 files

0.31.0

26 files

0.30.2

26 files

0.30.1

26 files

0.30.0

31 files

0.29.2

31 files

0.29.1

31 files

0.29.0

23 files

0.28.1

31 files

0.28.0

31 files

0.27.0

31 files

0.26.0

31 files

0.25.0

31 files

0.24.0

31 files

0.23.0

31 files

0.22.0

31 files

0.21.0

31 files

0.20.0

31 files

0.18.0

31 files

0.17.3

39 files

0.17.2

1 file

0.17.1

39 files

0.17.0

39 files

0.16.0

39 files

0.15.0

34 files

0.14.0

34 files

0.13.1

34 files

0.13.0

27 files

0.11.0

27 files

0.10.0

27 files

0.9.0

26 files

0.8.0

27 files

0.7.2

27 files

0.7.1

29 files

0.7.0

28 files

0.6.2

27 files

0.6.1

27 files

0.6.0

27 files

0.5.0

27 files

0.4.0

23 files

0.3.0

22 files

0.2.1

22 files

0.2.0

22 files

0.1.0

22 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page