Skip to main content

Python bindings for tract, a neural network inference engine

Project description

tract python bindings

tract is a library for neural network inference. While PyTorch and TensorFlow deal with the much harder training problem, tract focuses on what happens once the model in trained.

tract ultimate goal is to use the model on end-user data (aka "running the model") as efficiently as possible, in a variety of possible deployments, including some which are no completely mainstream : a lot of energy have been invested in making tract an efficient engine to run models on ARM single board computers.

Getting started

Install tract library

pip install tract. Prebuilt wheels are provided for x86-64 Linux and Windows, x86-64 and arm64 for MacOS.

Downloading the model

First we need to obtain the model. We will download an ONNX-converted MobileNET 2.7 from the ONNX model zoo.

wget https://github.com/onnx/models/raw/main/vision/classification/mobilenet/model/mobilenetv2-7.onnx.

Preprocessing an image

Then we need a sample image. You can use pretty much anything. If you lack inspiration, you can this picture of Grace Hopper.

wget https://s3.amazonaws.com/tract-ci-builds/tests/grace_hopper.jpg

We will be needing pillow to load the image and crop it.

pip install pillow

Now let's start our python script. We will want to use tract, obviously, but we will also need PIL's Image and numpy to put the data in the form MobileNet expects it.

#!/usr/bin/env python

import tract
import numpy
from PIL import Image

We want to load the image, crop it into its central square, then scale this square to be 224x224.

im = Image.open("grace_hopper.jpg")
if im.height > im.width:
    top_crop = int((im.height - im.width) / 2)
    im = im.crop((0, top_crop, im.width, top_crop + im.width))
else:
    left_crop = int((im.width - im.height) / 2)
    im = im.crop((left_crop, 0, left_crop + im_height, im.height))
im = im.resize((224, 224))
im = numpy.array(im)

At this stage, we obtain a 224x224x3 tensor of 8-bit positive integers. We need to transform these integers to floats and normalize them for MobileNet. At some point during this normalization, numpy decides to promote our tensor to double precision, but our model is single precison, so we are converting it again after the normalization.

im = (im.astype(float) / 255. - [0.485, 0.456, 0.406]) / [0.229, 0.224, 0.225]
im = im.astype(numpy.single)

Finally, ONNX variant of Mobilenet expects its input in NCHW convention, and our data is in HWC. We need to move the C axis before H and W, then insert the N at the left.

im = numpy.moveaxis(im, 2, 0)
im = numpy.expand_dims(im, 0)

Loading the model

Loading a model is relatively simple. We need to instantiate the ONNX loader first, the we use it to load the model. Then we ask tract to optimize the model and get it ready to run.

model = tract.onnx().model_for_path("./mobilenetv2-7.onnx").into_optimized().into_runnable()

If we wanted to process several images, this would only have to be done once out of our image loop.

Running the model

tract run methods take a list of inputs and returns a list of outputs. Each input can be a numpy array. The outputs are tract's own Value data type, which should be converted to numpy array.

outputs = model.run([im])
output = outputs[0].to_numpy()

Interpreting the result

If we print the output, what we get is a array of 1000 values. Each value is the score of our image on one of the 1000 categoris of ImageNet. What we want is to find the category with the highest score.

print(numpy.argmax(output))

If all goes according to plan, this should output the number 652. There is a copy of ImageNet categories at the following URL, with helpful line numbering.

https://github.com/sonos/tract/blob/main/examples/nnef-mobilenet-v2/imagenet_slim_labels.txt

And... 652 is "microphone". Which is wrong. The trick is, the lines are numbered from 1, while our results starts at 0, plus the label list includes a "dummy" label first that should be ignored. So the right value is at the line 654: "military uniform". If you looked at the picture before you noticed that Grace Hopper is in uniform on the picture, so it does make sense.

Model cooking with tract

Over the years of tract development, it became clear that beside "training" and "running", there was a third time in the life-cycle of a model. One of our contributors nicknamed it "model cooking" and the term stuck. This extra stage is about all what happens after the training and before running.

