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.47.0.tar.gz (139.7 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.47.0-cp315-cp315-win_amd64.whl (598.8 kB view details)

Uploaded CPython 3.15Windows x86-64

crackle_codec-0.47.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.47.0-cp315-cp315-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.15musllinux: musl 1.2+ ARM64

crackle_codec-0.47.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (527.2 kB view details)

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

crackle_codec-0.47.0-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (507.0 kB view details)

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

crackle_codec-0.47.0-cp315-cp315-macosx_11_0_arm64.whl (531.8 kB view details)

Uploaded CPython 3.15macOS 11.0+ ARM64

crackle_codec-0.47.0-cp315-cp315-macosx_10_15_x86_64.whl (557.1 kB view details)

Uploaded CPython 3.15macOS 10.15+ x86-64

crackle_codec-0.47.0-cp314-cp314t-win_amd64.whl (605.8 kB view details)

Uploaded CPython 3.14tWindows x86-64

crackle_codec-0.47.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.47.0-cp314-cp314t-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

crackle_codec-0.47.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (528.8 kB view details)

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

crackle_codec-0.47.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (506.2 kB view details)

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

crackle_codec-0.47.0-cp314-cp314t-macosx_11_0_arm64.whl (537.2 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

crackle_codec-0.47.0-cp314-cp314t-macosx_10_15_x86_64.whl (565.1 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

crackle_codec-0.47.0-cp314-cp314-win_amd64.whl (598.8 kB view details)

Uploaded CPython 3.14Windows x86-64

crackle_codec-0.47.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.47.0-cp314-cp314-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

crackle_codec-0.47.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (528.8 kB view details)

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

crackle_codec-0.47.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (506.6 kB view details)

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

crackle_codec-0.47.0-cp314-cp314-macosx_11_0_arm64.whl (528.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

crackle_codec-0.47.0-cp314-cp314-macosx_10_15_x86_64.whl (557.1 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

crackle_codec-0.47.0-cp313-cp313-win_amd64.whl (583.2 kB view details)

Uploaded CPython 3.13Windows x86-64

crackle_codec-0.47.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.47.0-cp313-cp313-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

crackle_codec-0.47.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (528.2 kB view details)

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

crackle_codec-0.47.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (505.5 kB view details)

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

crackle_codec-0.47.0-cp313-cp313-macosx_11_0_arm64.whl (527.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

crackle_codec-0.47.0-cp313-cp313-macosx_10_13_x86_64.whl (556.7 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

crackle_codec-0.47.0-cp312-cp312-win_amd64.whl (583.2 kB view details)

Uploaded CPython 3.12Windows x86-64

crackle_codec-0.47.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.47.0-cp312-cp312-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

crackle_codec-0.47.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (528.1 kB view details)

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

crackle_codec-0.47.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (505.6 kB view details)

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

crackle_codec-0.47.0-cp312-cp312-macosx_11_0_arm64.whl (527.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

crackle_codec-0.47.0-cp312-cp312-macosx_10_13_x86_64.whl (556.7 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

crackle_codec-0.47.0-cp311-cp311-win_amd64.whl (581.2 kB view details)

Uploaded CPython 3.11Windows x86-64

crackle_codec-0.47.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.47.0-cp311-cp311-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

crackle_codec-0.47.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (521.9 kB view details)

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

crackle_codec-0.47.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (501.8 kB view details)

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

crackle_codec-0.47.0-cp311-cp311-macosx_11_0_arm64.whl (520.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

crackle_codec-0.47.0-cp311-cp311-macosx_10_9_x86_64.whl (560.9 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

crackle_codec-0.47.0-cp310-cp310-win_amd64.whl (580.2 kB view details)

Uploaded CPython 3.10Windows x86-64

crackle_codec-0.47.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.47.0-cp310-cp310-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

crackle_codec-0.47.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (523.0 kB view details)

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

crackle_codec-0.47.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (500.2 kB view details)

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

crackle_codec-0.47.0-cp310-cp310-macosx_11_0_arm64.whl (518.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

crackle_codec-0.47.0-cp310-cp310-macosx_10_9_x86_64.whl (559.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

crackle_codec-0.47.0-cp39-cp39-win_amd64.whl (581.4 kB view details)

Uploaded CPython 3.9Windows x86-64

crackle_codec-0.47.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.47.0-cp39-cp39-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

crackle_codec-0.47.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (523.6 kB view details)

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

crackle_codec-0.47.0-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (499.9 kB view details)

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

crackle_codec-0.47.0-cp39-cp39-macosx_11_0_arm64.whl (518.9 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

crackle_codec-0.47.0-cp39-cp39-macosx_10_9_x86_64.whl (559.5 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: crackle_codec-0.47.0.tar.gz
  • Upload date:
  • Size: 139.7 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.47.0.tar.gz
Algorithm Hash digest
SHA256 36af99a2d7b7f466b332c623158386056d794955fb07593f9c9f8be4509b2970
MD5 c111e2ae75951055d24b29632922970f
BLAKE2b-256 6ed084d98721af6f865482d8569caf978341a87ef5fb3c023274a6c543090d46

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp315-cp315-win_amd64.whl
Algorithm Hash digest
SHA256 d466c7996f4abf32f76786c9d36f29486e8228b59d89f953dead125cbf6065df
MD5 8410f28960abde0323d31d5c8df690b9
BLAKE2b-256 6b05a3b78b171484a001b50d491122b25b4e37ce5bf6a3e0112e314fc5312baf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp315-cp315-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 952139149526e798e190b9b4868576063a66713cf679482e665d9ab37c20acb5
MD5 aa9830100a0376583e149d40a5e02c9c
BLAKE2b-256 3fda1b3e8c3d700aba7bca3943fd4a01d74f5cf1968aa74d32303384149dcde3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp315-cp315-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 86545f73153c78a1c948c366da09d4e1b29a62d29d09cc0fa91f2c74c2bea18f
MD5 424a7a0c9be5e2f5b975405a9415b940
BLAKE2b-256 52ac48691091ee8dafeaec9dbc81976dbce57f90d1e16026f746158b072d6eee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1e4802c1320bb6b86831f16766597bffc472db36c3a44dcdf097f09135c776bc
MD5 facc5b5ec8f307b06e4a7522f485fc78
BLAKE2b-256 5fa6cc7cd35834a417d73e7f2eb239141190215287e2e027869ac5ab91b08d17

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 94dc9c0839318a192308637cd01e4177c03de5a537a32d9678da2424ab4808a2
MD5 80353364789e5d469115e07258f8fb73
BLAKE2b-256 8a588b6bd07d51bde6a9a3080091385df8a0baf443c9c7d063c1789f9245b340

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp315-cp315-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d8e27a27da590d5621736f02b8b9e73be13854c51c0c1f322be61300df4b577
MD5 99077776247ffb706fdab3071da233de
BLAKE2b-256 41f1078c90f0e22763419541c4aaaa0524a043060f3b3fa8f21574ad3a6e058c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp315-cp315-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 f98fae26ac4b9b024b7cfe100f33ac15431c572f1de73a3195f274c3c4810715
MD5 aa2d2df6359a111afa50916b04f8eb3b
BLAKE2b-256 402c6ce8450a1e549756f6645f252ba72634c407f7cdc63faa17b8ef17173a68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 7fc6ca11ad8a72437e8c88712afb3e2293274dbe4103755b4aba437022728c18
MD5 ecd9981d029554ec11aa475fb306e53d
BLAKE2b-256 7ec4f892e40c68840c66a52e0b0cdaee5ebc39130dc0a84794cfb4acc327d86b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 659ac927f6b9f498b0e8cbb14318223390ecbf99fb07a11c5333a76f38d3a2cb
MD5 73a6a0bb1bfaf514ff42b202c0e8e00e
BLAKE2b-256 467f4284565e794d9b96c9d53ffdf036a282bc8d72e0309511c26de7161fa27e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c1ed1f1b1b155b2c3cd9261c0095023508c818293929c712374e392a67e9a530
MD5 1ce12fad72426afbb038c615c666048d
BLAKE2b-256 27a5d56c0b76eeb7a8af53bc61f50289880574f946ee3f65b6021c96efaad3f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 72ec94a2c0f0ae7b021e0d56d80b9cc950af74480b7043bf9800ef9d71266a04
MD5 8fe02acf3b5917553c2d4a94c1a5b9ef
BLAKE2b-256 a9b574c660f1045e8571b2c67580db0e63a231f62213898da3ae46bbead9498b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 275e9a0b6d594e20204075d3cb7db6bb0b90e0aae98c3bd2b40e7de1ba05b835
MD5 47731baf02a327a94a5476919b923036
BLAKE2b-256 fd732c6123934622e64f92da55698f1fc066d2ca8bd846eb2295d30fb00175cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b035a0bbe6f564bb263480390effaa2709643e9b1c3dae527df29b4e4f9b92fd
MD5 9c99f8354483e4dce4ed0f3663ce597c
BLAKE2b-256 e59fe5d5afa05554875276dd908bc08d7417b38b014b17b0fe1248fa92322194

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 28ae7eae55b825b262004715fd392b29fafe56641ad1406c191a45a896779550
MD5 6aa3394a04d5cfdf34014874cb5983dd
BLAKE2b-256 b86baa33ee3e3fb7b34757fd036a9eb3a3244060461faf08703bb0dfb8e27530

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 134065ea105a08bd4eca18b86e15f620c3da590e8035df130923ea0e2ebedc44
MD5 f4b1d817fe3cd0fabb02254565d04324
BLAKE2b-256 8ec8a956bdbe1d2220f0b81e11d2fc547ba20caa9650de5b02b26eb97d5cc6c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 48e8a2fd040ef755cb1688768107180e347cf618bb2345288b4a1ceb63a17c07
MD5 40d17995880d230fe4e06204f5be2551
BLAKE2b-256 f70471a2b05d50bb92ef9c1c8e0a0d1bf6fa23a6a9058c5f00511615166b9846

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 be9f4f2ea5fa5cfd8ebb52deaff6d13a4793e9b2b82850b2fa705662cc8d48a6
MD5 3bd588bf59c38b3a58803d49280ea96d
BLAKE2b-256 bffdbed326429332962685c2d36590945a39d7d5122f64a1da3c0bf15860d586

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6931150a16dbacddcabcfb44b9a029549a041ce16bde836df4d3b2c36b4acfde
MD5 11a483e43229f1a676b0e5f12fb6f8c7
BLAKE2b-256 49eb261561ad1fe28320b023c5a3e589fd921a7037b9942b5c575aa8f2ae2276

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 916f69b0523c463487326bd7422c5b9ed3e8230d5a0eed8576bf29ab4bb7e202
MD5 a443612678699c5a0b3b0677eaca20e9
BLAKE2b-256 232875523b010369f3d4e872460f01dae9cdf0dd48088c1f9d6ec3053f8493d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 df191004b4d782d243a02c089eea781d644f011790be438870af267e16bbed3b
MD5 f60a40ca7ab0980c3c8ac0a25d84a7ff
BLAKE2b-256 e112239d8fd74dccd498be203210a1bde594627e26e3ba625bb234349d24322e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 cba4637f54ff36ab2c579ecd73bc79ecc65c1acca22b299f812fe356ec60401b
MD5 62119650cea77b751d4dab557c1bc517
BLAKE2b-256 19713390836480304e03fdfe4c915c6911e5c1a9227c638cab1d11fbbf9c12c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9448ccf1e456092774326ee032df59c72982044116420e0b659f26cf437a5a58
MD5 815f9321f30ec866281db25c09524a6d
BLAKE2b-256 de3f03201c94d4c7f4ec8f319e07710bebe024bcfddeb5936905daf22cb26037

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a5440107ddff9b4dddbe7dc9a398f6c313e7465dc4eab1954e1316988db69763
MD5 c845502a5cb12b1c5a1b820c7b5d3893
BLAKE2b-256 16a9d036b7c17cb23cb73f11ce34f4dcdf34cb7cca9f891da604ea6084fa14cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6383eeaafa0cee1606da46abb3354d36727a1390926d47634a7d0be3867f6ea1
MD5 420380d0c050a775ceec608485585821
BLAKE2b-256 186bb235bda0c27a9845938fda0793420517aef0a5c7e6ab44271a886c5ee634

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 29fff163c0175362b38df925f7e3cf20356241732a4b04e1c195974e7109fe5e
MD5 e38d98ba6323f44df5c3666e2cbde6f0
BLAKE2b-256 8af0c4d32e33088f78c3016e8b10190224c94c58f9465ebe4d04713a542ffc93

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4a5cff1b33062711b836bc10eafad0a5a2e563e335b2bcd257c5505fa7da19a7
MD5 1913ea2ebcdc827ee91df0e99b84ef05
BLAKE2b-256 a248874a5e46899d78a0d9f680f2ecec788929832f57edf9b14de5183028f8dc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8b0f196c0d8954046a4853af3c990def0f5c0a8a5cfc0a27d27551f991b1f053
MD5 f9116445784e6eb1c2074b09f9c0a666
BLAKE2b-256 45877b64bec15707e986e3cf0fd48ff6cb971a98d4c8dc13b63f80b2d77804ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b0ebf09557af537ed9b5708b7a357c52cb523f11d55992d8e7456904dd4fa2e3
MD5 6cf866ec4bc97baf4425ca13faea497a
BLAKE2b-256 a4b410c70a3b6ab9d1dc661114a358a4786ebd694cb82708303194ef649701b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 579b8a162e4d06bb7ff60acf0f389bc3880902475791265213c68487241ee435
MD5 bcb80cb74f2b5e73789fd521ee0bec17
BLAKE2b-256 36e81f47b81f888a07bcf3ecb95164e340432dd30a6bd17f87249fa9ef5a69dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 25f2a236490132827788eecf1561b549b61ca5b28ec6bc4b770b6eb928d1ae7a
MD5 1dfa8e8a2fa4b429d46837fd60aa8dca
BLAKE2b-256 b43f9092b7be7b5725713c1b8a9782956594d6509ee1e5d818a8907a5157d48a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7edc16695d4ca0f83a3af8aa7562371ca908004c5bfdca9bfa225134338dc164
MD5 5b345794fab826771ef1708f1221dc52
BLAKE2b-256 02f7f502693e998f10904f15f3f7a702d39d47316b94ad64845ea938a28b57e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e2635232bb359085ff16984707f79d407d20d9f09269b36f04791e4c2ac24a1b
MD5 36c31f140c4e56f0afc889b1239c7921
BLAKE2b-256 9fc2d27fb49793d1b04be41c692c2a9cb80cc32435bfebafeca3386257e808d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6a2d4471aa2ab97118f14642d09f129d8ae646ccb28a1f8e889aa313c1ca056f
MD5 77965bf7f40805fa5f3c08ed83a4ac23
BLAKE2b-256 8f455ec267798edd1123f26203fc5ef71c578fe1b943b85228669048949c5d75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 32fa102d0a2ec900dfed4a01e8d701f240c655ef0e00ed758890ad4110380b4c
MD5 fd9e722d976b64778a354a3d98fb819f
BLAKE2b-256 54504d99742444b2180360fabb3023e6996ee37e3dbe88892d451421364cd481

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ce0ffb4db9a3e9bded0737c4357010002081e6f76b78792d05b3dbc6ec69149b
MD5 b25e03187780b388030cc502277d6887
BLAKE2b-256 e0c532ca13259c54d7f5b15763005383e89963517919fd14006064f7fa7a8759

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0474825952c659e9e9a1138cbe0bed3d0b3c62125d1f6756d2e228a6a8c6189e
MD5 bc25e112d818bccced2775aee70d3645
BLAKE2b-256 ec3d564cca4bac76d344e877dd9102a5efb3844f0fd903d2ecef0ef3c140cc6e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c54aca91e3460e8e01af323a784d23b8ef11797d70e408297e217713b9529982
MD5 a59e2af9fad688ca0f8e47dee9f85ed6
BLAKE2b-256 f3ded59cce033245982de86cace329f65703d4cf956a871d9bc7bfd3a532295f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 14990daf04e049c6a1b8d64e9ba68327f8b059703e5b159a6af6a958679f98d0
MD5 0c00cb82f1edb575862c1aca9bf99aa6
BLAKE2b-256 7861bef8f930015f52815cca549784c6c23c97dd29c35a6d4333dbe545facdd5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 21dbcae0cd41f11b66ee092ba6957426a2dd3b66756047ca960ffe52bed5a99f
MD5 c7c6cacaf3b9870f9d6a07eea49ea0eb
BLAKE2b-256 f025638e69d4d25f01a42bc74d771dd8519ac59776f1d2597460cb0b8408866a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e725edb056f5c3c6912cdcb8d6daf501030eef5857cfdc40b37a79b0df91d861
MD5 c0b82723dbe3ade26ca849f833178cdd
BLAKE2b-256 a0af0f788993930f9a9cb17c9ce05d761e8da3eb56ebacdd24aa1dc79d38d080

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e47f955ddd6219375088216dd3c5e921af8e1c9150112a6768bda8b0730b8a16
MD5 f763bfee99970063e684154d90c5cb40
BLAKE2b-256 1bec07aec0808594ed31935e48ad9de5f3069a2bb5b7c2eadac372dcaca5c0ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9ebdba6b0c851374da1b8c98c47a478d45bed95ceb4539cba23cf5832d69091b
MD5 295e3f5455a52d9c278f4ec8f1377ea3
BLAKE2b-256 5ad6cf0be5b71e7a9c4a3d67ed9aacf8a95c1fd7c9a5e769ae89ff5d814d1f8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ad973b97c31d9bbe608a9303216210f34d7f7b95ad87c469d09a6929939f85b4
MD5 936b4030bca811e0d6143f9dc1d77a28
BLAKE2b-256 64c0fa163549d36652d912dc6a434d462dd5c02a8bab5f4dd3e77f2b4534b474

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6a2a8c1ac7ba047263683b1441d535e4df40012d4f348a4103621099c08cd3c3
MD5 671f18fec5013ed22ee4564f601543b3
BLAKE2b-256 de18e04efba318bcb65180b8e5bcc36d832e6c1f8ffa1e4bba27e1eb66fe3540

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 092176faf07de42f5d06560fb3fbea203c3dd87398eb95075018c0ebaf27e7af
MD5 06c69fbc36d526b87c94afbfec873efc
BLAKE2b-256 f5f61d1d7ab04b08ddcf5776139dbee0a9241ef0d8d903e4c527ab2b4ff31713

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cfced9c714a7ac4213d2262c11e54ad851f2eb64e7a77decbf1498b11955dce3
MD5 20ada451834333182be67722ab0a3312
BLAKE2b-256 4c32e3c327bfd3d3c5e5050d6c8a08831a0a4676f04e9e665a5c0110403094c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 dcdff879030c8860e8f05b5c2dcffc7ba82e4b316dd117908bed73828b5bf636
MD5 816c9e7e6f0a8bd5b824193ede867639
BLAKE2b-256 1967cbc66809aa345a00dcdbba698603d2fe383afb3f450442b1b4252803a795

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 56e3354f080955f522e541920184b1d470eab0c2539ab3048daba5c78f57eff8
MD5 3d5085230419aee680a3028620ea7466
BLAKE2b-256 a922d5c939ea494b500764cc7bdb6a4356c9106e1811fa0dc7f4b0f1ad11f895

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f4e285b7f1bcf67acdd715062821d1e89b3c778d6df2a1ede1440906c97d455f
MD5 d09692585bd4f9b264c1a68c97fd6cea
BLAKE2b-256 64e538c3f94d30fa3afa2808112ff022e38acf4873eb9997c6770d6cb89ab193

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 08dc33f15635c3276eaf08bb5d6316f25d483000f91afa9b117a7581a7ecdc93
MD5 af0b2ffa61d732ce0f305ce068156290
BLAKE2b-256 6c0c40a46ed19b56ae83bcddae7bc337a003d494f7901ed6d2e9312c03d83927

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d2975523b040d8853fdcc4a631e02e55f3b7b58eb1654cab19452964aa0e77d7
MD5 5635b665d0c3c66ebf96072b76aef0da
BLAKE2b-256 aa8c0bfe2ce0824d7f5e38672e504f2a8ff08800b2d4c1436d2f3724007aa236

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6bf78218d1f8ec1d475697776ef7d62385c9e4cc7182487355799528dadf1273
MD5 9d699f33708b6a94fe9d1b399287b8e3
BLAKE2b-256 3c033a802741719d8fc1be5adbf6a24533a2b54ba7d4c10a7acbb15869a12bad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 043a9bb56794cae95bb7c7f09bf169bb259a6044dd105481a6e67c4ed67238bc
MD5 fcf9c4364e48af9d70c352dd215f76e7
BLAKE2b-256 ca2ce6fe44aed650e2bf6dcd1e73394f954e4b1b7039aa837ec2f3f93c8d7718

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9ebe1e81eec6fab4bc174259ef4f6960b14fb101a135c418f08449a77fd389ce
MD5 748f3f92ac5001cbc676a82f445e3929
BLAKE2b-256 774c9ea493a3dc6642f16e676b01b8205906683172c2d992ea900e0c29d8571d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6de4ce0a9f4ecabe0a368491ce4dedb69d677036f3fad480b62dabaec5e92193
MD5 69b5655b589ea33bd17cb71513807f24
BLAKE2b-256 75ff643cdc67547578231a16797ba3751c7055d9c0bbcd75e6b0bdfffa231eec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crackle_codec-0.47.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1901f8715188e58db681e30fb9fe11cbed12c2a83eef4240d013379be5bfe81a
MD5 82bdc7d0ce129adbfb322ac1587aecfa
BLAKE2b-256 07b156bd9c12b66150f861d1e9e44ad5e66acf917be0e5c387ce912198f4f4de

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.47.0 This release

57 files

0.46.0

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