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.21.17.tar.gz (6.7 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.21.17-cp314-cp314-win_amd64.whl (8.2 MB view details)

Uploaded CPython 3.14Windows x86-64

tract-0.21.17-cp314-cp314-musllinux_1_2_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

tract-0.21.17-cp314-cp314-manylinux_2_28_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

tract-0.21.17-cp314-cp314-macosx_11_0_arm64.whl (6.8 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

tract-0.21.17-cp314-cp314-macosx_10_15_x86_64.whl (7.9 MB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

tract-0.21.17-cp314-cp314-macosx_10_15_universal2.whl (14.8 MB view details)

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

tract-0.21.17-cp313-cp313-win_amd64.whl (7.9 MB view details)

Uploaded CPython 3.13Windows x86-64

tract-0.21.17-cp313-cp313-musllinux_1_2_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

tract-0.21.17-cp313-cp313-manylinux_2_28_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

tract-0.21.17-cp313-cp313-macosx_11_0_arm64.whl (6.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

tract-0.21.17-cp313-cp313-macosx_10_13_x86_64.whl (7.9 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

tract-0.21.17-cp313-cp313-macosx_10_13_universal2.whl (14.8 MB view details)

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

tract-0.21.17-cp312-cp312-win_amd64.whl (7.9 MB view details)

Uploaded CPython 3.12Windows x86-64

tract-0.21.17-cp312-cp312-musllinux_1_2_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

tract-0.21.17-cp312-cp312-manylinux_2_28_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

tract-0.21.17-cp312-cp312-macosx_11_0_arm64.whl (6.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tract-0.21.17-cp312-cp312-macosx_10_13_x86_64.whl (7.9 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

tract-0.21.17-cp312-cp312-macosx_10_13_universal2.whl (14.8 MB view details)

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

tract-0.21.17-cp311-cp311-win_amd64.whl (7.9 MB view details)

Uploaded CPython 3.11Windows x86-64

tract-0.21.17-cp311-cp311-musllinux_1_2_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

tract-0.21.17-cp311-cp311-manylinux_2_28_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

tract-0.21.17-cp311-cp311-macosx_11_0_arm64.whl (6.8 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tract-0.21.17-cp311-cp311-macosx_10_13_x86_64.whl (7.9 MB view details)

Uploaded CPython 3.11macOS 10.13+ x86-64

tract-0.21.17-cp311-cp311-macosx_10_13_universal2.whl (14.8 MB view details)

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

tract-0.21.17-cp310-cp310-win_amd64.whl (7.9 MB view details)

Uploaded CPython 3.10Windows x86-64

tract-0.21.17-cp310-cp310-musllinux_1_2_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

tract-0.21.17-cp310-cp310-manylinux_2_28_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

tract-0.21.17-cp310-cp310-macosx_11_0_arm64.whl (6.8 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

tract-0.21.17-cp310-cp310-macosx_10_13_x86_64.whl (7.9 MB view details)

Uploaded CPython 3.10macOS 10.13+ x86-64

tract-0.21.17-cp310-cp310-macosx_10_13_universal2.whl (14.8 MB view details)

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

tract-0.21.17-cp39-cp39-win_amd64.whl (7.9 MB view details)

Uploaded CPython 3.9Windows x86-64

tract-0.21.17-cp39-cp39-musllinux_1_2_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

tract-0.21.17-cp39-cp39-manylinux_2_28_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

tract-0.21.17-cp39-cp39-macosx_11_0_arm64.whl (6.8 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

tract-0.21.17-cp39-cp39-macosx_10_13_x86_64.whl (7.9 MB view details)

Uploaded CPython 3.9macOS 10.13+ x86-64

tract-0.21.17-cp39-cp39-macosx_10_13_universal2.whl (14.8 MB view details)

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

File details

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

File metadata

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

File hashes

Hashes for tract-0.21.17.tar.gz
Algorithm Hash digest
SHA256 71c2bb2384325740f2880c5989b6527c59de0b98e7b409da0f2cf53b644157ab
MD5 a0b79ede2bb50b38e2d161b7e56b14db
BLAKE2b-256 db88d44c0e31bf564aa00049bde4e3b7eb5d06eb19fbaa2c3e9cd65c5c9ab741

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17.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.21.17-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: tract-0.21.17-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 8.2 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.21.17-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 feaf9e648dcefde882825398da1e8813923ddadf192817ed0e038616c8d52ff3
MD5 8f4d28d8a6a71791b2414b522f232fa8
BLAKE2b-256 d6fb404158b64d3bd37ad67da329bcc802965500fec5ef6531aaf7da6bb5042f

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e1ec42770bce09924f106ed65d1071c465fcc8f5a2a1daa8cf7b0196dbf217a8
MD5 fc2a4f1966b67365dcb3469c5949b9f3
BLAKE2b-256 127be032161a7ede3b9a657eb313568873a36eefb9115db0c25937b67e656c7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f339645c471fabddd4fb903ad3c9153d39be4d27e35587cf2de6c0c0681d5a05
MD5 6d404a78882667d96b6f8971ddbb402f
BLAKE2b-256 8b31528ccf9ca0749399c789473b38897afd9a6084e56ba38bb953e496678819

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 07ace56d94a3fb405ee9f07d448e694f645ab2815980f91334e4813cb715f31a
MD5 ff2ff286c263d3c4825589c0a1e90b26
BLAKE2b-256 ba6ac8cf440ec326a7d55a2845b7e2c17c6971dd5f9813802aff12cb76f18844

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b49ce04cee076cae46dda1e28e5551c3c98895ec04fe74408f9c376e18db15e4
MD5 1369f0cce98d6f06f48aae8c14685157
BLAKE2b-256 ae1c4d54d1cad37fc40b1815d690782ab6e007abe133c5f26ad1e294155aa4e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp314-cp314-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 f2a2a9e5136521565d1282d49126369c6d60f932247f8bb60d3d5b386cec45a7
MD5 7270844bcbf36acf9ad1d4e02852d359
BLAKE2b-256 fe62a9561a914fa2135943a959a1e2a1a2dd0d04934bf2522c88ec7fc569f43a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: tract-0.21.17-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 7.9 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.21.17-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 33b9a993538de6e5c0b0ef90cf057e6f4b0537a75d24057c4d6dd76e7d9f340d
MD5 55b4e1f92e4158abc6d3e96128304d30
BLAKE2b-256 ede7cb657c92e9ebc909a5eca2ff8d72c63d43c7b4d5ab2224386e0ff9f9f93b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5db26025b710523876d29a520c92ab6fe849e5e7e6c11e7d939c3b5546e58beb
MD5 674cce17d9120fc36283d13bb8ef746e
BLAKE2b-256 1f060d2c53b802a40caaaf067dac0ab1c2d572ff21ada40e0b97ed4dac921004

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3a0b128cb1f9044649316653c972bfd20ce35c37e604827d0153ff28d5926ba3
MD5 e24538d777cb22fd9392fa7f61073f2a
BLAKE2b-256 9d8a20fb00e93a3bd5fdff0b17197376f133ea79d2fd3041c18fbc4d0e180452

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 71f7c660c7e2ccdf641a81023c734855f8b8c2b405f6a2d306ebcb131488bef8
MD5 f195b6a7cbc570fd6a14f10e9a8a22bd
BLAKE2b-256 2bb4f9cb9992b80b7b99b065e8113060183968eac37907f4a5e5bb238574db5b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 48a5715f237533ee9d925312a5bf877bfea00b733aeaea48a12ce1fcdb6cc35f
MD5 ee94e990acb727b9a12d2991dc5f2c14
BLAKE2b-256 3f9aa820c7e72c5f060753b6ba2c5f36050cb705a0dbb0700b5d083c8fef2833

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 d65165e0ece6d56aabe7ee499175bca3459952ce8ad888bbfdc9947c9a295957
MD5 b3edec309214b048541776f9056da54b
BLAKE2b-256 f202107544b954e5627888e23805d8566857c53b57d88778dca548fd2f9b545b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: tract-0.21.17-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 7.9 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.21.17-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b9c1df7fdf669a03173b7ff473aaef67933881d752577a1313313c1ebe3dcf33
MD5 91a4f0d6c956b1e3b199b86fb4e2fe91
BLAKE2b-256 b898967713fd054dcc90ac9b106b53d097cfa437a81f7f5f18d0415a7b7c57f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 19d207b0a7b25932df2611536ae27cc33456e18211533d164789da61c96a2484
MD5 ed034c2e8f7c86b2cbf67b54bb53eda5
BLAKE2b-256 9e2fb7a68091e978c60d4927271915ab03593f8519911b4ab2640cda5cb173b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6d4888bfcd3c01421faf6b34333fadfbf3e7dba666e7ab422b65e1304f154b6f
MD5 ab814cd1b57f870552a2c92fbb96d7d1
BLAKE2b-256 cd072c0019cffcba278789a534be61a1f3df91473edbabb77ad599ac2630782d

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e2c8bc66324acb7a3b561fa2cf1916e011791a200aa3f4b298424fb6e2b13604
MD5 d122b8c232e746060f88fbcbe31b5785
BLAKE2b-256 65a212ad00cc3c111ca715892c48cc64915ebe9cf6d5c9c35354b2c930b8f09a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 499b524919a629082e5cf5e5a3e24451a7ec350a050ced725a4eb9d3c78d9805
MD5 bbd5cdc493754ea40cfe77235d858a4a
BLAKE2b-256 0fb827b1d625902c9fc6a1ae9fa32f4666fc1d156568afdf8eba61055b5dced6

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 5e7b09ffeded561fcd44a501d10a42f6e0c1973195fbb7bd5926b84235c10564
MD5 be3904aa1ccef705c78dbdf10d8619b4
BLAKE2b-256 d21153bd91a716d0fb29de22e469e745b5cce45320a493abd69e3d4b3f4c5e99

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: tract-0.21.17-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 7.9 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.21.17-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b0801681d0b3ffa206b112ba54ce9cd29d5c5e4b3d8b73f5afbe30147cc4afe8
MD5 4fe1b531f1139e174fc8f2497917a292
BLAKE2b-256 e64a84b02669b4d1961d55de53173fb68cf9e13168c82dcc7c4d6d32105fa218

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b5b62064119f23d13d4b2dcbd7e5a9d10e55808efcb4518960f9496e885fd248
MD5 d7061cd1845904e2261254db7ec8a017
BLAKE2b-256 1afbcfaa1c2dc1f10afdd8274e20d7e442f45f454aee1de80f08393920e07819

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 023a07644efbe86714fcac6ac6cbfd07551266693917c24b74784d6cea1c392b
MD5 90d60ed892e59fa4dfe2c3b0a543b482
BLAKE2b-256 77e447f37d0a0ac4f419faef607104f2a5caad27857d4acda7ef4bc4ad257324

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ff63755fcbe1fba058320e5929580b9e36021e2b29a9a64b68e8256db59b5f6a
MD5 6b7d04409f8c171fed84250e177d692f
BLAKE2b-256 e4d5be2f577337c75441373bb9b6653f63b0fa2ee78fbc1c83fd87092723a761

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp311-cp311-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp311-cp311-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 a654dbe6440ce16af0884737a0feaf0c5ae0c4c2883bfbc3db76805061720f40
MD5 0973b5560c0aa0ea0ee2a5f948029309
BLAKE2b-256 f8d39f810c9a468ffab05894a1d4dcdfbc567da0101978e111c7a0601817d2f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp311-cp311-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp311-cp311-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 8269286d556369f0b080de429f2581a78025a9ef960d830f12a42d0fec2dedc5
MD5 fdda1bfdf2ada19379272fa0a79a02bc
BLAKE2b-256 49842b6c078cb6928db94140f680c50c5da6002fd4f8b56e2d5e9bf34c27faf1

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: tract-0.21.17-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 7.9 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.21.17-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9fdbd59748836f699875e53d19072f74f340af4443ec4d649f35ef29b22c1809
MD5 ee090fc437b0110967d94c41c66c161c
BLAKE2b-256 9258c4453ed4bcd4970d2afa0935bb35442e240ed3a689e9a631b5fc87257008

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c6c0c9940acb82bbe9d0e5804c97c69a3211112d6042c8cc5d7bdb761db5ba0e
MD5 3e497263af8f3de6b187b74baf7892b1
BLAKE2b-256 f6c2d6909fe71bf4e19798b501d572f10fa85460cb13605c9bdaecd9d3f14190

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3708e018f7a8b2da7c1b9aafcccec6fae8ff5afdf64a09809b60156a2729b376
MD5 fbf5668b73dced7be002afc9df61bf2f
BLAKE2b-256 8e90ffef3908557ece8592f7e4928a1024e6fc54eec34668370056ed9d55f3c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c37d3523007830ef11671c7535fc35b52d72a5a125930c4c78ab2ece995e56fb
MD5 c4d9fe9f8b6d6230a18ba3fad9d71763
BLAKE2b-256 f2cd7562bc39ad00b999465a415372189787189f29b387a6047f3386ee75e8b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp310-cp310-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp310-cp310-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 f90c299f85e2745291876805e8da3198e3a8f58d4bc507f82b4c3b6f9a03224e
MD5 98b53bd9262e27f8c7ea8645f2f5b866
BLAKE2b-256 9de19033e0de17b02a9e36b3b060441f4cf7beab88c0d3cacd4786a04e09138b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp310-cp310-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp310-cp310-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 5a0718739817ae170698ac3eb0b17e754966cfb037b8858e4bb7a63ea5b1e92a
MD5 5f36755d8934f1a0bed44d1828b0bed5
BLAKE2b-256 567fe83791d4a9188457f2f5d8412c3a78b873b0f9c73e7cb844832b4919feb8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: tract-0.21.17-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 7.9 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.21.17-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 284a730c578e93c50bcf0e15f28458de3f35827a01f5b2289a935dc25da8485a
MD5 29bd3f611feff19128bfad8a93d549b8
BLAKE2b-256 2f9aa310c835ae2b29bcab5e4ab9c7bf60e7f43f9b9826e024d173a4c7182707

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 99294d7651181091b6849faa8bdbccb1ab23a85818fd2de2c3246edbbafbcbec
MD5 a736d6d1340ff848cbe6f2fe3afcbe3d
BLAKE2b-256 a4e37ae525a430262872a3aca748ccbd8c6be4b000c1bdb10d204af5faf3b8ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 346f628fa431137a382e6a968cd8cc9e73592a0f0808a10a12179992ef8278e2
MD5 79aa51ce91ef78d733d8b51945fa69d9
BLAKE2b-256 8af1c563889d1888bde6a70f76e9e89b4c4a97538180e80c737ad50373501662

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1d5615e188105015a7e5563a6d88f865b58d0fbbcc3db6aed15cb5b967f1939f
MD5 4849dd748f1ddfeb8ed7db74cb883a99
BLAKE2b-256 6d2037a76aa7493c56f0671499873aa8aa66041418a10a74b4c09badda5bdef6

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp39-cp39-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp39-cp39-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 787c0f5ef06bd5d22b4b604a8de790d1d436f1f5e32fd20044c52bfd99b0bbd8
MD5 e269ef476a219c10772f44bd67b6c5f3
BLAKE2b-256 a4334c90238b3944ec5e492e75c1567d2d18b396e0be427d6bb685c9384cd157

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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.21.17-cp39-cp39-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for tract-0.21.17-cp39-cp39-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 4ef21ea7e3ce9a4bccafde33d8d8f9d5f4d2d889869eedbb10fbf8910dadc783
MD5 ef7a406c2bf967faf4c4a22540cd8f07
BLAKE2b-256 60290ca30334dc35e2c70cb21bc4905f927f3c45889e9198a6986b7b55a9edce

See more details on using hashes here.

Provenance

The following attestation bundles were made for tract-0.21.17-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