If training and Runtime are relatively easy to define, the model cooking gets a bit less obvious. It comes from the realisation that the training form (an ONNX or TensorFlow file or ste of files) of a model may is usually not the most convenient form for running it. Every time a device loads a model in ONNX form and transform it into a suitable form for runtime, it goes through the same series or more or less complicated operations, that can amount to several seconds of high-CPU usage for current models. When running the model on a device, this can have several negative impact on experience: the device will take time to start-up, consume a lot of battery energy to get ready, maybe fight over CPU availability with other processes trying to get ready at the same instant on the device.

As this sequence of operations is generally the same, it becomes relevant to persist the model resulting of the transformation. It could be persisted at the first application start-up for instance. But it could also be "prepared", or "cooked" before distribution to the devices.

Cooking to NNEF

tract supports NNEF. It can read a NNEF neural network and run it. But it can also dump its preferred representation of a model in NNEF.

At this stage, a possible path to production for a neural model becomes can be drawn:

  • model is trained, typically on big servers on the cloud, and exported to ONNX.
  • model is cooked, simplified, using tract command line or python bindings.
  • model is shipped to devices or servers in charge of running it.

Testing and benching models early

As soon as the model is in ONNX form, tract can load and run it. It gives opportunities to validate and test on the training system, asserting early on that tract will compute at runtime the same result than what the training model predicts, limiting the risk of late-minute surprise.

But tract command line can also be used to bench and profile an ONNX model on the target system answering very early the "will the device be fast enough" question. The nature of neural network is such that in many cases an untrained model, or a poorly trained one will perform the same computations than the final model, so it may be possible to bench the model for on-device efficiency before going through a costly and long model training.

tract-opl

NNEF is a pretty little standard. But we needed to go beyond it and we extended it in several ways. For instance, NNEF does not provide syntax for recurring neural network (LSTM and friends), which are an absolute must in signal and voice processing. tract also supports symbolic dimensions, which are useful to represent a late bound batch dimension (if you don't know in advance how many inputs will have to be computed concurrently).

Pulsing

For interactive applications where time plays a role (voice, signal, ...), tract can automatically transform batch models, to equivalent streaming models suitable for runtime. While batch models are presented at training time the whole signal in one go, a streaming model received the signal by "pulse" and produces step by step the same output that the batching model.

It does not work for every model, tract can obviously not generate a model where the output at a time depends on input not received yet. Of course, models have to be causal to be pulsable. For instance, a bi-directional LSTM is not pulsable. Most convolution nets can be made causal at designe time by padding, or at cooking time by adding fixed delays.

This cooking step is a recurring annoyance in the real-time voice and signal field : it can be done manually, but is very easy to get wrong. tract makes it automactic.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

tract-0.22.3.tar.gz (8.1 MB view details)

Uploaded Source

Built Distributions

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

tract-0.22.3-cp314-cp314-win_amd64.whl (8.8 MB view details)

Uploaded CPython 3.14Windows x86-64

tract-0.22.3-cp314-cp314-musllinux_1_2_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

tract-0.22.3-cp314-cp314-manylinux_2_28_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

tract-0.22.3-cp314-cp314-macosx_11_0_arm64.whl (7.4 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

tract-0.22.3-cp314-cp314-macosx_10_15_x86_64.whl (8.5 MB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

tract-0.22.3-cp314-cp314-macosx_10_15_universal2.whl (15.9 MB view details)

Uploaded CPython 3.14macOS 10.15+ universal2 (ARM64, x86-64)

tract-0.22.3-cp313-cp313-win_amd64.whl (8.5 MB view details)

Uploaded CPython 3.13Windows x86-64

tract-0.22.3-cp313-cp313-musllinux_1_2_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

tract-0.22.3-cp313-cp313-manylinux_2_28_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

tract-0.22.3-cp313-cp313-macosx_11_0_arm64.whl (7.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

tract-0.22.3-cp313-cp313-macosx_10_13_x86_64.whl (8.5 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

tract-0.22.3-cp313-cp313-macosx_10_13_universal2.whl (15.9 MB view details)

Uploaded CPython 3.13macOS 10.13+ universal2 (ARM64, x86-64)

tract-0.22.3-cp312-cp312-win_amd64.whl (8.5 MB view details)

Uploaded CPython 3.12Windows x86-64

tract-0.22.3-cp312-cp312-musllinux_1_2_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

tract-0.22.3-cp312-cp312-manylinux_2_28_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

tract-0.22.3-cp312-cp312-macosx_11_0_arm64.whl (7.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tract-0.22.3-cp312-cp312-macosx_10_13_x86_64.whl (8.5 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

tract-0.22.3-cp312-cp312-macosx_10_13_universal2.whl (15.9 MB view details)

Uploaded CPython 3.12macOS 10.13+ universal2 (ARM64, x86-64)

tract-0.22.3-cp311-cp311-win_amd64.whl (8.5 MB view details)

Uploaded CPython 3.11Windows x86-64

tract-0.22.3-cp311-cp311-musllinux_1_2_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

tract-0.22.3-cp311-cp311-manylinux_2_28_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

tract-0.22.3-cp311-cp311-macosx_11_0_arm64.whl (7.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tract-0.22.3-cp311-cp311-macosx_10_13_x86_64.whl (8.5 MB view details)

Uploaded CPython 3.11macOS 10.13+ x86-64

tract-0.22.3-cp311-cp311-macosx_10_13_universal2.whl (15.9 MB view details)

Uploaded CPython 3.11macOS 10.13+ universal2 (ARM64, x86-64)

tract-0.22.3-cp310-cp310-win_amd64.whl (8.5 MB view details)

Uploaded CPython 3.10Windows x86-64

tract-0.22.3-cp310-cp310-musllinux_1_2_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

tract-0.22.3-cp310-cp310-manylinux_2_28_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

tract-0.22.3-cp310-cp310-macosx_11_0_arm64.whl (7.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

tract-0.22.3-cp310-cp310-macosx_10_13_x86_64.whl (8.5 MB view details)

Uploaded CPython 3.10macOS 10.13+ x86-64

tract-0.22.3-cp310-cp310-macosx_10_13_universal2.whl (15.9 MB view details)

Uploaded CPython 3.10macOS 10.13+ universal2 (ARM64, x86-64)

tract-0.22.3-cp39-cp39-win_amd64.whl (8.5 MB view details)

Uploaded CPython 3.9Windows x86-64

tract-0.22.3-cp39-cp39-musllinux_1_2_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

tract-0.22.3-cp39-cp39-manylinux_2_28_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

tract-0.22.3-cp39-cp39-macosx_11_0_arm64.whl (7.4 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

tract-0.22.3-cp39-cp39-macosx_10_13_x86_64.whl (8.5 MB view details)

Uploaded CPython 3.9macOS 10.13+ x86-64

tract-0.22.3-cp39-cp39-macosx_10_13_universal2.whl (15.9 MB view details)

Uploaded CPython 3.9macOS 10.13+ universal2 (ARM64, x86-64)

File details

Details for the file tract-0.22.3.tar.gz.

File metadata

  • Download URL: tract-0.22.3.tar.gz
  • Upload date:
  • Size: 8.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tract-0.22.3.tar.gz
Algorithm Hash digest
SHA256 4f403018a7305a096d7e122bdf1ecf32f41fb3ab22605e4f73834643fef1de26
MD5 e9418cc4db5cb2c8c3df4f2512381a42
BLAKE2b-256 ca2bd580976de850507eeb6e70ef4fe47682becddf6307da643fbbefa84e9113

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3.tar.gz:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: tract-0.22.3-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 8.8 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tract-0.22.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 2ad8390cc5b14ffb7d56672cc0b16fb9b96acfab9f2c7506218a63e9309b4bcf
MD5 41f0a8607c3f2d38a4225acc2c80e6aa
BLAKE2b-256 6fb981fb725874cad9a4d4e11db6d6739b577d70a6d962daed72c40ecf851fae

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp314-cp314-win_amd64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9fccc1536c4ba9858d237ca6c9819cee20ad3daf983c0c9f0aff3efe55b17da4
MD5 0e6632a7fb7ccbab8db6bf047bc4162b
BLAKE2b-256 cb13871c2acae9dfa7781587059d9996c3484d47c26aa2d6c90e8e3f4bf549d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dde20ec7460c2eeb98f0e564cade8754fdc8c17363f60f0c93b0ff1e15585bdb
MD5 fcc4a8616220c61f1455a3f809bd4ace
BLAKE2b-256 5787f5ab6bcbf24064ceb8378d27ba631dddb766169200ef6a357dd7fbb49048

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp314-cp314-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 deaf0f92c72df4fb2e483640fc3e7e70b1f8c4796bcc519a064daa3dd4856c88
MD5 c6e72d21857478894beb1775fa503a2d
BLAKE2b-256 a688a4ab90c50b557afd66ccb57eb92f5741b00895f3af1a108444c304cfaf86

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e2bd58c79c3b7b0388497dcd582d985aafbc024b48ac4ba40d8f1c1eaa695801
MD5 95edbbf5017e820d557dcbe5ef122fa3
BLAKE2b-256 92e5bef14538642988bb85f84bfc5ffe8bf0e0cfb94775649dae49281dd41268

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp314-cp314-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 576e23e0a91aed77bb69cd17d2e4f0cdc1ba9b36a0b8c28d5d716e3f016d2527
MD5 b8b3448d13ff2553716c9bf8a1357fb0
BLAKE2b-256 07389a7ecc7f197e7a8b5a7580e2fdcfe84608cc90840fac9925f97e781cbb5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp314-cp314-macosx_10_15_universal2.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: tract-0.22.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 8.5 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tract-0.22.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8ecaf087f5eee46e7b46653e6036e8be5e57fada3dc9f71c8f881bea3b540e29
MD5 9b749f0eeac73e86a007620c0cd35e23
BLAKE2b-256 4233659f985a4ae462b9b1a8669dc8015cd2cb8d5f63db03305501b27b91103d

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp313-cp313-win_amd64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e6a6eed9e8d42e4f53baaccbef6eed7d52bba42f942687b6cde5e8438933cd49
MD5 63705ebadc3f21e72076ab4527cca459
BLAKE2b-256 8ba5e38c138a97cd4faebfc2982a83841e2070b97a0085b259894b5439bd881d

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e5bee438461fe7c061eaf072a4fbf8c2a0ca572ea3c1d515f9240dbe6b536e20
MD5 08f0374c7cc59c12e53da599809e739b
BLAKE2b-256 4b51ea181e2dae18182c9cbe641ac87f5ad1286f0152d5e4c122555021bb550b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6f6daba91b89f7f8ef7995af1666a182877cfa0b211fcda703a5c15428d6c7a5
MD5 2de85746c98a9278ac688f31380fa463
BLAKE2b-256 c8400bc571a5e80adad8c1c6f809a22679e66d27831f5a1b1b4cfc26a0ca5401

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 bba5f757c4abd17ef48560de6459b91f8c52b8c8c3d0b57d191569c6636ad042
MD5 b7cf540ea29984a394da865828637cba
BLAKE2b-256 5314e88d31006c5bd3339dcf6fd8f85bb8db898b5d2caebdd51eae2e60248880

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 608e7dcbb87a121d515c1eed69d3b7ca3ff7b747a0fc3e3548ebdd730e1a3703
MD5 2bfa8a9d48c01faaaa385a2c399694d6
BLAKE2b-256 52a307495374a8f1ab690baeded29a9556c4033841a914afbac870c7bfbe4714

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp313-cp313-macosx_10_13_universal2.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: tract-0.22.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 8.5 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tract-0.22.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9fb04dbd91153c8fd3489605b4cfdcb1a403cc16e8f6de80584b1e63b92cae71
MD5 11e3abb9392d68f950b4372340efc6ea
BLAKE2b-256 efd3c8c7927d6e7bb25b4e72638db64267178afe24d9631f051444037dfdb2e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp312-cp312-win_amd64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f54977918b4c280ac3fb36c8e6cff5c9304154119004a20fd7f7de256c8bda0c
MD5 74507ebe46d9e352c362e1b052322c50
BLAKE2b-256 59fd15ebe511435730ff9596bd4dc32f9c18a5703adcb4caab3e2c9f97282732

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bf235d130031339de7ee4c354d8c1c60469a58b04e45ae50f1ace6c7d2084293
MD5 712e25778b9c31c6d123fca3ef997499
BLAKE2b-256 61e6ac4e5789d8251b967befed867a9af4bf315c546c00f778336d2ee7f77717

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f5cfc79e7dbead132d9d72eebe5e369c15f92c4f76fa7cd372be78b17bbfeb30
MD5 41de1ef0e5e4628e4145a66b1dc7940f
BLAKE2b-256 a4a8bcfdc5c745f754f9968cb51cc6b785f1e500af32b07ded0cbe6ff8e5238f

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 a0eb9f34ad7e542a06eca36b9efebf6103785608995bc8980da937c4abe605cd
MD5 d59ca83523700312d7f0dfd69915fa94
BLAKE2b-256 f42ba71efe4878848b922b2711a0045dea440e7f59b55bbea6bd4fe8505bed2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 f37ed7bf4e4605b22eb8cfe993355f8dbb3f8e69aa3bcbd4c682be9d3cf4c1a2
MD5 52c9ff249d99baa5e246cb1f6216d6b0
BLAKE2b-256 1ab8f1a16319a088f479bf915fa8b00cd34f4c2b00c9cfb558c1da2f4b9f4cd4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp312-cp312-macosx_10_13_universal2.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: tract-0.22.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 8.5 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tract-0.22.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3afb597fbceb70e0991377b9bd4107a27baeb9a38da8c662c93f090c3c000df1
MD5 7c6baa71ecf84e953d78db816b300b91
BLAKE2b-256 a553f990601021fe0e9da7cd52b181d16652095d89a3ac0681263d6491a22506

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp311-cp311-win_amd64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9e8a54be7606bffe9ac137428b5fea9f79080f4876868bf4146a1d15944ab18e
MD5 511a841c71323b1cc168540730850108
BLAKE2b-256 f0927a7862abbed583985f5f553a025c2b39ec1fe0c976aef28961489ffc11cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e6effe6dace4b131b24b8d34a0945f434753622c08f36817a6600d1f0784b643
MD5 a577acdee2c8abaa107741dd91e324c3
BLAKE2b-256 5e5bb8f98100758941ce9633399d4bf28d11cacd44e7cecca63c334d92d598ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d8d8e5180c7e44c08dc59d14b46d0815436efdf03f8b2307e638369d0747a23d
MD5 efb912b3fb553e0a33a1a66ef37eafb0
BLAKE2b-256 2215b4ff9be379d7eef60b8711729e520c602f7af5cab7de38288b273264ebe9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp311-cp311-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp311-cp311-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 c96e8340b9db9a230ca1ccdb856047d6d6403da7856a773b2359e0621fd6a3fe
MD5 f182339fb2b51212ba5627419fa076b9
BLAKE2b-256 03549390b9b3e771b23ea574c078e86a8d2a4ed84c3defc2ac367243a2e5a994

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp311-cp311-macosx_10_13_x86_64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp311-cp311-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp311-cp311-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 50a92a44bb3593fec14dd3ab7e304caddc61da3c4d9784b59dd728c653e660f1
MD5 43134f8a9eecd4706b34fc09e42fd707
BLAKE2b-256 98a9125697e78f9c53a108d66e6c76972bf92be19aef222f9ddca197c75390fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp311-cp311-macosx_10_13_universal2.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: tract-0.22.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 8.5 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tract-0.22.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b30af6ac5a93bb5681c9143531fbbf43992678ac6d83a789424354f55e7e91f8
MD5 4b290479d514e699826f91091793f7ec
BLAKE2b-256 ec9fd553b51a0adbe0fafb1c6d6e9ecb5fcd5bc10bcbfa98acf5eb547a87fedf

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp310-cp310-win_amd64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3ad0d0b2cf9ce414d5bd44c44bbc928ea0137b740dc710dc7b6ec80a7685106c
MD5 16286d6ceb2e1f4c060051bcad881011
BLAKE2b-256 03c4c5bf0733eb25cfad82348a155b5fa0359bc7d5890592683cda1c250e78a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fb27829282f585a78f00f8f302fcd16f71fdde6ba8e6d977ca7a9f6b824f6957
MD5 31a07b7f5ed5d30f03e73fc34aacbe5e
BLAKE2b-256 70c07e1e5bd1b072ad887d778ff60982c892beff1c6aafc7d6416592aec332e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 faf3bddb21fff68cf59c4c76c7cb65dd9f318de39192762ad0d4199521a25e4b
MD5 fde7d7edbc0aeea2d701f6ae0fdc29bf
BLAKE2b-256 66f92b18e5ae7e0efdc17a8b5f8e824f57991d7dd52ad0a79011316c5a6c533b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp310-cp310-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp310-cp310-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 6a115760c8b4c79df88d56d294c9d3d2855645fcd675c12ad5a09027c4a4bf2c
MD5 ceb3e6a4d45a532c916c9381c58f4a08
BLAKE2b-256 273e298d4d5fe49e62ef1a89b498b4954bc181f903045be483de2637046d0c7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp310-cp310-macosx_10_13_x86_64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp310-cp310-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp310-cp310-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 11d00909013e89467cd90b606bc98af2c18b1503028ed1f0f7547a3f2aa79cf7
MD5 2b29c0e45c21e03b0cdd9f4ea77c7659
BLAKE2b-256 f6f4fd028a5d0d3a321a26df186173a97985178c4de3b681bcdca838ae83cbe9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp310-cp310-macosx_10_13_universal2.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: tract-0.22.3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 8.5 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tract-0.22.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a98871a0549b2d8ef3870d8ba12e22c13570f7d2a2ca7dd94dabb519d87fb018
MD5 450ea78e253d5ac9517ef5cd1336e541
BLAKE2b-256 bee4ab12f2cd3cfc7f6a21b635b4ed459e4e78477bbdf317920ce50d3a7b8feb

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp39-cp39-win_amd64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2e0ac4597f0c064483ee286768590884e8ea25474b2927d7f5bb33efeb3b0cbf
MD5 5e87bc988d92abfcedfee42649f76187
BLAKE2b-256 d1d3ff55636342d66102cb974f480cb82ba168b775dd66fce9eeaf85868c69b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 58cf8869e2833636f81678069680902d1b6473bbf5187844e6f555f0425a0381
MD5 45bedbf20869c320bdeeb90becb0575d
BLAKE2b-256 e41e5cfe16bc272d9b387ae7b30dfc63ff9d5323d566d4042873ec6dc66ace7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp39-cp39-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8b4854210de06502b831fb5a4f871c96cf0b790167efcb26e592d8b84a6e8f1d
MD5 8d3f54c83ff5dfe900a4660670320701
BLAKE2b-256 2351553d9613f0bfd3a11c0674c885477aba1aa5b7c1185baa98555fd0ea4f71

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp39-cp39-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp39-cp39-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 6346e62bb27c52ef54e15bd53395e709781edb771acc629d9d360516939b3816
MD5 95cc746446459a605f1ba32091b4119d
BLAKE2b-256 1be7f4d4ddd46760cce5c74c14ebb40ef3d021d92e687a173a06f72d3d90c612

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp39-cp39-macosx_10_13_x86_64.whl:

Publisher: wheels.yml on sonos/tract

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

File details

Details for the file tract-0.22.3-cp39-cp39-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for tract-0.22.3-cp39-cp39-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 3b447834c516ef4882ca268498420e1eb4e99f7f38f7e7b48a06af2650c17d28
MD5 c52f15d3d18317343f7fbef4fd29d792
BLAKE2b-256 ef605b42ffe03cef061c2c354c55ac8c0777c33744f77af3a460035ee2679081

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.22.3-cp39-cp39-macosx_10_13_universal2.whl:

Publisher: wheels.yml on sonos/tract

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page